Summary
The laser rifle is currently a first-person viewmodel only. Two consequences:
- Multiplayer: other players do not see the rifle in your hands at all.
- Photo Mode: with the rifle equipped, Satisfactory's decoupled (free-fly) camera renders the pioneer in a distorted, over-extended aim pose (screenshot-confirmed it is the 3P character mesh
Mesh3P, not the 1P arms).
Both are the same underlying gap: there is no proper third-person representation of the rifle.
Root cause
- The visible rifle is
BodyMesh, anchored to the camera / Mesh1P and positioned in view space by ProceduralArmsHold() — Source/LaserRifleMod/Private/LaserRifleWeapon.cpp (~line 604; see also AttachToCamera ~499, AttachToArms ~522).
BodyMesh, RiggedBody, and all FX are SetOnlyOwnerSee(true), so they never replicate.
- The Photo Mode distortion is FactoryGame's built-in equipment aim animation on
Mesh3P, revealed from an external angle.
Do NOT just flip the flag
Setting SetOnlyOwnerSee(false) alone is wrong — the mesh is camera-space, so other players would see it floating at the player's face, not held in the hands. A real 3P attachment is required.
Proposed fix
Add a real 3P representation — a rifle mesh attached to the character's 3P hand/weapon socket that moves with the 3P body animation. Same fix for both symptoms.
- Cover all 10 per-Mk meshes (see
ApplyVisualsForLevel) with correct per-Mk 3P scale/orientation.
- Investigate
AFGWeapon/AFGEquipment 3P representation (AFGEquipmentAttachment, mAttachSocket, 3P mesh) via the graphify FactoryGame-API vault, then confirm against the real headers under SatisfactoryModLoader\Source\FactoryGame\Public.
Verify first (decides severity)
2-player listen-server test: Player A equips the rifle and enters Photo Mode with the decoupled camera; Player B observes A. Does B see the contortion or a normal pose? (Hypothesis: the decoupled camera is local, so B sees A normally via A's replicated aim rotation — confirm in-game, do not assume.)
Acceptance
- Other players see the rifle held correctly in 3P at every Mk.
- Photo Mode framing reads correctly, or a documented neutral pose while the decoupled camera is active.
[LR] diagnostics on the new 3P path; cold review + in-game test checklist.
Target: 1.1.0. Documented as a known limitation in the 1.0.0 ficsit description.
Summary
The laser rifle is currently a first-person viewmodel only. Two consequences:
Mesh3P, not the 1P arms).Both are the same underlying gap: there is no proper third-person representation of the rifle.
Root cause
BodyMesh, anchored to the camera /Mesh1Pand positioned in view space byProceduralArmsHold()—Source/LaserRifleMod/Private/LaserRifleWeapon.cpp(~line 604; see alsoAttachToCamera~499,AttachToArms~522).BodyMesh,RiggedBody, and all FX areSetOnlyOwnerSee(true), so they never replicate.Mesh3P, revealed from an external angle.Do NOT just flip the flag
Setting
SetOnlyOwnerSee(false)alone is wrong — the mesh is camera-space, so other players would see it floating at the player's face, not held in the hands. A real 3P attachment is required.Proposed fix
Add a real 3P representation — a rifle mesh attached to the character's 3P hand/weapon socket that moves with the 3P body animation. Same fix for both symptoms.
ApplyVisualsForLevel) with correct per-Mk 3P scale/orientation.AFGWeapon/AFGEquipment3P representation (AFGEquipmentAttachment,mAttachSocket, 3P mesh) via the graphify FactoryGame-API vault, then confirm against the real headers underSatisfactoryModLoader\Source\FactoryGame\Public.Verify first (decides severity)
2-player listen-server test: Player A equips the rifle and enters Photo Mode with the decoupled camera; Player B observes A. Does B see the contortion or a normal pose? (Hypothesis: the decoupled camera is local, so B sees A normally via A's replicated aim rotation — confirm in-game, do not assume.)
Acceptance
[LR]diagnostics on the new 3P path; cold review + in-game test checklist.Target: 1.1.0. Documented as a known limitation in the 1.0.0 ficsit description.