> For the complete documentation index, see [llms.txt](https://documentation.rcore.cz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.rcore.cz/paid-resources/rcore_housing/faq.md).

# FAQ

Short answers to common `rcore_housing` questions.

<details>

<summary>Where do I configure properties and interiors?</summary>

Use `/housing`. Properties, interiors, furniture, listings, and upgrades are all stored in the database and managed from the admin panel and the marketplace.

</details>

<details>

<summary>Do I need to import an SQL file?</summary>

No. The script creates its tables automatically on first boot. See the [database integration](/paid-resources/rcore_housing/integrations/database.md) for the full table list.

</details>

<details>

<summary>Can I disable the alarm system?</summary>

Yes. Set `Config.Alarm.Dispatch.Enable = false`, `Config.Alarm.AlarmSound.Enable = false`, and `Config.Alarm.Owner.Enable = false` in `configs/config.security.lua`.

</details>

<details>

<summary>Can I disable starter apartments?</summary>

Yes. Set `Config.StarterApartment.Enabled = false` in `config.lua`. It's disabled by default.

</details>

<details>

<summary>How do I test rent / eviction without waiting 30 days?</summary>

Set `Config.Billing.TestMode = true` in `configs/config.billing.lua`. Cycle and grace values flip to seconds. **Disable it before going live** - players are evicted in minutes otherwise.

</details>

<details>

<summary>Are SHELL, IPL, and MLO interiors all supported?</summary>

Yes. Use the [Interior Creator](/paid-resources/rcore_housing/features/interior-creator.md) to author SHELLs and register IPLs. MLOs are added directly when creating a property by providing entry/exit coordinates.

</details>

<details>

<summary>Why is my Shells / IPLs list empty in the property creator?</summary>

The picker only shows interiors that have been registered through the **Interior Creator** (`/housing` → **Interior Creator**). Simply having an IPL name or a shell model on your server is not enough — an admin must author its entry/exit points in the Interior Creator first.

Two specific cases:

**Custom IPLs or shells you added are not appearing** You must register them via the Interior Creator even if the IPL name is correct or the model is already streamed. See [Shells & IPLs — Adding Custom Shells & IPLs](/paid-resources/rcore_housing/integrations/shells.md#adding-custom-shells--ipls).

</details>

<details>

<summary>What is the difference between the Entry point and Exit point?</summary>

These are two separate teleport destinations set during Interior Creator authoring:

| Point     | Location                 | When it is used                                                  |
| --------- | ------------------------ | ---------------------------------------------------------------- |
| **Entry** | **Inside** the interior  | Where the player lands after *entering* the property (going in). |
| **Exit**  | **Outside** in the world | Where the player lands after *leaving* the property (going out). |

For SHELLs there is a third concept — the **exterior origin** — which is where the shell object is spawned in the world. This is the building's anchor position, not a teleport destination.

Quick memory aid: **Entry = inside (you just arrived). Exit = outside (you just left).**

</details>

<details>

<summary>Can I add custom furniture props?</summary>

Yes. Open `/housing` → **All Furniture** → **Add**. Provide the prop model name and metadata. The full furniture catalog lives in the database - see [Property Manager](/paid-resources/rcore_housing/features/property-manager.md).

</details>

<details>

<summary>Which inventories are supported?</summary>

`ox_inventory`, `qb-inventory`, `qs-inventory`, and the ESX-native inventory. Auto-detect picks them in that order. See [inventory integration](/paid-resources/rcore_housing/integrations/inventory.md).

</details>

<details>

<summary>Where are the lockpick / battering ram items defined?</summary>

Item names live in `Config.Items` (`Config.lua`). The item definitions themselves go in your inventory resource - see [inventory integration](/paid-resources/rcore_housing/integrations/inventory.md).

</details>

<details>

<summary>Why does `provides 'qb-apartments'` matter?</summary>

It lets `rcore_housing` act as a drop-in replacement for `qb-apartments`, `qbx-apartments`, and `qb-houses`. Resources that expect those names (e.g. `multicharacter`) see `rcore_housing` as their housing provider. See [providers integration](/paid-resources/rcore_housing/integrations/providers.md).

</details>

<details>

<summary>Can I rename the slash commands?</summary>

Yes. Edit `Config.Commands` in `config.lua` - see [main config](/paid-resources/rcore_housing/configuration/config.md).

</details>

<details>

<summary>What are freecam anticheat listen events?</summary>

Freecam anticheat listen events are triggered on the client when a player enters or exits freecam mode. These events are used to monitor and react to freecam state changes for anticheat purposes.

**Events:**

* `rcore_housing:client:playerEnteredFreecam` — Fired when a player enters freecam
* `rcore_housing:client:playerExitFreecam` — Fired when a player exits freecam

See [Client API - Events](/paid-resources/rcore_housing/api/client.md#events) for full documentation.

</details>

<details>

<summary>How do I listen to freecam events?</summary>

Use `AddEventHandler` to listen to either event:

```lua
-- Listen for player entering freecam
AddEventHandler("rcore_housing:client:playerEnteredFreecam", function(serverId)
    print("Player entered freecam: " .. serverId)
end)

-- Listen for player exiting freecam
AddEventHandler("rcore_housing:client:playerExitFreecam", function(serverId)
    print("Player exited freecam: " .. serverId)
end)
```

The `serverId` is a numeric identifier that uniquely identifies the player on the server.

</details>

<details>

<summary>Can I use freecam events to prevent freecam?</summary>

No. These events are listen-only and cannot prevent freecam from occurring. They are designed to monitor when freecam happens for logging and anticheat analysis purposes. To prevent freecam, you would need to implement server-side anticheat measures.

</details>
