Skip to content
This repository was archived by the owner on Oct 18, 2026. It is now read-only.

fix: vr items drift, new collision service, new collision flag - #6

Merged
cmpayc merged 1 commit into
vr-supportfrom
fix/drifting-items
Sep 13, 2026
Merged

cmpayc merged 1 commit into
vr-supportfrom
fix/drifting-items

Conversation

@cmpayc

@cmpayc cmpayc commented Sep 12, 2026 •

Copy link
Copy Markdown
Owner

Summary

Fixes object drifting in Skyrim VR. Remote players and NPCs are moved by being teleported to their interpolated positions. When their collision lands inside a loose object, Havok pushes that object out of the way, so clutter and dropped weapons slide around the world. Also fixes remote NPCs whose collision gets pushed away from their visible body, which left them unhittable where they stand.

Highlights:

  • Adds a dedicated collision service that stops remote players and NPCs from colliding with clutter and dropped weapons.
  • Keeps full collision for the local player through mirrored collision layers, including the VR melee weapon bodies, so the player's hits still land.
  • Remote characters can still block the local player and remain hittable.
  • Puts a remote actor's collision back under its body when a player or NPC pushes it away. Each actor's normal capsule offset is measured, so creatures are not corrected constantly.
  • Reapplies collision rules after cell changes, 3D rebuilds, weapon-state changes, and melee weapon rebuilds.
  • Restores the local player's original collision layers on disconnect.
  • Adds the server setting bDisableCollisionBetweenOtherCharactersAndObjects.
  • Limits the change to Skyrim VR. Per-frame checks use plain memory reads only, and the expensive lookups run only when something changes.

@cmpayc
cmpayc merged commit aaf5d83 into vr-support Sep 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant