> For the complete documentation index, see [llms.txt](https://atiysus-organization.gitbook.io/aty-scripts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://atiysus-organization.gitbook.io/aty-scripts/inventory/features/placeable-items.md).

# Placeable Items

## Placeable Items

Set an item down in the world and it stays there.

```lua
Config.Placeable = { enabled = true }
```

#### Placing

Select a placeable item and place it. You get an aiming preview, you confirm, and the item leaves your inventory and becomes a prop in the world.

A placed item:

* **survives restarts** — it is persisted, not spawned per session
* **keeps its serial** — the same unit that was placed is the one picked up
* **has a label and picks up with E**, plus a target zone when `Config.Target.enabled` is on, so it is reachable with or without a target resource

#### Picking up

Walk to it and take it. It comes back as the same unit, with the same metadata, and both halves are ledger rows (`placed` / `picked_up`).

#### Carrying rule

Placing and picking up use the same carry rule as every other move. Picking up a traffic cone you have no room for is refused before the prop disappears — never after.

#### Commands

```
invplaced                   list what is placed
invplaced remove <id>       take one away; whatever was in it is written off
invplacelive <playerId>     set a traffic cone down in front of a real player
invplacedraw                (client) what this client knows about and has drawn
invplacedtest               self-test
```

Placed props have no admin panel screen; `invplaced` is how they are managed. The similarly named `invplace`, `invplacetest` and `invplacejson` belong to shops and stashes, not to placed items.

{% hint style="warning" %}
`invplacetest` was already taken by the shop-and-stash round trip in `server/places.lua`. Both registered it, the later file won, and the older test silently stopped existing — a command name has one owner, and the last registration wins without a warning. The placed-item self-test is therefore `invplacedtest`.
{% endhint %}
