Skip to content
- Shape-driven gravity volumes. One component with a Shape dropdown: Sphere, Cylinder or Box. Each is a self-contained SceneComponent with its own transform, so you can place, rotate, attach and stack as many as you like.
- Planet gravity. A Sphere pulls toward its centre, so you can walk all the way around a planet or asteroid.
- Ring-world gravity. A Cylinder pushes radially outward from its axis (centrifugal), for walking the inside of a ring or O’Neill cylinder. The axis follows the component’s local Z.
- Cuboid / directional gravity. A Box gives uniform gravity straight down its local −Z, for rooms, corridors and flip-gravity puzzle zones.
- Invert toggle. Flip any shape: a Sphere repels, a Cylinder pulls to its axis, a Box pushes up.
- Per-source gravity strength. Each volume has its own strength in cm/s² (980 = Earth), so a moon pulls lightly and a dense planet pulls hard.
- Priority override zones. Nest a small, high-priority volume inside a large one. Where volumes overlap, the highest Priority wins, and you can mix shapes, such as a flip-gravity Box room inside a Sphere planet.
- Logical volumes. Gravity sources have no collision. You bring your own walkable meshes, which keeps the field and the geometry independent.
- Per-level default gravity. A placeable
AGravityDefaults actor sets what characters feel outside every volume: a direction and strength, or zero gravity. With no actor, gravity is world-down.
- Zero-gravity free-fly. Outside gravity, the character flies in full 6DOF with a dedicated up/down thrust input and never falls.
- Built on the engine’s variable gravity. A custom Character Movement Component sets the gravity direction and strength, so floor detection, stepping, jumping and falling work in any direction, with full network prediction.
- Gravity-aligned character and camera.
AGravityCharacter has an independent gravity-aligned camera (full 360° yaw, decoupled from facing) and orient-to-movement on any surface.
- First or third person. The demo character toggles between a gravity-aligned first-person camera and the third-person orbit camera. Both stay level with the surface, with no roll, and each player picks their own view in multiplayer.
- Optional replicated jetpack. A toggle lifts the character into a hover that holds a minimum height above the floor; up/down thrust rises above it. Predicted and replicated, with an On Jetpack State Changed event on every machine.
- Rigid bodies obey your gravity. Add
UGravityBodyComponent to any physics actor and its bodies fall toward the gravity field instead of world down. Crates settle on the far side of a planet, are pushed outward inside a ring world, and drift in zero-g.
- Mass-independent acceleration, with sleep handling so props still settle, and a per-body strength scale.
- Enables simulation for you if the mesh was not already simulating.
- Deterministic gravity. Direction and strength are a pure function of position, computed locally on every machine, so simulated proxies align to the surface without replicating rotation.
- No overlap events. Sources are selected by a per-tick point-in-volume query, so server and clients always agree.
- No proxy jitter or walk/fall flicker. Proxy floor detection stays accurate on curved surfaces, and network smoothing is translation-only.
- Editor and runtime debug: a per-shape boundary gizmo, gravity-direction arrows and an optional translucent volume mesh, each toggleable. The gizmo and arrows compile out of Shipping builds.
- Full Blueprint support: shape, size, strength, invert, priority, the gravity queries, the per-level default, the jetpack and the first-person toggle are all exposed to Blueprint and C++.
- Gravity queries such as
GetGravityDirectionAtLocation(), ContainsPoint(), ComputeGravityDirection(), GetGravityStrengthAt() and ShouldApplyGravity() are callable from Blueprint.
- No third-party dependencies.
- Full C++ source
GravitySourceActor: a drop-in gravity volume
AGravityDefaults: placeable per-level default gravity
BP_PlanetPerson: a ready-to-play character with gravity movement, first/third-person camera and gravity-aligned look
- A jetpack character variant with demo FX
- Mannequin character and Anim Blueprint with flying/floating locomotion
- Enhanced Input mapping context and input actions (Move, Look, Jump, Vertical, Jetpack, First-Person)
Ring: a walkable ring/cylinder mesh for the ring-world demo
AGravityPhysicsProp and a physics demo level (a planet ringed with props)
- A demo level with a planet, a ring world and a flip-gravity box, pre-configured