> For the complete documentation index, see [llms.txt](https://docs.rainmad.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rainmad.com/resources/map-editor-place-anything/the-catalogue.md).

# The Catalogue

Over 30000 props, measured offline and shipped as data: size, ground offset, triangles, shaders, collision, embedded lights, the DLC each came with and the gamebuild it needs. The picker draws from that, and so does `getPropDetails` for any script that asks.

## The Three Kinds

Every row is one of three, and the picker has a control that switches between them:

| Tier        | Roughly | What                                                         |
| ----------- | ------- | ------------------------------------------------------------ |
| `prop`      | 23000   | standalone objects: furniture, clutter, gear                 |
| `element`   | 5000    | glass panes, light rigs, decals, emissive strips, vfx planes |
| `structure` | 2200    | walls, ceilings, floors, window frames, building shells      |

What a session opens onto depends on who opened it. `/map_editor` browses whatever `cfg.editor.tiers` lists, all three as it ships. `/prop_inspect` browses everything, since a room's own surfaces are often the reason for opening it. A resource calling `openEditor` without saying gets props only, which is what a furnishing session wants, and asks for the rest by passing `filter.tiers`.

Narrowing browsing hides nothing else: every row still ships, the server still answers about it, and any of them can be asked for by name or hash.

Props with no archetype at all never entered the catalogue: a row for something that would spawn nothing is worse than no row.

## Where a Prop Can Be Placed

This is the part worth understanding before somebody reports it as a bug.

A prop exists in the game only while the `.ytyp` holding its archetype is mounted, and what mounts a ytyp is the map. Roughly **half the catalogue is mounted everywhere**, permanently. The other half belongs to an interior or an area, and comes and goes with it: it can be placed near where it belongs and not on the other side of the map.

Measured at one spot with nothing declared: **15276 rows were valid there**, about half. Same catalogue, same server, a different spot gives a different half.

So the picker asks the game rather than guessing. A tile the game cannot make right now is dimmed, and picking it says which case it is:

> Not available where you are: this prop belongs to an interior that is not loaded.

Walk closer and it lights up. Nothing is broken, and nothing was placed that would have spawned as nothing.

## Making the Whole Catalogue Placeable Anywhere

The resource ships the other half as a ytyp of its own, `stream/rm_mapeditor_props.ytyp`, holding **14365 archetypes**. Registering it makes the whole catalogue placeable from anywhere: the same spot that had 15276 valid props has all of them.

It is **off by default**. To turn it on, uncomment the last line of `fxmanifest.lua`:

```lua
data_file 'DLC_ITYP_REQUEST' 'stream/rm_mapeditor_props.ytyp'
```

{% hint style="danger" %}
Four costs, and none of them can be worked around from inside this resource.

**The archetype pool.** Every archetype is a permanent slot out of 65535, shared with the whole game. These 14365 took **95% of it** on a server running little else, and a full pool fails on whoever registers next rather than on this resource. Check your headroom first: `archetypelist 1` in the F8 console, with this off.

**It is measured against one gamebuild.** An archetype declared from a file registers on any build, so on an older one `IsModelValid` answers true for a prop whose model that build never shipped: it looks placeable and picking it spends five seconds arriving at nothing. Audited on gamebuild 3751: 1284 of the declared props were valid everywhere and streamable nowhere, and every prop that was not declared behaved correctly.

**Restarting or stopping the resource crashes every connected player.** Registered archetypes cannot be taken back. Restart on an empty server only.

**The console fills.** One `Duplicate Archetype` line per prop per session as each interior mounts.
{% endhint %}

The honest summary: leave it off unless you are building a map and you know the pool has room. The dimmed tile is the cheaper answer, and it is correct.

## Gamebuild

Every row records the minimum gamebuild it needs and the DLC it came with. On an older build the newer props are dimmed with that reason, rather than placed and never arriving. Nothing to configure.

## Your Own Props

They go in beside the shipped rows and answer the same questions, thumbnails and measurements included. See [Adding Props](/resources/map-editor-place-anything/adding-props.md).
