Having issues with quick switch groups
I'm making a custom foundation type but I'm having issues incorporating in the existing foundations. It just appears in every group, and if I switch material it just disappears. I'm also having issues with the material (for now I just have the concrete type)
20 Replies
I put it in the swapgroup 5 hoping it would give it it's own group, while it seems to work, it doesn't really. If I put it in swapgroup 3, it shows up in a separate group when swapping materials but is in the same group in the grip metal material, which considering this wheel above makes sense since it appears to be in group 3
How can I put it in a different group as full foundations and half foundations? And make it switch material when clicking to switch material?
The parts that show up on the quick switch wheel are parts that all share the same Category and Subcategory in their descriptors and they are separated by the customizer buildable map they are assigned to. If your part is not assigned to a buildable map then it belongs to the "no filter" group, which is why it shows up in all materials.
Hmm, what's a buildable map exactly? Where is it referenced?
I probably didn't touch it then
FGFactoryCustomizationDescriptorMaterial->mBuildableMap
The games descriptors are in this folder
/FactoryGame/Buildable/-Shared/Customization/Materials/
You will need to add your parts to these maps via CDO if you want them to use the material
Like so. Note that the map entries have to be unique
BlueprintReadWrite=(Class="/Script/FactoryGame.FGFactoryCustomizationDescriptor_Material", Property="mBuildableMap")
I see, thanks, I'll take a look at this and let you know if it worked
I assume this should be in the buildable descriptor?
No, you would run that code from a mod module or subsystem. The CDO edit should only be done once and sometime early in loading. Use Module->EventOnLIfeCycle or Subsystem->BeginPlay
I'm not really familiar with those, where can I find this?
Is it in a specific blueprint or something else entirely?
Your mod should already have a
GameWorldModule
so you can put the code in there. You will also need the access transformer I posted to expose the property. (read the docs thoroughly)
https://docs.ficsit.app/satisfactory-modding/latest/Development/ModLoader/AccessTransformers.html
https://docs.ficsit.app/satisfactory-modding/latest/Development/ModLoader/ModModules.html
https://docs.ficsit.app/satisfactory-modding/latest/Development/ModLoader/Subsystems.htmlAccess Transformers :: Satisfactory Modding Documentation
UE-CSS 4.25.3 build 42 adds a new feature: the ability to make accessors for fields, add friend classes, and make properties BlueprintReadWr...
Mod Modules :: Satisfactory Modding Documentation
Mod Modules are a system provided by SML that allows for simple hooking into the engine life-cycle at key locations important for Satisfacto...
Subsystems :: Satisfactory Modding Documentation
If you’re looking for the subsystems that SML provides by default, check out the Registry page. Subsystems are actors that exist...
Ok thanks so much!
So if I understood correctly, the root game world module calls a subsystem each time a save is loaded which adds to the buildable map right?
No, you dont need a subystem at all. Do all of your CDO edits in the GameWorldModule and that should be all you need
Ooh ok
And do I need a BeginPlay or EventOnLifeCycle to start or since it's the root game module it's automatic?
GameWorldModule uses the latter
Modules are not actors and they don't have BeginPlay
Use OnLIfeCycleEvent
Alright thanks
What's that Target node called? I can't find it
That is a property that you have to expose with access transformers.
https://discord.com/channels/555424930502541343/1296535306123874376/1296551116997398599
Aaaah I see
And how do I know which buildable map it is targetting?
Oh nevermind that's the CDO getter
Hmm, might have broken some things
Clicking it crashes my game