# Common Questions & Problems

## ERROR: "Failed to load model x"

Make sure the **K4MB1 starter shells** are installed. The link can be found in the README file.

* These shells are required by default
* You can change the shells in the config if you want to use different ones

## How to add properties

To add a new property, use the `/addproperty` command.

To use the command, you must have either:

* Admin permissions\
  or
* The real estate job

Make sure in the config that the real estate job name matches the job name used on your server.

You can also check the YouTube showcase video for a step-by-step example of how to add properties correctly.

## In-game photos not working

Refer to page **Setup**

## Adding new interiors

You can add new interiors by editing `Config.HouseInteriors`. To do this:

1. **Copy an existing shell**\
   Pick one of the existing shells in the config and copy it as a base for your new interior
2. **Set the model**\
   The `model` value should match the shell you want to use
3. **Label your interior**\
   The `label` can be any name you want. This is how the interior will appear in menus
4. **Define exits**\
   The `exits` property contains the doors and their coordinates:
   * `coords` is the offset position for the door
     * You can find these offsets using a tool like **FiveM Shell Offset Finder**
   * `label` for each exit can be anything you like

**Adding IPLs**\
IPLs can also be added, the config has an example of that

## Character not spawning inside interior when entering property

If your character does not spawn inside the interior, you need to adjust the exit offset coordinates for that specific interior.

* Open the interior's configuration in `Config.HouseInteriors`
* Modify the `coords` value of the exit to correctly align the spawn point inside the interior
* You can use **FiveM Shell Offset Finder** to get the correct offset coordinates

## Real estate job not working

Make sure the job name in `Config.Jobs --> realEstate` matches your server job name exactly.

## Adding support for 3rd party garage scripts

* Set `Config.UseCustomGarageMenu = true`&#x20;
* Modify the `OpenGarageMenu` function in `client/main_editable.lua`
* We cannot provide instructions on exactly how to modify this function. For that, you should contact the author of the garage script they are using

If you only want to use the script's default garages, it should work with most garage scripts without any changes

For JG Advanced Garage, replace the `OpenGarageMenu` function like this:

```lua
function OpenGarageMenu(propertyIndex) -- Only used if Config.UseCustomGarageMenu is true
    local ped = PlayerPedId()
    local vehicle = GetVehiclePedIsIn(ped, false)

    if DoesEntityExist(vehicle) then
        TriggerEvent("jg-advancedgarages:client:store-vehicle", 'tk_garage_'..propertyIndex, 'car')
    else
        local pC = GetEntityCoords(ped)
        local heading = GetEntityHeading(ped)
        local spawnCoords = vec4(pC.x, pC.y, pC.z, heading)

        TriggerEvent("jg-advancedgarages:client:open-garage", 'tk_garage_'..propertyIndex, 'car', spawnCoords)
    end
end
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tk-scripts.gitbook.io/docs/tk_housing/common-questions-and-problems.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
