PlanetX Docsv1.0.1
Language: ENLast audited: 2026-08-23
Configuration ReferenceSource verified

Runtime Actor and Component Settings

Download this pageMarkdown

#Planet Component

UPlanetXPlanetComponent owns runtime registration and the planet's gravity model on APlanetXPlanetActor.

SettingDefaultPurpose
PlanetAssetNoneUPlanetXPlanetAsset represented by this Actor. It supplies runtime identity, Sections, coordinates, and visual contracts.
PlanetBindingIdNoneDistinguishes multiple Actors with the same Planet ID in one World. Empty uses the owning Actor name. Assign a stable value when travel tickets must survive Actor renames.
bAutoRegisterRuntimetrueRegisters with the runtime registry at Begin Play. If disabled, call the public registration API yourself.
bRefreshRuntimeRegistrationOnTransformChangetrueRefreshes the registered transform when the Planet Actor transform changes.
GravitySettings.bEnabledtrueEnables gravity queries for this planet.
GravitySettings.ModelConstantSurfaceConstantSurface maintains surface acceleration; InverseSquare scales it by inverse square of distance from the center.
SurfaceAccelerationCmPerSecondSquared980 cm/s², at least 0Gravity acceleration at the planet surface.
MaximumAccelerationCmPerSecondSquared100,000 cm/s², at least 0Caps Inverse Square acceleration near the center.

#Coordinate Component

SpatialEntryPolicy is the group containing the Same World automatic entry and return settings below.

SettingDefaultPurpose
bAutoRegisterRuntimetrueAutomatically registers the owner as a PlanetX runtime participant.
RepresentationDomainGroundDefault representation domain. Ground belongs to the source Level; Orbit appears in Planet/Compare and runtime Orbit/Transition presentation.
ActorSpatialLoadingPolicyPlanetXManagedPlanetXManaged keeps an Orbit Actor non-spatial/always loaded. ActorManaged leaves Is Spatially Loaded to the developer. This option does not manage Data Layers or Streaming Sources.
ReferencePlanetActorNonePlanet Actor used as the coordinate reference. It must own a valid Planet Asset and takes precedence over ReferencePlanetId.
ReferencePlanetIdNoneID used when no Planet Actor is assigned. Its options come from Planet Assets on Planet Components placed in the current World.
ReferenceSectionIdNoneEnabled Section ID from the resolved Planet Asset. Specify it for reproducible save, capture, and Sequencer paths.
bAutoResolveSectionFromWorldtrueWhen Section ID is None, selects the first Section containing the current Planet-local position in Asset array order. This is an editor/convenience query, not a persistent identity.
bSyncFromOwnerTransformInEditortrueRefreshes coordinate snapshots when the root transform changes in the editor. Authoritative runtime state belongs to the World Runtime Subsystem.
TransformSourceWorldTransformWorldTransform captures the PlanetX pose from the owner. PlanetXTransform generates World Transform from the stored canonical pose. Switching the source does not silently overwrite both values.

#Spatial Entry Policy

SettingDefaultPurpose
bAutomaticSameWorldEntryEnabledfalseAutomatically applies coordinate/Actor movement when entering a Same World Ground region from Orbit.
bAutomaticSameWorldReturnEnabledfalseAutomatically returns to Orbit representation when leaving the Ground region.
SameWorldReturnPosePolicyPreserveCurrentLogicalPosePreserves movement completed on Ground. RestoreEntryOrbitPose restores the Orbit pose captured at entry.
MovementContinuityPolicyRebaseBetweenFramesChooses Reset, PreserveWorld, velocity conversion with RebaseBetweenFrames, or DoNotApply.

#PlanetX Transform

These are authoritative inputs when TransformSource=PlanetXTransform.

SettingDefaultPurpose
PlanetIdNonePlanet identity.
PlanetBindingIdNonePlanet Actor binding in the current World. Runtime resolution requires a non-empty value.
PlanetFixedPositionCm(0,0,0)Position in planet-fixed coordinates.
PlanetFixedRotationIdentityNormalized rotation quaternion in planet-fixed coordinates.
Scale3D(1,1,1)Finite Actor scale.

#Movement Component

Add UPlanetXMovementComponent when using PlanetX native movement. It is not required when the project uses only its existing Character Movement.

NativeMovementSettings and SurfaceAlignmentSettings own the two setting groups documented below.

SettingDefaultPurpose
CoordinateComponentNoneCoordinate Component used as the reference. The owner may be searched when empty, but an explicit connection is less ambiguous.
bApplyPlanetGravitytrueApplies PlanetX gravity to movement.
bApplyPlanetGravityInGroundfalseAlso applies PlanetX gravity in Ground state. Avoid applying it on top of Character or physics gravity.
GravityScale1.0, at least 0Multiplier applied to the Planet Component's gravity acceleration.
bAutoRegisterRuntimetrueRegisters with the runtime movement registry automatically.

#Native Movement Settings

