Table of Contents
Soft Chimp Locomotion — Motion Settings Basics (v9.6+)
For versions 9.6 and above, with community patch support and modular motion profiles.
using SoftChimpMotion;
Teleporting the Chimp to a New Location
Teleporting should disable movement before relocation and re-enable after.
// Disable Locomotion (stops input + movement calc)
MotionSettings.Instance.locomotionEnabledState = MotionSettings.LocomotionState.Disabled;
// Move the Chimp (recommended to cache these in Awake or Start)
GameObject chimp = GameObject.Find("Chimp");
Transform teleportTarget = GameObject.Find("TeleportTarget").transform;
chimp.transform.position = teleportTarget.position;
// Re-enable Locomotion
MotionSettings.Instance.locomotionEnabledState = MotionSettings.LocomotionState.Enabled;
Disabling Gravity in Water or Space Zones
Make sure to reference both the Rigidbody and the MotionSettings on your Chimp GameObject.
Setup (cache references)
Rigidbody chimpRigidBody = GameObject.Find("Chimp").GetComponent<Rigidbody>();
MotionSettings motionSettings = GameObject.Find("Chimp").GetComponent<MotionSettings>();
Turn Off Gravity (OnTriggerExit)
private void OnTriggerExit(Collider other)
{
chimpRigidBody.useGravity = false;
motionSettings.inWaterOrSpace = true; // disables motion gravity logic
}
Turn On Gravity (OnTriggerEnter)
private void OnTriggerEnter(Collider other)
{
chimpRigidBody.useGravity = true;
motionSettings.inWaterOrSpace = false;
}
inWaterOrSpacebypasses ground checks & gravity fall velocity; used in Zero-G, Water, Dreamworlds.
Switching Movement Profiles (V9.6+)
SCL v9.6 introduced modular movement profiles with hot-swappable presets. These can drastically change feel (e.g., swimming, dream float, hard parkour).
Example Usage
// Switch to "ZeroGravity" profile
MotionSettings.Instance.ApplyMotionProfile("ZeroGravity");
// Switch to "Default" grounded profile
MotionSettings.Instance.ApplyMotionProfile("StandardChimp");
⚠️ Profiles are case-sensitive unless you enforce lowercase in your custom loader.
You can find or edit these under:
SoftChimp → Resources → MotionProfiles/
Bonus: Disabling Inputs Without Pausing Motion Logic
Sometimes you want gravity and physics to stay but stop user input:
MotionSettings.Instance.locomotionEnabledState = MotionSettings.LocomotionState.InputOnlyDisabled;
Tips for Clean Setup
-
Cache references to
RigidbodyandMotionSettingsinAwake()orStart(). -
Use
OnTriggerEnter/Exitonly for zone-based logic. For timed or UI-driven changes, usecoroutinesorInvoke. -
Consider using
tagsorlayer masksto reduce false triggers.