Foundry Physics Character
Foundry Physics Character is a kinematic character-controller behavior built on Jolt CharacterVirtual through the Foundry Physics world plugin.
Install and dependency
- Import the Foundry Physics Character addon package.
- Ensure one Foundry Physics object exists in the project.
- Add the behavior to your player or NPC object.
Do not use Foundry Physics Body on the same instance as this behavior.
Scripting
When using JavaScript or TypeScript, drive movement with the same per-tick simulate actions used in event sheets so controller state remains predictable.
Core capabilities
- Collide-and-slide movement.
- Grounding and slope/stair handling.
- Jump pipeline with sustain, air jumps, and coyote time.
- Convex character collider set.
- Detectability by raycasts via solid inner body option.
Collider constraints
CharacterVirtual requires convex shapes. Available options:
- Box
- Sphere
- Capsule
- Cylinder
- Tapered capsule
- Tapered cylinder
- Convex hull
Static-only body shapes (triangle mesh, plane, height field) are not available for this behavior.
Character properties
Setup and collider
- Enabled on start.
- Body type (kinematic).
- Collider shape/source and override controls.
- Collider size/offset/scale and tapered radius scales.
- Collision layer and mask.
- Detectable by raycasts.
Movement and grounding
- Forward acceleration/deceleration/max speed.
- Sideways acceleration/deceleration/max speed.
- Slope max angle.
- Max stair height.
- Can be pushed.
- Bind object and forward angle.
Jump and fall
- Max falling speed.
- Gravity.
- Jump height.
- Jump sustain time.
- Air jump count.
- Floor jumps count as air jumps.
- Coyote time.
Character conditions
State
- Can jump.
- Is falling.
- Is jumping.
- Is moving.
- Is on floor.
Collision context
- Is on given platform.
- Is colliding with object.
Character actions
Configuration
- Set enabled.
- Set max falling speed.
- Set gravity.
- Set jump height.
- Set jump sustain time.
- Set forward acceleration/deceleration/max speed.
- Set sideways acceleration/deceleration/max speed.
- Set slope max angle.
- Set max stair height.
- Set can be pushed.
- Set bind object and forward angle.
- Set air jump count.
- Set floor jumps count as air jumps.
- Set coyote time.
Use this group to tune movement, gravity, jumping, and grounding behavior.
Collider
- Set collider size X.
- Set collider size Y.
- Set collider size Z.
Use this group to update collider dimensions at runtime.
Controls
- Simulate move forward.
- Simulate move backward.
- Simulate move left.
- Simulate move right.
- Simulate jump.
- Simulate stick.
- Set forward angle.
- Teleport.
Use this group every tick to feed player input into the controller.
State controls
- Abort jump.
- Allow jumping again.
- Forbid jumping again in air.
Use this group to override jump state in special gameplay flows.
Character expressions
Configuration
FallingSpeedMax,Gravity,JumpSpeed,JumpSustainTime.ForwardAcceleration,ForwardDeceleration,ForwardSpeedMax.SidewaysAcceleration,SidewaysDeceleration,SidewaysSpeedMax.AirJumpCount,AirJumpsRemaining,CoyoteTime.SlopeMaxAngle,MaxStairHeight.CanBePushed,BindObjectAndForwardAngle,FloorJumpsCountAsAirJumps.
These expressions expose active tuning values.
Runtime state
CurrentFallSpeed.CurrentForwardSpeed.CurrentJumpSpeed.CurrentSidewaysSpeed.ForwardAngle.
These expressions expose current movement/jump state.
Typical usage
- Basic player controller: per tick, call simulate movement/jump actions based on input.
- Double jump setup: set air jump count to 1 and tune sustain time and jump height.
- Tight platforming: tune coyote time and max stair height for desired forgiveness.
Troubleshooting
- Character does not move: confirm simulation actions are called every tick.
- Can never jump: verify on-floor conditions and coyote/air jump settings.
- Moves but faces wrong direction: tune bind-facing setting and forward angle.
- Collides unexpectedly: check layer/mask values.