Abilities in the Character Controller Library (CCL) evaluate what a character can do, such as the ability to run, jump, climb, and swim. Instead of relying on rigid engine‑defined character states like those in Enum.HumanoidStateType, the CCL enables flexible behavior composition such as a character being able to move while also aiming and crouching.
Enable CCL
The CCL is opt-in through Studio's Avatar Settings window. To enable it:
From the Avatar tab, open Avatar Settings.

Select the Movement tab on the left side of the window and, in the Abilities section, select Character Controller Library.

All of the standard abilities like Running, Jumping, and Climbing are enabled by default. To disable any of them at runtime, uncheck the associated box.
Configuration
While your game is running (or through a script that runs from ServerScriptService), you can experiment with the built‑in ability configurations. You can also modify specific controllers to adjust the physical simulation of the character and its interaction with the environment, such as the character's base movement speed.
Runtime
To experiment with ability configurations at runtime:
Begin a playtest.
Select one of the built-in abilities and, within its Attributes section of the Properties window, customize attributes such as those noted below.
Ability Attributes Climbing - SpeedMultiplier — Multiplier to the ClimbController.MoveSpeedFactor property when character is climbing.
Dead - Enabled — Character dies when health is 0 or less.
- Health ⇔ Humanoid.Health
- MaxHealth ⇔ Humanoid.MaxHealth
- RequiresNeck ⇔ Humanoid.RequiresNeck
FacingMoveDirection - Enabled ⇔ Humanoid.AutoRotate
FallingDown Freefall - SpeedMultiplier — Multiplier to the AirController.MoveSpeedFactor property when character is free‑falling. Note that the effect may be subtle when the character free‑falls for a very short duration.
GettingUp Jumping - JumpHeight ⇔ Humanoid.JumpHeight
- JumpPower ⇔ Humanoid.JumpPower
- UseJumpPower ⇔ Humanoid.UseJumpPower
NoLocomotion Running - SpeedMultiplier — Multiplier to the GroundController.MoveSpeedFactor property when character is running.
Sitting Swimming - EnableFastRise — Rise to surface more quickly by holding the jump input.
- SpeedMultiplier — Multiplier to the SwimController.MoveSpeedFactor property when character is swimming.
Scripted
To set ability configurations for all characters through a script:
Create a new server-side Script within ServerScriptService and rename it to AbilitiesScript.
Copy and paste the following code into the new script. This example multiplies the base movement speed for the Running ability by 2. Feel free to adjust other ability attributes such as those described in the table above.
Script in ServerScriptServicelocal Players = game:GetService("Players")local function onCharacterAdded(character)local AbilityManagerActor = character:WaitForChild("AbilityManagerActor")local Abilities = AbilityManagerActor:WaitForChild("Abilities")local Running = Abilities:FindFirstChild("Running")if Running then-- Double base move speedRunning:SetAttribute("SpeedMultiplier", 2)endendlocal function onPlayerAdded(player)if player.Character thenonCharacterAdded(player.Character)endplayer.CharacterAdded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
