PBMovement
HL2 style character movement, ported from Project Borealis. Bunnyhopping, air strafing, surfing, and more!
| Date uploaded | 2 months ago |
| Version | 1.0.0 |
| Download link | Moddy-PBMovement-1.0.0.zip |
| Downloads | 351 |
| Dependency string | Moddy-PBMovement-1.0.0 |
This mod requires the following mods to function
Thunderstore-unreal_shimloader
Thunderstore Mod Manager and r2modmanPlus support for RE-UE4SS.
Preferred version: 1.1.7README
PB Movement for Voices of the Void
Gives your character Half-Life 2 / Source-engine movement - air-strafing, bunnyhopping, and surfing - in place of VotV's default movement.
What you get
Air-strafing, bunnyhop (manual or auto), surfing on steep ramps Source-style, slippery surfaces and snappy ground movement with quick acceleration and responsive stops.
Sprint, walk, and crouch all still work the way you expect - sprint uses your normal run key.
Built for VotV a09 / a09n.
Configuring it - PBMovement.ini
| Setting | What it does |
|---|---|
EnableGraft |
true/false master switch. Set to false to temporarily get vanilla VotV movement back without uninstalling. |
RunSpeed |
Your normal move speed. PB defaults are HL2-scale. |
SprintSpeed |
Speed while holding your run key. |
WalkSpeed |
Slow-walk speed. |
JumpZVelocity |
How high you jump. |
AutoBunnyhop |
true = hold jump to auto-bhop. false = you must tap jump each time. |
AirControl |
How much you can steer mid-air. 1.0 is full HL2-style control. |
Surf feel (if ramps don't behave)
| Setting | What it does |
|---|---|
SurfEntrySpeed |
How fast you must be falling/moving to "stick" to a ramp instead of just landing on it. Lower it if you slide off ramps you wanted to surf; raise it if you stick to little bumps you'd rather walk over. |
SurfEntryMaxNormalZ |
How steep a ramp has to be to surf. Raise toward 1.0 to surf gentler ramps; lower it to require steeper ones. |
The remaining sections ([Acceleration], [Braking], [EdgeFriction],
[Slope], [Misc]) are for fine-tuning the exact feel - the defaults match
Project Borealis, so you can leave them alone unless you're chasing a specific
feel.
Updating the mod won't overwrite your edited
PBMovement.ini- your tuning is safe.
How it works
PB's UPBPlayerMovement/APBPlayerCharacter are native engine classes that
can't be registered into the shipped game, so instead of instantiating them we
port PB's logic into the mod and graft it onto VotV's existing
UCharacterMovementComponent. Two techniques:
- Per-instance vtable swap:
on player spawn we copy the component's vtable, point the movement virtuals
(
CalcVelocity,DoJump,HandleSlopeBoosting,GetMaxSpeed,NewFallVelocity,ShouldLimitAirControl) at our ported C++, and swap the instance's vtable pointer. Only the player's component is affected. - Blueprint bytecode patch: VotV's settings
graph overwrote
AirControl/JumpZVelocityevery load, so weNopRangethose twoEX_Letwrites inExecuteUbergraph_mainPlayer(size-preserving) so PB's values stick.
Credits & license
Movement design and reference implementation by Project Borealis (PBCharacterMovement), which is released under the MIT License. This mod ports that movement logic and grafts it onto VotV's player at runtime.
Physics reference from Jiangwei Chong's Half-Life Physics Reference
CHANGELOG
1.0.1
- New: GroundTurnFriction ([Braking], default 8.0) - turning now grips like vanilla VotV instead of drifting. Set to 0 for the old drift. Does not affect bunnyhop landings, carried speed, or air-strafing.
- Fixed: BrakingFriction did nothing - the value was hardcoded internally; the INI value now actually works.
- Changed: BrakingDecelerationWalking default 190.5 -> 381
- Fixed: Ground traction is now pinned at full, and surf/air traction logic is unchanged.
New settings ([Misc])
- DisableRagdoll (default false) - completely disables player ragdolling (falls, pass-outs, deaths, ragdoll key). Patches the game's ragdollMode function to a no-op; sleep/death sequences still work, only the flop is skipped.
- DisableFallDamageCrouch (default true) - the game force-crouches you on non-lethal fall damage, killing all momentum. This option disables that entirely.