# Scene and players

 Call Effect or return value --- --- things() All things in the copy, including hidden stock named(name) Things with that exact name, as an array at(x, y) Thing

| Call | Effect or return value |
| --- | --- |
| `things()` | All things in the copy, including hidden stock |
| `named(name)` | Things with that exact name, as an array |
| `at(x, y)` | Things on that tile |
| `players()` | Players currently in the copy |
| `move(thing, x, y[, seconds])` | Move scenery; default glide is one tick, `0` snaps |
| `hide(thing)`, `show(thing)` | Hide scenery or restore it |
| `spawn(thing, x, y)` | Reveal a hidden stock object at a tile |
| `tint(thingOrPlayer, "#rrggbb"[, seconds])` | Tint; optional duration fades it |
| `tint(thingOrPlayer)` | Remove tint |
| `floor(x, y, "#rrggbb")` | Colour a tile of the ground; `floor(x, y)` takes it off, `floor()` clears the whole floor as one effect |
| `walk(player, x, y)` | Request normal walking |
| `teleport(player, x, y)` | Place a player on a tile |
| `size(width, height)` | Resize a copy within its authored room bounds |
| `lock()`, `unlock()` | Close or reopen admission to the current copy |
| `input(mode)`, `input(player, mode)` | Set controls for the copy or one player |

Input modes: `grid` is ordinary walking and queued keys; `keys` sends keys
immediately and disables ordinary walking; `none` ignores movement/game keys.
Enter belongs to chat. Text fields capture their own typing. UI buttons still
work when movement is disabled. Phone walking uses double tap; dragging pans.

The floor is a colour layer on the copy, not scenery: a painted arena needs no
floor things, so a script may colour thousands of tiles (an event still counts
each `floor(x, y, colour)` as one effect; `floor()` is one). Late joiners receive
the whole floor. It is drawn in the isometric view.

Scene changes go through the server's room rules. `spawn` reuses authored stock;
it does not manufacture arbitrary new items. Use unique names when selecting
one object and check that `named(name)[1]` exists.
