For playermobile properties, are there any advantages to using the attachment system rather than a custom player mobile (other than serialization)?
From the scripting perspective, serialization, ease of integrating multiple systems without having to worry about conflict or interactions between them, and trivial reversibility are the advantages.
From the runtime perspective it is the ability to add attachments on the fly, so you can give staff the ability to add custom mods/properties without any need for scripting access.
The disadvantage is that referring to properties on attachments in custom scripts requires an additional lookup step. From a performance standpoint it is extremely minor, but it is more than you would have with a direct reference.
Personally, I am not a fan of custom derived classes. It is just too much of a commitment, and backing out once you have done it is far from trivial. It also doesnt help with integration of multiple systems and makes sharing of systems with others difficult. All it really does is decouple playermobile serialization and simplify merging stock playermobile updates, and those are things that attachments do more effectively anyway.
I do everything with attachments. It is a much cleaner way of implementing multiple independent systems, I never have to worry about screwing anything up, and backing out is as simple as removing the attachment.
Thanks Arte! I am looking at possibly basing my race/class/XP system around the xmlattachment system and this info is very helpful!