"RenderExcludeTags on a tagged parent culls all child renderers too"
▸ SYMPTOM
Cosmetic effects (muzzle flash, mist, glow particles) attached as children of a first-person-hidden mount silently vanish in first person. The effects work fine in third person.
▸ CAUSE
GameObject.Tags inherit to ALL descendants in the hierarchy. When a CameraComponent.RenderExcludeTags exclusion targets a tagged parent object, every child renderer under that parent is also culled — not just the parent's own renderer.
If you tag a gun body with "viewer" and exclude that tag from the first-person camera, the muzzle flash, mist effect, and glow particles attached as children of the gun are all hidden along with it.
▸ FIX
A child that must stay visible while its parent hides cannot live under that parent in the hierarchy. Use the viewmodel parallel-copy pattern: maintain a separate copy of the cosmetic effect parented into the camera-attached viewmodel, driven off the same replicated state as the world copy.
▸ WHY IT WORKS
Tag inheritance is engine behavior — there is no per-child opt-out from inherited tags. The only way to exclude an object from a tag-based cull while keeping its children visible is to restructure the hierarchy so the children are not descendants of the tagged object.
- Published