Using SCL's Functions and References - darkresident55/Soft-Chimp-Locomotion GitHub Wiki

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;

}

inWaterOrSpace bypasses 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 Rigidbody and MotionSettings in Awake() or Start().

  • Use OnTriggerEnter/Exit only for zone-based logic. For timed or UI-driven changes, use coroutines or Invoke.

  • Consider using tags or layer masks to reduce false triggers.


⚠️ **GitHub.com Fallback** ⚠️