> For the complete documentation index, see [llms.txt](https://grp-development.gitbook.io/solid-scripts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://grp-development.gitbook.io/solid-scripts/resources/solid-multichar/places.md).

# Places

The seven places where the characters wait, and how to add your own.

Players pick a place with the **Place** button. Their choice is saved on their own PC. Everyone else starts at `Config.Lobby.DefaultScene`.

#### The seven places

| Place               | `id`           | Area           | Time        | Needs                                 |
| ------------------- | -------------- | -------------- | ----------- | ------------------------------------- |
| Eclipse Penthouse   | `penthouse`    | Rockford Hills | Night       | `bob74_ipl`                           |
| Diamond Suite       | `casino_suite` | Vinewood Park  | Sunset      | `bob74_ipl`                           |
| Galileo Observatory | `observatory`  | Vinewood Hills | Twilight    | Nothing                               |
| Pink Cage Motel     | `motel`        | Alta           | Night       | Nothing                               |
| Del Perro Pier      | `pier`         | Del Perro      | Golden hour | Nothing                               |
| Private Yacht       | `yacht`        | Pacific Ocean  | Sunset      | `bob74_ipl`                           |
| LS Car Meet         | `car_meet`     | Cypress Flats  | Neon        | `bob74_ipl`, game build 2372 or newer |

{% hint style="info" %}
A place whose needs are missing is hidden from the menu. If the default place is hidden, the lineup uses the first place that can load.
{% endhint %}

* **Layouts:** every built-in place has a planned layout for one to five characters in `shared/places.lua`, with a camera for every character and for the whole group, checked against the real GTA collision
* **Time and weather:** each place sets its own time and weather for the player choosing, and `qb-weathersync` pauses until they spawn
* **Activities:** `activities` in each place lists five names from `Config.Activities`, the first one goes to slot 1

#### Add your own place

Add an entry to `Config.Scenes` with a new `id`. A place without a plan in `shared/places.lua` uses its five `spots`.

| Field                                                    | What it does                                                                   |
| -------------------------------------------------------- | ------------------------------------------------------------------------------ |
| `id`, `label`, `district`, `kind`, `mood`, `description` | The name and text in the Place menu                                            |
| `activities`                                             | Five activity names from `Config.Activities`                                   |
| `requires`                                               | Optional: a resource that must be started, for example `'bob74_ipl'`           |
| `minBuild`                                               | Optional: the lowest game build                                                |
| `clock`, `weather`                                       | Time `{ hour, minute }` and weather type                                       |
| `interior`                                               | A `vector3` inside the interior to load, `false` outdoors                      |
| `hidden`                                                 | A `vector4` where the real player waits, out of sight                          |
| `camera`                                                 | The camera on everyone: `pos`, `look`, `fov`                                   |
| `intro`                                                  | The establishing shot: `pos`, `look`, `fov`                                    |
| `light`                                                  | Front light on the characters: red, green, blue, range, strength               |
| `spots`                                                  | Five `vector4` spots, left to right as the camera sees them                    |
| `vehicles`                                               | Optional: parked cars `{ model, coords }`, frozen and only seen by that player |

* **How spots are used:** one character stands on spot 3, three on spots 2 to 4, five on all of them, two and four between the spots
* **New characters:** the look is made on the centre spot

{% hint style="warning" %}
Copy an existing place and change its values, so no field is missing.
{% endhint %}
