Like maybe a customization.cfg in a player model's folder that allows to swap a mesh file with another while using the same .skin file?
like say for example, this is the file structure:
models/players/elf/animation.cfg
models/players/elf/customization_head.cfg
models/players/elf/customization_hat.cfg
models/players/elf/customization_hair.cfg
models/players/elf/customization_lower.cfg
models/players/elf/customization_upper.cfg
models/players/elf/head.md3
models/players/elf/lower.mdr
models/players/elf/upper.mdr
models/players/elf/texture.tga // the complete texture page for all the customization items and the player in a 1024x1024
models/players/elf/lower_default.skin
models/players/elf/upper_default.skin
models/players/elf/head_default.skin
models/players/elf/icon_default.tga // for backwards compatibility
models/players/elf/portrait_default.tga
models/players/elf/heads/default.md3
models/players/elf/heads/chibi.md3
models/players/elf/hair/default.mdr
models/players/elf/hair/ponytail.mdr
models/players/elf/hair/long.mdr
models/players/elf/hair/bald.mdr
models/players/elf/hair/bob.mdr
models/players/elf/hats/witch.md3
models/players/elf/hats/bonnet.md3
models/players/elf/upper/nude.mdr
models/players/elf/upper/corset.mdr
models/players/elf/upper/bikini.mdr
models/players/elf/lower/nude.mdr
models/players/elf/lower/leafskirt.mdr
models/players/elf/lower/shorts.mdr
models/players/elf/lower/thong.mdr
and for example, customization_upper.cfg would contain
// id, unlock tier, name, model
0, 0, "Default", models/players/elf/upper/corset.mdr
1, 7, "Bikini", odels/players/elf/upper/bikini.mdr
customization_head.cfg would contain
//id, unlock tier, name, model
0, 0, "Default", models/players/elf/head/default.md3
1, 3, "Chibi", models/players/elf/head/chibi.md3
And the .skin file would probably be like this (note that all the different models would use this same skin file for compatibility):
u_base, models/players/elf/texture
u_clothes, models/players/elf/texturecolor
"models/players/elf/texturecolor" being a shader like this
models/players/elf/texturecolor/
{
{
map models/players/elf/texture.tga
rgbGen entityBlend
}
}
rgbGen entityBlend would be a new renderer function where it'll blend the lighting in with the sampled colors, making NOT-GLOWING colors possible (which should have been done in q3 in the first place, of course it's possible to have a second stage act as the lighting but i'd prefer to avoid multiple textures as possible for legacy vertexlight fallback).
These setitngs and such would be picked through the menu system, colors would be in hex, etc.... I do think this method is possible with the engine, however the hard part will be LOD meshes for all the parts.
And yes, 'unlock tier' would mean it would be available for choosing if the player has progressed enough in the single player game. FINALLY SOME MOTIVATION FOR PLAYING SP LOL