Can't Access Blueprint Hologram Components - Need Help Modifying Conveyors/Splitters

Dear Satisfactory Modding Team, I'm trying to create a mod that allows rotating blueprint holograms and modifying their conveyor components (belts, splitters, mergers). However, I'm consistently getting "No hologram found" errors when trying to access the hologram through the build gun. What I've tried: - Accessing via mCurrentBuildGunState → mHologram - Checking multiple property names ("mHologram", "CurrentHologram", etc.) - Extensive debug logging (see logs below) Code: in comments Logs: [2025.08.09-22.16.51:580][576]LogTemp: Error: No hologram found through any method Key Questions: What's the correct way to access blueprint holograms in Update 1.1? How can I reliably modify conveyor components, splitters and mergers within a blueprint hologram?
25 Replies
Rex
Rex2w ago
Consider attaching a file instead It'll be easier to work with
Robb
Robb2w ago
I haven't messed with this system at all so I don't have any ideas here, sorry here's another open source mod I know of that does stuff when placing a blueprint you might find educational https://ficsit.app/mod/AutoLink
word
word2w ago
I dont have unreal setup atm so I cant give 1 for 1 But I access holograms like so
AFGBuildGun* BuildGun = Character->GetBuildGun();
if (!BuildGun)
return;

UFGBuildGunState* CurrentState = BuildGun->GetCurrentState();
if (!CurrentState || !CurrentState->IsA(UFGBuildGunStateBuild::StaticClass()))
return;

UFGBuildGunStateBuild* BuildState = static_cast<UFGBuildGunStateBuild*>(CurrentState);
if (!BuildState)
return;

AFGHologram* a = BuildState->GetHologram();
AFGHologram* b = BuildState->mHologram;
AFGBuildGun* BuildGun = Character->GetBuildGun();
if (!BuildGun)
return;

UFGBuildGunState* CurrentState = BuildGun->GetCurrentState();
if (!CurrentState || !CurrentState->IsA(UFGBuildGunStateBuild::StaticClass()))
return;

UFGBuildGunStateBuild* BuildState = static_cast<UFGBuildGunStateBuild*>(CurrentState);
if (!BuildState)
return;

AFGHologram* a = BuildState->GetHologram();
AFGHologram* b = BuildState->mHologram;
And casting to AFGBlueprintHologram I can get the members for the blueprint
AFGBlueprintHologram* OutHologram = static_cast<AFGBlueprintHologram*>(a);
std::cout << "OutHologram name: " << OutHologram->mBlueprintDescName << std::endl;

///Hologram: Holo_Blueprint_C_2147464914
///OutHologram name : Hi Marco
AFGBlueprintHologram* OutHologram = static_cast<AFGBlueprintHologram*>(a);
std::cout << "OutHologram name: " << OutHologram->mBlueprintDescName << std::endl;

///Hologram: Holo_Blueprint_C_2147464914
///OutHologram name : Hi Marco
I think you can use Unreal's Cast of UFGBuildGunState to UFGBuildGunStateBuild, and if its not that type it will return nullptr. And same for casting AFGHologram to AFGBlueprintHologram
Marco
MarcoOP2w ago
I only have one question left. Do you know how to modify specific parts in a hologram blueprint—for example, to rotate only splitters by 180° or to reverse the direction of conveyor belts?
word
word2w ago
im not familiar, sorry . it's not really obvious how either, i'm sure its done in an odd way
Marco
MarcoOP2w ago
No problem, but thank you for your help!
word
word2w ago
line 88 of AutoLinkRootInstanceModule.cpp in that mod looks interesting
Marco
MarcoOP2w ago
I don’t want to change the hologram after construction—I need to modify it in real-time during building mode (hologram) with a button press.
Marco
MarcoOP2w ago
I’ve been trying today to use 'GetHologramChildren()' to get all child holograms, but the returned array is always empty, even when there are multiple splitters and mergers placed inside a blueprint. Can someone explain why this happens?
word
word2w ago
i don't think there are actually child holograms, do you have access to something like ? to get all instances of holograms UGameplayStatics::GetAllActorsOfClass(World, AFGHologram::StaticClass(), &FoundActors); i can test it real quick, but i think there will only be the blueprint hologram. i think child holograms are for smaller stuff, like conveyor pole attachments and so on. maybe there is a performance consideration for not doing it this way i would think more toward like you swap / modify the blueprint itself temporarily you can access the AFGBuildable from the blueprint hologram, but i don't think you can get its "sub hologram" from the buildable because it doesnt exist. you can modify it, but actually building will override any change
auto a = OutHologram->mBuildableToNewRoot;
auto b = OutHologram->mBlueprintWorldSplineToHoloSpline;

