Moddy-PBMovement icon

PBMovement

HL2 style character movement, ported from Project Borealis. Bunnyhopping, air strafing, surfing, and more!

Last updated a day ago
Total downloads 97
Total rating 1 
Categories Mods Tweaks
Dependency string Moddy-PBMovement-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

Thunderstore-unreal_shimloader-1.1.7 icon
Thunderstore-unreal_shimloader

Thunderstore Mod Manager and r2modmanPlus support for RE-UE4SS.

Preferred version: 1.1.7

README

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:

  1. 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.
  2. Blueprint bytecode patch: VotV's settings graph overwrote AirControl/JumpZVelocity every load, so we NopRange those two EX_Let writes in ExecuteUbergraph_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