Skip to content

Client: Lumos (wand light) sync for remote players#57

Merged
Kheartz merged 2 commits into
mainfrom
spell-lumos
Jun 27, 2026
Merged

Client: Lumos (wand light) sync for remote players#57
Kheartz merged 2 commits into
mainfrom
spell-lumos

Conversation

@Kheartz

@Kheartz Kheartz commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

When a remote player turns on Lumos, their proxy now lights up, a warm wand-tip light, the raised-wand hold pose, and HL's own Lumos tip FX, and tears it all down when they turn it off. Stacks on the existing spell wire (the Lumos flag was already reserved in human_sync.hpp), so no new netcode bump.

Owning client publishes (UpdateLocal): the Lumos flag from LumosSpellTool::IsLumosActive(); the sustained light state, not "is the Lumos tool selected" (the tool stays selected after the light toggles off). On-foot only.

Remote proxy applies (UpdateLumos, edge-triggered on the held flag): on the rising edge it:

  • attaches a warm PointLight at the wand tip (MuzzleSocket, falling back to the hand socket / proxy root),
  • holds the Lumos arm-up pose as a looping montage in the UpperBody slot (legs keep walking),
  • spawns HL's layered tip FX (P_Lumos_Muzzle Cascade + VFX_NS_Lumos_LensFlare_Muzzle Niagara) at the muzzle;

and on the falling edge (or proxy despawn) destroys the light, stops the hold montage, and deactivates the FX. The light/FX/wand are all GC-slot-guarded (a collected component is skipped, not dereferenced).

Test command: /lumosnpcs toggles the sustained Lumos on the NPCs (light + raised wand + tip glow); run it again to confirm clean teardown. Needs the server built from this branch (it adds the setLumos binding) + pixi run deploy-resources + restart.

Kheartz added 2 commits June 27, 2026 04:16
The owning client publishes the Lumos flag (LumosSpellTool::IsLumosActive — the
sustained light state, not "is the Lumos tool selected"). Edge-triggered on the
held flag, the proxy attaches a warm point light at the wand tip, holds the
arm-up pose in the UpperBody slot (legs keep walking), and spawns HL's layered
wand-tip FX (Cascade muzzle glow + Niagara lens flare); all torn down when it
clears or the proxy despawns. Adds PlaySlotMontageLooping/StopMontageOnSkin.
Add Human.setLumos(bool) binding and a /lumosnpcs command that toggles the
sustained Lumos flag on spawned NPCs, so the proxy's wand light + arm-up pose +
tip FX can be eyeballed with one client.
@Kheartz Kheartz merged commit aab12d9 into main Jun 27, 2026
2 checks passed
@Kheartz Kheartz deleted the spell-lumos branch June 27, 2026 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant