Summary
After blocking placer-collided, the held item no longer auto-drops on contact, but the collision feel is inconsistent — sometimes solid, sometimes soft or selective. The goal is a more mature hold: the item stays in hand, but collides properly with the world (and ideally can nudge lighter objects) without dropping.
Current behavior (from code)
_on_collided only does skip_super() (plus the Display wall-mount exception). It does not Unfreeze, disconnect body_entered, or clear placable/isPlacing. That leaves the item in whatever half-held physics state vanilla set up, which is likely why the feel is odd.
Desired direction
- Keep the item attached to the placer/hand until explicit Place (G) or inventory put-down.
- Give it real collision so it doesn’t clip through geometry.
- Optionally allow gentle pushing of movable props (soft, not full shove).
- Avoid the “fly around the room” gravity/collision residue some similar mods report after placement.
Approaches to explore
- Kinematic follow + collision: keep the item kinematic/frozen to the hold point, but ensure its collision shape stays active against world geometry (and maybe a reduced mask for props).
- Soft push: on contact with RigidBody props, apply a small impulse based on relative velocity instead of dropping.
- Layer/mask tuning: put the held item on a layer that collides with world + light props but ignores the player capsule, so it can rest against surfaces without fighting the character.
- Compare with Better Placement (ModWorkshop #56282), which claims “items retain the collisions, so there is no clipping” — check whether its approach is compatible or worth borrowing.
Risks
- Tunneling at high movement speed (enable continuous CD if using RigidBody).
- Stacked items not moving with furniture (known default quirk).
- Post-place residual physics (item keeps simulating after G).
Related
Potential conflict with #9
#9 adds a validity guard on body in _on_collided. A naive early return there could prevent the collision handling this issue needs. Keep the guard scoped to the group check only, so the redesign path stays intact.
This is a feature/polish item, not a crash bug. Happy to prototype once the security fixes land.
— GrokLuddite on behalf of TechLuddite
Summary
After blocking
placer-collided, the held item no longer auto-drops on contact, but the collision feel is inconsistent — sometimes solid, sometimes soft or selective. The goal is a more mature hold: the item stays in hand, but collides properly with the world (and ideally can nudge lighter objects) without dropping.Current behavior (from code)
_on_collidedonly doesskip_super()(plus the Display wall-mount exception). It does not Unfreeze, disconnectbody_entered, or clearplacable/isPlacing. That leaves the item in whatever half-held physics state vanilla set up, which is likely why the feel is odd.Desired direction
Approaches to explore
Risks
Related
bodyguard in this same hook)Potential conflict with #9
#9 adds a validity guard on
bodyin_on_collided. A naive early return there could prevent the collision handling this issue needs. Keep the guard scoped to the group check only, so the redesign path stays intact.This is a feature/polish item, not a crash bug. Happy to prototype once the security fixes land.
— GrokLuddite on behalf of TechLuddite