goatfungus / NMSSaveEditor

No Man's Sky - Save Editor
1.91k stars 240 forks source link

Feature Request: Ability to edit the RGB Values of customization items. #231

Open micmou opened 4 years ago

micmou commented 4 years ago

There are a couple of things that are possible that I have seen that would be a great addition to the tool.

Player Size: I am unsure how it works or how it is done but I know it is possible I have encountered tiny gek and and gek that make the mountain blush from the there size.

RGB of Colors: In the save file the colors of our stuff is defined by a RGB value it would allow us to transcend the 10 colors they let us choose from.

Ship Colors: A recent thing that I had seen that someone managed to change the colors of there ship to a non standard color via save editing. Not only would it allow us to edit the color of our ships but it would allow us to do so well ahead of there integration with the ship customizer. Refrence Link for this attached. https://www.reddit.com/r/NoMansSkyTheGame/comments/e6f5sy/after_hours_of_research_and_trial_and_error_i/

Siino commented 4 years ago

I wrote that reddit post and I approve (Came here to make the same request). I actually used your editor to directly edit the raw json to get to the result.

the data for every customizable thing seems to be in PlayerStateData/CharacterCustomizationData

micmou commented 4 years ago

Well it seems I have beat you to your own suggestion Mwahahaha. Anyways good on ya for figuring it out I must match my 5' 4" stature in game xD

MetaIdea commented 4 years ago

Would like to backup that request and add my integration ideas for ship as well as weapon color: 1. Select from one of the texture palettes types: https://github.com/monkeyman192/MBINCompiler/blob/development/libMBIN/Source/NMS/Toolkit/TkPaletteTexture.cs 2. Select primary or secondary color. 3. A visual color picker UI but also the ability to enter RGB values manually.

tchesket commented 4 years ago

If anyone happens to figure out the json format for customizing colors for ships other than fighters (ie exotics), please let me know. I'll be looking into this myself but I'm basically just fumbling around in the dark.

tchesket commented 4 years ago

Okay, so after messing around with this for a while here's what I've come up with.

Firstly, for me at least, my 6 ships were under indices [3]-[8]. I can confirm the format you provided works 100% for the following ship types:

-Squid/Exotic (the only exception here is trying to use black or something close to it creates a greyish color with a weird looking wireframe pattern, actually looks kinda cool) -T1 and T3 Fighter

I assume that they work for most ships, to be honest. For a few other ship types, here's what I found:

-Non-squid Exotics- the color changes only affect the little "lasers" on the wings of the ship, and don't seem to change anything else -Shuttle- the color only affects the "fuselage" of the ship, the wings etc remain unaffected.

I haven't messed around with the other tags like "Alternative4" and "Unique" much yet, nor anything besides "Paint" and "Undercoat" for the pallette. I'm assuming the answer for the non-working ships lies somewhere here, or perhaps it is just not yet fully implemented in the game's code.

Siino commented 4 years ago

I think I found a way to know which ship parts use which palettes and tags, but there is a LOT of info to process there... So going into the game's files, in TEXTURES\COMMON\SPACECRAFT\ there is a folder for every type of ship, then every type of part, then a descriptor for every specific part. Going into TEXTURES\COMMON\SPACECRAFT\FIGHTERS\COCKPIT\COCKPIT_A.TEXTURE, i can see that this "cockpit_A" (I don't know which on it is) uses : Palette Rock Alt Primary for overlay Palette Paint Alt Alternative3 for Signage Palette Paint Alt Alternative1 for Markings Palette Paint Alt Primary for Paint Palette Paint Alt Alternative1 for Painted (whatever the difference is) Palette Metal Alt Alternative1 for the BaseAlt and Palette Metal Alt Primary for the Base

Going into specifics for every type of part for every type of ship would be way too long. So far the only palettes I saw being used are Rock Paint Metal and Undercoat using the alternative tag None Primary and Alternative1 to Alternative3 Adding to the save file a Palette that is not used by the current ship does not seem to do anything, so the fastest way to make it work all the time would probably be to just change all of them whatever the ship type

lowfuel commented 4 years ago

Firstly, for me at least, my 6 ships were under indices [3]-[8]. I can confirm the format you provided works 100% for the following ship types:

-Squid/Exotic (the only exception here is trying to use black or something close to it creates a greyish color with a weird looking wireframe pattern, actually looks kinda cool)

Any chance you could share the JSON you had for your squid? I tried doing this but my ship doesn't change. Not sure what I'm doing wrong.

tchesket commented 4 years ago

sure

{ "SelectedPreset":"^", "CustomData":{ "DescriptorGroups":[], "Colours":[ { "Palette":{ "Palette":"Paint", "ColourAlt":"Primary" }, "Colour":[ 0.009999999776482582, 0.009999999776482582, 0.009999999776482582, 1.0 ] }, { "Palette":{ "Palette":"Paint", "ColourAlt":"Alternative1" }, "Colour":[ 0.009999999776482582, 0.009999999776482582, 0.009999999776482582, 1.0 ] }, { "Palette":{ "Palette":"Paint", "ColourAlt":"Alternative2" }, "Colour":[ 0.009999999776482582, 0.009999999776482582, 0.009999999776482582, 1.0 ] }, { "Palette":{ "Palette":"Paint", "ColourAlt":"Alternative3" }, "Colour":[ 0.009999999776482582, 0.009999999776482582, 0.009999999776482582, 1.0 ] }, { "Palette":{ "Palette":"Undercoat", "ColourAlt":"Primary" }, "Colour":[ 0.009999999776482582, 0.009999999776482582, 0.009999999776482582, 1.0 ] }, { "Palette":{ "Palette":"Undercoat", "ColourAlt":"Alternative1" }, "Colour":[ 0.009999999776482582, 0.009999999776482582, 0.009999999776482582, 1.0 ] } ], "TextureOptions":[], "BoneScales":[], "Scale":1.0 } }

lowfuel commented 4 years ago

Just a quick FYI to all: I don't think this is really working yet. Although I have been able to change my ship color (thanks tchesket), other players are seeing my ship in a color different than what I set it to. They're seeing a different color than what it was before, to be clear, but it's NOT the color I set it to.

ukmerlin commented 4 years ago

Seems to me that just like a lot of mods you are changing essentially local only values. If there is a seed value for the ship (which I do not think you are changing) other players will still pull from the seed to know what it should look like.

lowfuel commented 4 years ago

To be totally clear: the color others were seeing were not what I set, nor were they the original color provided by the seed. They were seeing a color I had previously set the ship to. This makes me think something is getting cached, perhaps?

Siino commented 4 years ago

Yep, i can confirm. The multiplayer implementation by the devs is still incomplete. It seems the colors saved can override the seed and make you see the colors you want in local (it does not change the seed value, just overrides the colors of the resulting ship) but other players, when they meet you, have to download part of your data to be able to see your character's colors etc... it seems their client gets the info that your ship is customized, but don't download the actual color data, so they automatically see the default colors (some dark green-blue it seems)

Not that i really care though, i'm changing the colors for myself, but it has to be clear people won't see your ship's colors.

thedeanius commented 4 years ago

bump - there are tons of players that would absolutely adore this feature if it were added.

CrastActual commented 1 year ago

Bump - There's a version of this but it is behind a pay wall. https://nms.center/

I've been a user of the editor for a very long time and I have to say it's made so many aspects of the game more enjoyable. Adding a feature like this where you could select your ship parts/visuals and color scheme would most likely end climate change and bring world peace.