How can I change the color parameters on the pioneer materials?

Hi, I'm working on a customizable character buildable for Factory Props (see this for context), and I'm trying to link the material colors to the color pickers similar to the player customizer in the HUB, but I'm not sure how to change those values on the materials. I've tried creating and applying a dynamic material instance and setting the Primary, Secondary, and Tertiary vector parameters, but those don't seem to do anything.
No description
Solution:
I think it might be indexes (6,7,8), the player data stops there
Jump to solution
54 Replies
AngryBeaver
AngryBeaver•3w ago
What material are they using on the vanilla objects?
Robb
Robb•3w ago
in its current form, this is revealing unreleased content, you should probably specifically block out the unobtainable helmets
SpookGameDev
SpookGameDev•3w ago
The player mesh SK_Pioneer_01 uses 5 materials: MI_Pioneer_Boots, MI_Pioneer_Gloves, MI_Pioneer_Backpack, MI_Pioneer_Torso_02, and MI_Pioneer_Legs_02. Oh, those are unreleased? I though you could discover them like you can the Beta helmet.
AngryBeaver
AngryBeaver•3w ago
What's the inheritance for those material instances. Given two weeks and nobody has figured out how. It's probably unreleased
SpookGameDev
SpookGameDev•3w ago
MM_Cloth_Master is the parent
No description
Robb
Robb•3w ago
I am not 100% sure how to tell which are unlockable yet, but I think that only customizations that have schematics referencing them can be unlocked. compare beta to doggo:
No description
Robb
Robb•3w ago
No description
Robb
Robb•3w ago
No description
Robb
Robb•3w ago
No description
Robb
Robb•3w ago
easiest way to handle this for now would probably be to specifically block them from a hardcoded list (I don't know how you build that list right now but I assume you get all descriptors of that class)
SpookGameDev
SpookGameDev•3w ago
Yeah, disabling them is not an issue, I just didn't know they weren't released yet.
D4rk
D4rk•3w ago
I don't think these materials are setup to use custom primitive data, you'll probably need to make instances of MM_FactoryBaked to use here Sorry, I missed the part where you setup material instances for these
SpookGameDev
SpookGameDev•3w ago
Yeah, this is what I meant, but it doesn't seem to do anything.
No description
AngryBeaver
AngryBeaver•3w ago
When are you running this? Are you assigning the material instance to what?
D4rk
D4rk•3w ago
The instnace has to be assigned to the mesh
AngryBeaver
AngryBeaver•3w ago
The white line is the execution path it has to be started by something. Like a red or purple node because it's a function or an event
SpookGameDev
SpookGameDev•3w ago
Yeah, it was connected to BeginPlay when i tested it initially, I had just disconnected it while testing something else before taking that screenshot.
Archengius
Archengius•3w ago
No. A few customization options are not referenced by anything, but are still considered "released"
D4rk
D4rk•3w ago
You might not need to create instances for them. The vanilla material doesn't use custom data afaik, which means they are already instanced somewhere, although I cant find a reference to them on the character. Try something like this.
No description
Robb
Robb•3w ago
good to know, is there any way we can distinguish them to avoid revealing unreleased stuff?
Archengius
Archengius•3w ago
Also, while the idea of the mod is cool, this has to follow the same unlock requirements as the vanilla customization menu e.g. players should only be able to select customizations that they personally own
SpookGameDev
SpookGameDev•3w ago
So, for instance, you'd have to go out and grab the B-374 helmet from the doggo cave before it appears in the customization menu?
Archengius
Archengius•3w ago
yes
SpookGameDev
SpookGameDev•3w ago
Ok, will do! Just out of curiosity, why is that required? Is it just a technical thing or is it to maintain some kind of exclusivity or integrity?
Archengius
Archengius•3w ago
second it's not "required", e.g. I am not speaking as a representative of the company. I am just speaking as an individual giving you an advice that will reduce the chance of CSS having an issue with that mod
SpookGameDev
SpookGameDev•3w ago
That's alright, I would rather err on the safe side than risk pissing off CSS.
Robb
Robb•3w ago
there is probably some function to check which ones you have available
SpookGameDev
SpookGameDev•3w ago
I'm confused about what this is supposed to do. It looks to me like it would set the parameter on the material instances of the local player, which isn't what I'm trying to do.
D4rk
D4rk•3w ago
Yes, thats what it does, I assumed it was the player in your screenshot is that a buildable or something else?
SpookGameDev
SpookGameDev•3w ago
It's a buildable that makes use of the pioneer mesh.
No description
D4rk
D4rk•3w ago
ah, ok. gimme an hour or so and i'll try to figure out how to do this
SpookGameDev
SpookGameDev•3w ago
Alright, I'll probably not be home then, but I'll look into it more when I get back later this evening.
RipleyCreek
RipleyCreek•3w ago
Yeah, this and it keeps the Golden unlockables exclusive to players who've played in EA
D4rk
D4rk•3w ago
@SpookGameDev (Factory Props) So, I was wrong. The character materials do use custom data floats. We only have a stub for the cloth material and all the data inputs are missing, but setting floats on indexes 0-5 seems to work fine for Primary and Secondary. I wasn't able to set Tertiary because I don't know what the right indexes are, you'll have to test on your own but I assume its something >14
No description
Rex
Rex•3w ago
How many data floats are there?
D4rk
D4rk•3w ago
Buildables have 20 allocated but the last 6 or so aren't used for anything afaik https://docs.ficsit.app/satisfactory-modding/latest/Development/Satisfactory/Paintable.html
Paintable Materials & Tintable Lights :: Satisfactory Modding Docum...
Making things paintable is not as difficult as it may seem. You can use the existing materials, or create your own implementation. Ma...
AngryBeaver
AngryBeaver•3w ago
that's gonna need some reviewing with the new finishes
D4rk
D4rk•3w ago
It also means that you dont really need the code I posted, you can paint it with the buildgun or you can call the set customization implentation on the buildable Actually, I dont think so. The finishes override both Primary and Secondary colors and sets the Metallic and Roughness values as well. No other indexes were needed. I think the current information in the docs is correct.
AngryBeaver
AngryBeaver•3w ago
I said review not changes. I was pretty sure it was still right but didn't want to not do the homework 😛
Rex
Rex•3w ago
One could use a chat command or something to mess with the data floats /wololo <index> <value>
SpookGameDev
SpookGameDev•3w ago
Haven't had a chance to try this for a couple of days, but I have now tried every index from 14 onward, and none of them had any effect on the overalls (Though the primary and secondary did work). I looked into the HUB customization menu widget (BPW_CharCustomizer) and found a function called GetCustomizationData, which has a struct for PlayerCustomizationData that contains Linear Colors for the Primary, Secondary, and Detail (Overalls). Not sure if it's specific to characters, or if I could utilize it for this purpose though.
AngryBeaver
AngryBeaver•3w ago
That's just a data holder to be passed around. It will probably not help much with implementation specifics.
D4rk
D4rk•3w ago
Did you try all index <14? Because I didnt. Those are usually reserved for buildable stuff, but there might be an exception here.
SpookGameDev
SpookGameDev•3w ago
I tried 14-22 (Even though docs say it only goes to 19)
Archengius
Archengius•3w ago
that struct gets applied to the player in Char_Player blueprint so you probably want some code from there
SpookGameDev
SpookGameDev•3w ago
That would be this function I'd assume?
No description
Archengius
Archengius•3w ago
yes
SpookGameDev
SpookGameDev•3w ago
What do you mean by this? All I can find is that stub, which doesn't tell me how to apply the color to the mesh. I'm just a bit confused.
Solution
D4rk
D4rk•3w ago
I think it might be indexes (6,7,8), the player data stops there
SpookGameDev
SpookGameDev•3w ago
Indeed it is! Thank you D4rk!
No description
D4rk
D4rk•3w ago
I want to point out that those indexes (6,7,8) are reserved for other things in buildables.
No description
D4rk
D4rk•3w ago
So you probably want to make your buildable not paintable or your data will get overridden, and you probably need to init it manually on begin play
SpookGameDev
SpookGameDev•3w ago
I've already done that, and I don't intend to make use of those other functions, so this should be alright.
Archengius
Archengius•3w ago
you can look up blueprint disassembly from asset dumper and from other tool that I think Mircea updated a while ago
Want results from more Discord servers?
Add your server