> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://documentation.celestory.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Move character

# 🟧 Move character

${frame}[Video: anatomy of the Move character block](https://celestory-docs-videos.netlify.app/en/anatomie-bloc/movecharacter.html)

The **Move character** block slides a character already on screen to another slot and/or another depth layer of the stage.

"Moving" does not mean "positioning in pixels": you do not give coordinates, you give a **slot** number and a **depth** number within the grid declared by the Scene block. The character slides from its current position to the target cell, and its size adjusts if the depth changes.

## 📥 Inputs

*   **in (Flow)**: Entry point. As soon as the flow arrives, the move starts; the flow resumes when the animation is over.
*   **character (Character reference)**: Dropdown listing the module's characters. A second dropdown, "Select a mood", is offered: if you pick a mood there, it is applied **instantly** right before the move (with no crossfade).
*   **slot (Number, default 1)**: Destination horizontal slot, from 1 up to the number of "slots" of the Scene block. An out-of-range value is clamped back into the grid.
*   **depth (Number, default 1)**: Destination depth layer, from 1 up to the number of "depth" layers of the Scene block. Each extra layer shrinks the character by 10%; the size change is animated together with the move.
*   **transition (Choice, default "linear")**: The animation curve. `linear` = constant speed; `slows at the end` = brisk start then braking on arrival; `small bounce at the end` = the character slightly overshoots its slot and springs back.
*   **duration (Number, default 0.8)**: Length of the move, in seconds. At 0 the character is repositioned at once.

## 📤 Outputs

*   **out (Flow)**: The flow resumes when the character has reached its destination.

## 💡 Example

**Scenario: stepping closer for a confession**

1. The scene declares 3 slots and 2 depth layers. "Mira" is on slot 1, depth 2 (set back, at 90% of her size).
2. The player picks "Ask her for the truth".
3. A Move character block targets "Mira", slot 2, depth 1, transition `slows at the end`, duration 1.2: she steps toward the centre and grows back to 100% over 1.2 s.
4. In the same block, the mood "Tense" is selected: her expression changes as she starts moving.
5. The flow chains into a close-up Dialogue block.

## ⚙️ Technical Details

*   **Internal ID**: `moveCharacter`
*   **The character must already be on stage**: if the targeted character was not brought in by an Add character block, the block does nothing, silently, and the flow carries on. Same thing if no Scene block has run upstream.
*   **Mind the slot bookkeeping**: the player only updates the grid (free the old cell, occupy the new one) when the slot **and** the depth both change. On a single-depth stage — the most common case — the character does move on screen, but the grid still believes it sits on its original slot. Possible consequences: a later Add character block targeting the old slot will think it has to push it aside, and two characters can end up stacked. If you need to seriously rearrange the stage, it is safer to run a Scene block again and re-add the characters.
*   **The module setting "Character move transition duration"** is **not** used by this block: the `duration` input is what counts. That setting drives the automatic moves (when Add character pushes aside the occupant of a slot) and the clearing of the stage.
*   **"Disable every transition and delay" setting**: when it is on, the duration is forced to 0 and the character teleports to its new slot.

## 🔗 See also

*   **Add character**: to run first, so that the character is on stage.
*   **Scene**: defines how many slots and depth layers are available.
*   **Change mood**: to change the expression with a crossfade, without moving the character.

---

*Documented version: v1*