feather-engine.vercel.app
Feather Engine
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 2 · Act 14 · Transact 0 · Score: Not yet scored
Tool inspector
set_character_controller
Add/configure the built-in third-person character controller on an object (WASD move, Shift sprint, Space jump, optional follow camera). The motion it produces auto-drives an animator with speed/verticalSpeed parameters. Pass enabled:false to remove control. All numeric fields optional.
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
objectId |
string | yes | — |
enabled |
boolean | no | — |
moveSpeed |
number | no | — |
sprintMultiplier |
number | no | — |
crouchMultiplier |
number | no | — |
jumpStrength |
number | no | — |
gravity |
number | no | — |
turnSpeed |
number | no | — |
groundLevel |
number | no | — |
acceleration |
number | no | Ground accel toward target speed (units/s²). Default 60. |
deceleration |
number | no | Ground decel to a stop (units/s²). Default 70. |
airControl |
number | no | Accel/decel multiplier while airborne, 0..1. Default 0.35. |
fallMultiplier |
number | no | Gravity ×multiplier while descending. >1 = snappier fall. Default 1.9. |
jumpCutMultiplier |
number | no | Upward velocity kept when jump released early, 0..1. Default 0.45. |
coyoteTime |
number | no | Grace seconds after leaving a ledge a jump still fires. Default 0.12. |
jumpBufferTime |
number | no | Jump pressed up to this many seconds BEFORE landing fires on touchdown. Default 0.15. 0 disables. |
landingRecovery |
number | no | 0..1: hard landings briefly sap speed + dip the camera, scaled by impact (drives the "landing" animator source). Default 0.4. 0 disables. |
apexHang |
number | no | Gravity ×multiplier near the jump apex — <1 adds a brief controllable hang at the peak. Default 0.65. 1 disables. |
sprintTurnFactor |
number | no | Turn-rate ×multiplier at full sprint (full rate at a walk) so fast runs carve wider arcs. Default 0.55. 1 disables. |
slideEnabled |
boolean | no | Sprint-slide: tapping crouch at sprint speed drops into a steerable momentum slide (drives the "sliding" animator source; jump cancels into a slide-hop). Default true. |
slideDuration |
number | no | Max slide seconds. Default 0.9. |
slideSpeedBoost |
number | no | Slide entry speed = current speed × this. Default 1.2. |
turnInPlace |
boolean | no | Idle third-person body rotates toward the mouse-look camera. Default true. |
turnInPlaceThreshold |
number | no | Yaw difference before idle turning starts, radians. Default 0.45. |
turnInPlaceSpeed |
number | no | Turn-in-place rotation speed in radians/sec. Defaults to turnSpeed. |
mantleEnabled |
boolean | no | Enable Space-to-vault/mantle against obstacles tagged vaultable/mantleable. |
keyMantle |
string | no | Optional dedicated mantle key. Empty/omitted means jump key can mantle. |
mantleRange |
number | no | Forward search distance for vault/mantle targets. Default 1.35. |
mantleMaxHeight |
number | no | Tallest obstacle top that can be mantled. Default 1.45. |
vaultMaxHeight |
number | no | Low obstacle height treated as vault. Default 0.9. |
mantleDuration |
number | no | Seconds for the mantle/vault arc. Default 0.38. |
modelYawOffset |
number | no | Facing offset in radians; use Math.PI (~3.14159) to flip a model that faces backwards. |
keyForward |
string | no | — |
keyBackward |
string | no | — |
keyLeft |
string | no | — |
keyRight |
string | no | — |
keyJump |
string | no | — |
keySprint |
string | no | — |
keyCrouch |
string | no | — |
keyCrawl |
string | no | — |
crawlMultiplier |
number | no | — |
strafe |
boolean | no | Face the camera + move 8-way (pairs with a 2D MoveX/MoveY blend space). |
keyRoll |
string | no | — |
rollSpeed |
number | no | — |
rollDuration |
number | no | — |
keyAttack |
string | no | — |
meleeDamage |
number | no | Melee damage. Default 34. |
meleeRange |
number | no | Melee range. Default 2.4. |
meleeComboCount |
integer | no | Melee combo chain length 1–3. >1 enables attack input buffering between hits. Default 1. |
meleeComboWindow |
number | no | Seconds after a swing starts during which another Attack press queues the next combo hit. Default 0.35. |
meleeHitstop |
number | no | Wall-clock seconds of global slow-mo on a successful melee hit (0 = off). ~0.09 feels snappy. |
meleeHitstopScale |
number | no | runtimeTimeScale during melee hitstop. Default 0.05. |
rollIFrameStart |
number | no | Seconds from roll start when dodge invulnerability begins. Pair with rollIFrameEnd. |
rollIFrameEnd |
number | no | Seconds from roll start when dodge invulnerability ends. Both 0 = no i-frames. |
keyAim |
string | no | — |
keyReload |
string | no | — |
keyInteract |
string | no | — |
interactRange |
number | no | Interact distance. Default 3. |
keyEmote |
string | no | — |
keyRagdoll |
string | no | — |
lockOnEnabled |
boolean | no | Lock-on targeting: keyLockOn toggles a lock on the nearest living target (object with health > 0 or enemy tag); the character strafes facing it and the camera frames both. Default true. |
keyLockOn |
string | no | Lock-on toggle key. Default "KeyT". |
lockOnRange |
number | no | Max distance to acquire a lock-on target. Default 16. |
lockOnBreakDistance |
number | no | Distance at which an existing lock breaks. Default 22. |
keySwapShoulder |
string | no | Tap to mirror the third-person camera to the other shoulder (also flips the aim shoulder shift). Default "KeyV". |
footstepSoundId |
string | no | Footstep audio asset id. |
jumpSoundId |
string | no | Jump audio asset id. |
landSoundId |
string | no | Land audio asset id. |
swimSoundId |
string | no | Water splash audio asset id. |
attackSoundId |
string | no | Attack audio asset id. |
hurtSoundId |
string | no | Hurt audio asset id. |
cameraFollow |
boolean | no | — |
cameraOffset |
array | no | [side, up, back]. Negative Z is behind. |
cameraPitch |
number | no | Base camera elevation in radians. |
mouseLook |
boolean | no | Orbit camera with mouse. |
mouseSensitivity |
number | no | — |
cameraRelativeMovement |
boolean | no | Move relative to camera. |
Raw JSON schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"objectId": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"moveSpeed": {
"type": "number"
},
"sprintMultiplier": {
"type": "number"
},
"crouchMultiplier": {
"type": "number"
},
"jumpStrength": {
"type": "number"
},
"gravity": {
"type": "number"
},
"turnSpeed": {
"type": "number"
},
"groundLevel": {
"type": "number"
},
"acceleration": {
"description": "Ground accel toward target speed (units/s²). Default 60.",
"type": "number"
},
"deceleration": {
"description": "Ground decel to a stop (units/s²). Default 70.",
"type": "number"
},
"airControl": {
"description": "Accel/decel multiplier while airborne, 0..1. Default 0.35.",
"type": "number"
},
"fallMultiplier": {
"description": "Gravity ×multiplier while descending. >1 = snappier fall. Default 1.9.",
"type": "number"
},
"jumpCutMultiplier": {
"description": "Upward velocity kept when jump released early, 0..1. Default 0.45.",
"type": "number"
},
"coyoteTime": {
"description": "Grace seconds after leaving a ledge a jump still fires. Default 0.12.",
"type": "number"
},
"jumpBufferTime": {
"description": "Jump pressed up to this many seconds BEFORE landing fires on touchdown. Default 0.15. 0 disables.",
"type": "number"
},
"landingRecovery": {
"description": "0..1: hard landings briefly sap speed + dip the camera, scaled by impact (drives the \"landing\" animator source). Default 0.4. 0 disables.",
"type": "number"
},
"apexHang": {
"description": "Gravity ×multiplier near the jump apex — <1 adds a brief controllable hang at the peak. Default 0.65. 1 disables.",
"type": "number"
},
"sprintTurnFactor": {
"description": "Turn-rate ×multiplier at full sprint (full rate at a walk) so fast runs carve wider arcs. Default 0.55. 1 disables.",
"type": "number"
},
"slideEnabled": {
"description": "Sprint-slide: tapping crouch at sprint speed drops into a steerable momentum slide (drives the \"sliding\" animator source; jump cancels into a slide-hop). Default true.",
"type": "boolean"
},
"slideDuration": {
"description": "Max slide seconds. Default 0.9.",
"type": "number"
},
"slideSpeedBoost": {
"description": "Slide entry speed = current speed × this. Default 1.2.",
"type": "number"
},
"turnInPlace": {
"description": "Idle third-person body rotates toward the mouse-look camera. Default true.",
"type": "boolean"
},
"turnInPlaceThreshold": {
"description": "Yaw difference before idle turning starts, radians. Default 0.45.",
"type": "number"
},
"turnInPlaceSpeed": {
"description": "Turn-in-place rotation speed in radians/sec. Defaults to turnSpeed.",
"type": "number"
},
"mantleEnabled": {
"description": "Enable Space-to-vault/mantle against obstacles tagged vaultable/mantleable.",
"type": "boolean"
},
"keyMantle": {
"description": "Optional dedicated mantle key. Empty/omitted means jump key can mantle.",
"type": "string"
},
"mantleRange": {
"description": "Forward search distance for vault/mantle targets. Default 1.35.",
"type": "number"
},
"mantleMaxHeight": {
"description": "Tallest obstacle top that can be mantled. Default 1.45.",
"type": "number"
},
"vaultMaxHeight": {
"description": "Low obstacle height treated as vault. Default 0.9.",
"type": "number"
},
"mantleDuration": {
"description": "Seconds for the mantle/vault arc. Default 0.38.",
"type": "number"
},
"modelYawOffset": {
"description": "Facing offset in radians; use Math.PI (~3.14159) to flip a model that faces backwards.",
"type": "number"
},
"keyForward": {
"type": "string"
},
"keyBackward": {
"type": "string"
},
"keyLeft": {
"type": "string"
},
"keyRight": {
"type": "string"
},
"keyJump": {
"type": "string"
},
"keySprint": {
"type": "string"
},
"keyCrouch": {
"type": "string"
},
"keyCrawl": {
"type": "string"
},
"crawlMultiplier": {
"type": "number"
},
"strafe": {
"description": "Face the camera + move 8-way (pairs with a 2D MoveX/MoveY blend space).",
"type": "boolean"
},
"keyRoll": {
"type": "string"
},
"rollSpeed": {
"type": "number"
},
"rollDuration": {
"type": "number"
},
"keyAttack": {
"type": "string"
},
"meleeDamage": {
"description": "Melee damage. Default 34.",
"type": "number"
},
"meleeRange": {
"description": "Melee range. Default 2.4.",
"type": "number"
},
"meleeComboCount": {
"description": "Melee combo chain length 1–3. >1 enables attack input buffering between hits. Default 1.",
"type": "integer",
"minimum": 1,
"maximum": 3
},
"meleeComboWindow": {
"description": "Seconds after a swing starts during which another Attack press queues the next combo hit. Default 0.35.",
"type": "number",
"minimum": 0.05
},
"meleeHitstop": {
"description": "Wall-clock seconds of global slow-mo on a successful melee hit (0 = off). ~0.09 feels snappy.",
"type": "number",
"minimum": 0
},
"meleeHitstopScale": {
"description": "runtimeTimeScale during melee hitstop. Default 0.05.",
"type": "number",
"minimum": 0.01,
"maximum": 1
},
"rollIFrameStart": {
"description": "Seconds from roll start when dodge invulnerability begins. Pair with rollIFrameEnd.",
"type": "number",
"minimum": 0
},
"rollIFrameEnd": {
"description": "Seconds from roll start when dodge invulnerability ends. Both 0 = no i-frames.",
"type": "number",
"minimum": 0
},
"keyAim": {
"type": "string"
},
"keyReload": {
"type": "string"
},
"keyInteract": {
"type": "string"
},
"interactRange": {
"description": "Interact distance. Default 3.",
"type": "number"
},
"keyEmote": {
"type": "string"
},
"keyRagdoll": {
"type": "string"
},
"lockOnEnabled": {
"description": "Lock-on targeting: keyLockOn toggles a lock on the nearest living target (object with health > 0 or enemy tag); the character strafes facing it and the camera frames both. Default true.",
"type": "boolean"
},
"keyLockOn": {
"description": "Lock-on toggle key. Default \"KeyT\".",
"type": "string"
},
"lockOnRange": {
"description": "Max distance to acquire a lock-on target. Default 16.",
"type": "number"
},
"lockOnBreakDistance": {
"description": "Distance at which an existing lock breaks. Default 22.",
"type": "number"
},
"keySwapShoulder": {
"description": "Tap to mirror the third-person camera to the other shoulder (also flips the aim shoulder shift). Default \"KeyV\".",
"type": "string"
},
"footstepSoundId": {
"description": "Footstep audio asset id.",
"type": "string"
},
"jumpSoundId": {
"description": "Jump audio asset id.",
"type": "string"
},
"landSoundId": {
"description": "Land audio asset id.",
"type": "string"
},
"swimSoundId": {
"description": "Water splash audio asset id.",
"type": "string"
},
"attackSoundId": {
"description": "Attack audio asset id.",
"type": "string"
},
"hurtSoundId": {
"description": "Hurt audio asset id.",
"type": "string"
},
"cameraFollow": {
"type": "boolean"
},
"cameraOffset": {
"description": "[side, up, back]. Negative Z is behind.",
"minItems": 3,
"maxItems": 3,
"type": "array",
"items": {
"type": "number"
}
},
"cameraPitch": {
"description": "Base camera elevation in radians.",
"type": "number"
},
"mouseLook": {
"description": "Orbit camera with mouse.",
"type": "boolean"
},
"mouseSensitivity": {
"type": "number"
},
"cameraRelativeMovement": {
"description": "Move relative to camera.",
"type": "boolean"
}
},
"required": [
"objectId"
]
}
Similar websites
morphus.myles4miles.chatgpt.site
Morphus is an AI-native workspace for designing worlds and generating playable game experiences.
damnpdfs.com
Install the DamnPDFs Codex plugin, pair a browser workspace and use PDF, image and file tools from your coding agent. Includes setup and privacy limits.
insignifi4nt.github.io
broCAD/M: local-first CAD and CAM for parametric design, wire EDM planning, simulation and controller export.
cabinet.varera.studio
The Cartographer's Cabinet