for (int32 i = 0; i < a.Num(); ++i)
{
auto& Pair = a[i];
AFGBuildable* Buildable = Pair.Key();
USceneComponent* SceneComp = Pair.Value();
SceneComp->RelativeLocation.Z = 1000;
SceneComp->RelativeRotation.Pitch += 1.f;
SceneComp->RelativeRotation.Roll += 1.f;

}
auto a = OutHologram->mBuildableToNewRoot;
auto b = OutHologram->mBlueprintWorldSplineToHoloSpline;

for (int32 i = 0; i < a.Num(); ++i)
{
auto& Pair = a[i];
AFGBuildable* Buildable = Pair.Key();
USceneComponent* SceneComp = Pair.Value();
SceneComp->RelativeLocation.Z = 1000;
SceneComp->RelativeRotation.Pitch += 1.f;
SceneComp->RelativeRotation.Roll += 1.f;

}
You might be able to, i just didnt poke much further than that into the buildable class
Robb
Robb2w ago
UGameplayStatics::GetAllActorsOfClass(World, AFGHologram::StaticClass(), &FoundActors); careful with this, it will probably not work in multiplayer because there could be other peoples' holograms
Robb
Robb2w ago
What is a Buildable Hologram? :: Satisfactory Modding Documentation
Buildable Holograms control the logic of what happens when constructing buildings and where players can place them. Each FGBuildable needs...
Rex
Rex2w ago
I don't think a Blueprint has child holograms (IIRC those are for things like the HUB and its integrated buildables (HUB terminal, biomass burners, crafting station...)
Marco
MarcoOP2w ago
I've successfully modified the hologram preview rotation, but I can't get these changes to carry over to the constructed buildings. The rotation resets when construction completes. Do you know how to preserve hologram modifications in the final build?
Marco
MarcoOP2w ago
I'm getting really frustrated - it feels like I'm going in circles with this. I've scoured the documentation at least 15 times now, but can't find anything helpful about making hologram changes persist after construction.
word
word2w ago
oh that's clean To directly answer: no. But the hook in https://ficsit.app/mod/AutoLink seems to use the same types, and works for construction I would keep track of the changes I apply to the preview. And finalize them in the build stage. (i also dont know what im doing, but if ur stuck, that might work) The best way to implement this 🤔 idk . if the user can make any changes, the fastest way to implement might just be to straight up copy the data from hologram preview and override what comes through in the hook if the pointer matches. no promise its the same pointer tho 😛 i have some time so ill look at some stage and see if i can find out more im about to hit u with a unit test so give me a sec xD tldr the pointer changes, but i think the write order is the same. so you can copy all your objects in order
Marco
MarcoOP2w ago
You are awesome thanks
word
word2w ago
left are the items from the placement right are the hologram buildables from before the placement but the order looks the same, so it should be straightforward to do
word
word2w ago
No description
word
word2w ago
@Marco did you decide how u would go about it ? :hypers:
Marco
MarcoOP2w ago
That makes perfect sense! I'll take a look at the AutoLink code you mentioned and try to understand how it handles the build process. I'll likely copy and adapt most of it, as the approach seems solid. Thank you so much for all the incredible help and for digging into this. This is a huge step forward for me! 🙏
Marco
MarcoOP2w ago
Sorry for interrupting you last time, but could you maybe send or show me the code that you used for the video, or is that not possible?
word
word7d ago
it seems i made a mistake . so one of the cols was populated by validateplacementandcost . so when i placed the blueprint, it just got the ptrs from the new hologram and so they were obviously different. the pointers do seem to align. im not sure what happens (if anything even does) to our changed buildables between hologram preview and constructing it. i wonder if the blueprint info gets reloaded again -- but thats just a guess, since yours seems to change . not even sure mBuildableToNewRoot is correct here you will still probably need to apply your changes where that other mod does, it seems to touch a few places though i havent actually changed the buildable yet i think SceneComp is visual / preview only . since i quickly changed that in construct bp hologram, and it doesnt stick my code was basically the same as yours but via hooks so i removed it. im away for a few days so i wont be able to look into it
Marco
MarcoOP7d ago
No problem! I'll do my best to get it working, and once I've managed to do that, I'll send you the code. Thank you so much!

Did you find this page helpful?