Obtaining Color Data RGB to ID Mapping from GTA Online

I’m working on re-creating GTA Online’s character creator for FiveM using RageUI and my goal (for now) is to make the feature selection as close to the original as possible.

I’ve run into a serious problem though: while I can build the color palettes easily with RGB data I get from GTAO’s Creator screenshots (RageUI accepts RGB input for color UI), I’m lacking data to map these to color IDs that FiveM native SetPedHairColor and SetPedHeadOverlayColor use.

I’ve been searching resources available online extensively, but to no avail. Does anyone here happen to have such data or could give me some advice how can I extract it myself? (without getting my GTAO account banned hopefully)

I’ve noticed that GTA Online does not kick me out of an ‘invite-only-session’ game if I disconnect my Internet, I was wondering: Can I safely try to hook it up to x64dbg or ollydbg (after disconnecting) to try an look for the data? Or maybe I can dump the data from a running client in real time somehow?

Have a look at this one and see if you can improve upon it. Preferably with the RageUI 2.0 update.

I think I’ve got more implemented in mine already (more than 1k lines of code for the interface alone).

I’ve got the x,y grids for facial features (with presets too) working, with all the proper hairstyle, facial hair, feature and heritage names pulled straight from GTAO character creator/barber shops and mapped to correct list indexes (skipping things that don’t belong like the nightvision helmet).

I’ve made a pull request to skinchanger with changes that make face blending and facial features possible. You can already use these customizations with esx_skin without any changes to it if you pull skinchanger from my fork.

I’ve got custom color palettes built (taken from GTAO) separated for hair, lipsticks and blushers, while this creator just uses one huge palette with what seems to be all the colors that RageUI authors created.

I’ve actually took time to analyze data and behaviour of GTA Online’s character creator and tried to mimic it (and maybe improve, but that’s more for later) as best as I could. Is why I need these color mappings.

I’ve spent a lot of time on this project.

I also plan to separate clothes from character features into two completely different menus inside one resource.

Also this creator you linked depends on esx_skin which I find weird, a character creator should REPLACE esx_skin as they serve exact same purpose. Mine depends only on es_extended and skinchanger.

Thanks for that link though, I was wondering if I could use natives to manipulate the faces instead of skinchanger and still save it, this shows me that I can. Updating the x,y grids in realtime with skinchanger events being sent every frame is really slow.

Yes, I pull from RageUI into my fork pretty regularly and it absolutely uses the 2.0 version now.

As a side note, the creator you linked actually has installation instructions that require modifying other resources… imo that’s a very bad way to go about it. If you use resources from other people and these resources aren’t adequate for your purposes, make a fork or (even better) a pull request, then tell users to get the dependencies from your fork. Always design your projects to be as self-contained as possible.

Cool, only really linked it because of your question regarding the colours.

Please continue to make a beter one.

Update:

Problem solved. This data can be easily dumped using natives:


Now that I started to implement this mapping for “skipped” colors, I realized something…

What if colors in GTA Online are unlocked through gameplay and the ones I found out through testing to be “not there” are this way because I simply don’t have them unlocked?

Can anyone confirm or deny that being a thing definitively?

I see 48 hair colors, 42 lipstick colors, 33 blusher colors and 64 facepaint colors. Facial hair and eyebrow colors seem to be in the same group as hair.

It would be a shame to find out I put serious effort and time just to limit options that aren’t supposed to be limited in the first place.