SettingDefaultPurpose
MassKg1 kg, at least 0.001Mass used by force/acceleration calculations.
MaximumSpeedCmPerSecond1,200 cm/sMaximum native movement speed.
AccelerationCmPerSecondSquared4,096 cm/s²Acceleration while input is applied.
DecelerationCmPerSecondSquared4,096 cm/s²Deceleration as input is released.
bConstrainInputToSurfacefalseRemoves the Surface Up component from input, constraining it to the tangent plane.
bAlignUpToSurfacetrueAligns Actor Up with planet Surface Up.
bSweepInOrbitfalseUses collision sweep for Orbit movement.
bSweepInGroundtrueUses collision sweep for Ground movement.
bMaintainSurfaceAltitudefalseMaintains the requested surface altitude while moving.
SurfaceAltitudeCm0 cmSurface altitude to maintain.

#Surface Alignment Settings

SettingDefaultPurpose
bPreserveCurrentForwardtrueProjects the current Forward onto the tangent plane while aligning Up.
FallbackForwardWorldWorld ForwardFallback when the current Forward is parallel to Up.
BlendTimeSeconds0.25 s, at least 0Rotation blend time. Zero applies alignment immediately.

For a public Surface Snap request, TargetAltitudeCm is the target surface altitude and bSweep controls collision sweep while moving there.

#Viewpoint Component

Place it on the Actor that is the actual PlayerController View Target and owns the active Camera.

SettingDefaultPurpose
bAutoRegisterRuntimetrueRegisters with the Viewpoint registry automatically.
bCanDriveTransitionStatetrueAllows this Viewpoint to drive Orbit/Transition/Ground evaluation. Disable it on observational Viewpoints when several are present.
PresentationCompensationModeAutomaticAutomatic resolves a suitable movable child, Disabled turns compensation off, and ExplicitComponent moves only the selected Component. Actor roots are never moved for compensation.
TransitionPresentationComponentNoneMovable child Scene Component that receives presentation compensation in Explicit mode.

#Travel Receiver Component

These settings restore a pending capture on an Actor in the new World after Level Handoff.

SettingDefaultPurpose
bAutoResumePendingTraveltrueAutomatically resumes pending travel after Begin Play. Disable it for a fully manual ResumePendingTravel flow.
bApplyControlRotationtrueRestores captured Controller rotation. Disable it when the project chooses arrival camera orientation independently.
ArrivalRetryTimeoutSeconds15 s, at least 0, UI maximum 30Bounded retry period while Planet Actor registration is deferred after OpenLevel. Zero disables delayed retries.

#Transition Endpoint

Using Add Endpoint in PlanetX Mode is the safest way to populate IDs and Actor references.

SettingDefaultPurpose
PlanetId, SectionId, LevelPairIdNoneTravel-contract identities shared by Orbit and Ground Endpoints.
EndpointRoleOrbitIdentifies this World-local Endpoint as the Orbit or Ground side.
PlanetAssetNoneCanonical source for Transition Policy. Required on Ground; Orbit can infer it from the Planet Actor.
PlanetActorNonePlanet Actor used by an Orbit Endpoint.
EnvironmentManagerActorNoneManager that changes environment presentation with transition state.
bAutoSizeTransitionCylinderToSectionBoundstrueDerives the cylinder from Section landing/playable bounds. While enabled, it replaces manual cylinder dimensions.
OuterRadiusCm / InnerRadiusCm1,000,000 / 250,000, at least 1Radii of the outer transition and inner Ground boundaries. Inner should be smaller than Outer.
bUseHeightLimittrueIncludes cylinder height in state evaluation.
OuterHalfHeightCm / InnerHalfHeightCm1,000,000 / 250,000, at least 1Outer and inner half-heights while Height Limit is enabled.
RuntimeAlphaUpdateThreshold0.002, at least 0Sends a runtime update when alpha changes by at least this amount. Smaller values update more often.
bDrawDebugTransitionCylinderstrueShows editor cylinder visualization.
CylinderLineThickness480, at least 1Debug line thickness.
DebugCylinderSegments96, 8–128Circumference segment count.
DebugCylinderHeightRingCount8, 0–12Additional rings along cylinder height.
DebugCylinderRadialBandCount3, 0–4Additional radial bands.

#Movement Handoff call options

These are per-call public Capture/Apply options, not persistent Component Details settings.

SettingDefaultPurpose
SourceCoordinateFrame / TargetCoordinateFrameNoneSelect a Planet or Section frame and its identity.
SourceSpaceState / TargetSpaceStateNoneOrbit, Transition, or Ground before and after handoff.
LifetimeSeconds0 sSnapshot lifetime. Zero can mean immediate expiry; provide a positive value appropriate to the call contract.
ContinuityPolicyRebaseBetweenFramesDetermines how velocity and angular velocity move from source to target frame.
bDeactivateSourcetrueDeactivates the source Movement Component after success.
bActivateTargettrueActivates the target Movement Component.
bUpdateComponentVelocitytrueWrites converted velocity to the target Component.
bConsumeOnSuccesstrueConsumes the Snapshot so it cannot be applied again.
bRequireSameActortrueRequires source and target Movement Components to belong to the same Actor.

The class default for UPlanetXSubsystem::MaxCaptureStackDepth is 8. It is an advanced safeguard for nested transition captures, not an ordinary Project Settings entry.