# Installation
Source: https://docs.zydrec.com/installation
## Dependency Required
Remember to install **zydrec-mapdata** if you want functional doortuning and door audio :)
Download the assets from your [CFX Portal](https://portal.cfx.re/assets/granted-assets).
It's important you download **both** the Map data & the product.
Extract the assets into your server resources folder.
Ensure the assets in your server.cfg and start the server.
# Additional steps
If you are only streaming a single `doortuning.ymt` file after installation, you can ignore the steps below.
It is best practice to stream **one** `doortuning.ymt` file on your FiveM server to manage all custom door settings. This file replaces a default game meta file, so streaming multiple `doortuning.ymt` files can cause conflicts. All door, garage, and gate modifications must be merged into a single file within one resource.
Each resource’s documentation should include a *doortuning* section with detailed instructions. For example: [zydrec-littleseoul/doortuning](https://docs.zydrec.com/zydrec-littleseoul/doortuning).
# All done!
You're finished installing the assets. If you have any questions or need help installing the assets, visit our [discord](https://discord.gg/zhjdFVVAWG).
# Doortuning
Source: https://docs.zydrec.com/selfstorage/doortuning
In order for the doors & gates to behave correctly, you would need to install a `doortuning.ymt` file. The file can be found in `zydrec-mapdata` resource. If you're only streaming **one** `doortuning.ymt` you can ignore the steps below.
Add the following entry to your doortuning.ymt file.
```
-
ffselfstoragegarage
StdDoorOpenBothDir
```
At the end of the file, add the following entry:
```
-
ff_prop_garage_door
ffselfstoragegarage
```
Save the file & you're done.
# Vanilla Files
Source: https://docs.zydrec.com/selfstorage/vanilla-files
Vanilla files will not be escrowed by FiveM asset escrow to allow edits for compatibility reasons.
If you do happen to find an escrowed vanilla file please contact us via the [discord](https://discord.gg/zhjdFVVAWG).
This resource modifies the following vanilla files.
### Collision
```
hi@lr_sc1_00b_0.ybn
lr_sc1_00b_0.ybn
```
### YMAPs
```
lr_sc1_00b_strm_0.ymap
lr_sc1_occl_02.ymap
```
### YDR
```
sc1_00b_det_01.ydr
sc1_00b_det_01a.ydr
sc1_00b_lockups.ydr
sc1_00b_lockupscorner.ydr
```
### Scenarios (YMT)
```
south_los_santos.ymt
```
# Animations
Source: https://docs.zydrec.com/zydrec-gemsjewelry/animations
# zydrec-robbery-lib
## Installation
Keep the resource folder name as:
```text theme={null}
zydrec-robbery-lib
```
Renaming the resource is not supported and may break exports, events, or external integrations.
## Configuration
Configuration is located in:
```lua theme={null}
config/zydrec-gemsjewelry.lua
```
Available settings:
```lua theme={null}
ServerConfig.Enabled
ServerConfig.SmashDistance
ServerConfig.Debug
ServerConfig.CheckPlayerState
ServerConfig.AllowedWeapons
ServerConfig.Locations
```
When `ServerConfig.Enabled = false`, the module does not register exports, events, or cabinet state.
Set:
```lua theme={null}
ServerConfig.AllowedWeapons = false
```
to disable weapon validation entirely.
Set:
```lua theme={null}
ServerConfig.CheckPlayerState = false
```
to disable dead, laststand, handcuffed and escorted state validation.
## Usage
Example smash flow:
```lua theme={null}
local cabinetId = exports['zydrec-robbery-lib']:getNearestCabinetId(source)
if not cabinetId then return end
if not exports['zydrec-robbery-lib']:canSmashCabinet(source, cabinetId) then
return
end
local success = exports['zydrec-robbery-lib']:smashCabinet(source, cabinetId, true)
if not success then
return
end
```
## Exports
```lua theme={null}
getNearestCabinetId(source)
getNearestCabinetIdFromCoords(coords, maxDistance)
isCabinetSmashed(cabinetId)
canSmashCabinet(source, cabinetId)
smashCabinet(source, cabinetId, playAnimation)
smashNearestCabinet(source, playAnimation)
resetCabinet(cabinetId)
resetCabinetsInLocation(locationRef)
resetAllCabinets()
shutters(locationRef, action)
isShutterOpen(locationRef)
```
### getNearestCabinetId
Returns the nearest cabinet within `10.0` units.
Returns:
```lua theme={null}
cabinetId | nil
```
### getNearestCabinetIdFromCoords
Accepts:
* `vector3`
* `vector4`
* Table containing `x`, `y`, and `z`
`maxDistance` defaults to `10.0`.
Returns:
```lua theme={null}
cabinetId | nil
```
### canSmashCabinet
Returns `true` when the player can smash the specified cabinet.
Checks:
* Valid player ped
* Valid cabinet
* Cabinet is intact
* Player state validation (if enabled)
* Distance validation
* Weapon validation (if enabled)
### smashCabinet
Returns:
```lua theme={null}
true | false
```
When `playAnimation` is enabled, the server waits for the client animation flow to complete before returning a result.
### smashNearestCabinet
Returns:
```lua theme={null}
cabinetId | nil
```
### resetCabinetsInLocation
Accepts either a configured location name or location index.
Examples:
```lua theme={null}
resetCabinetsInLocation('Paleto')
resetCabinetsInLocation(3)
resetCabinetsInLocation('3')
```
## Shutters
Shutters are controlled server-side and spawned locally on clients from `ServerConfig.Locations`. Each location can define its own `shutters` block next to its cabinet definitions.
Example:
```lua theme={null}
exports['zydrec-robbery-lib']:shutters('paleto', 'closed')
exports['zydrec-robbery-lib']:shutters('paleto', 'open')
exports['zydrec-robbery-lib']:shutters('all', 'toggle')
```
The `shutters` export accepts `open`, `closed` and `toggle`. `close` is accepted as an alias for `closed`.
`isShutterOpen(locationRef)` returns whether every shutter part in the requested location is open. `ServerConfig.Locations[].shutters.parts[].coords` is a direct `vec4` world coordinate, including heading.
Set `ServerConfig.Locations[].shutters.enabled = false` to disable shutter state and visuals for one configured location.
Set `ServerConfig.Locations[].shutters.defaultOpen` to control the initial shutter state for one configured location.
The configured jewelry locations treat `coords` as the closed position; open height, animation timing and resync range are hardcoded in the shutter module.
`zydrec_gj_prop_shutter_02` is hardcoded as a temporary spawned part so it despawns while open and does not clip through the roof.
## Debug
Enable debug rendering with:
```lua theme={null}
ServerConfig.Debug = true
```
When enabled, cabinet labels and prop outlines are rendered for development and testing.
# Customizable assets
Source: https://docs.zydrec.com/zydrec-gemsjewelry/customizable-assets
All the textures (.ytd files) will always be available for customization.
Vanilla files will **not** be escrowed (locked) meaning that they are customizable.
| ASSET NAME | LOCATION |
| --------------------------- | ------------- |
| `zydrec_gj_prop_3dlogo.ydr` | `stream/ydr/` |
Found an asset that you'd like to be customizable? Notify us in the [discord](https://discord.gg/zhjdFVVAWG) and we'll help you out.
# Doortuning
Source: https://docs.zydrec.com/zydrec-gemsjewelry/doortuning
In order for the doors & gates to behave correctly, you would need to install a `doortuning.ymt` file. The file can be found in `zydrec-mapdata` resource. If you're only streaming **one** `doortuning.ymt` you can ignore the steps below.
This resource uses vanilla presets, so you don’t need to install a tuning entry, only a **ModelToTuneMapping** entry.
Paste the following entries to the `doortuning.ymt` file (usually at the bottom).
```lua theme={null}
-
zydrec_gj_prop_entrance_door
DefaultStandard
-
zydrec_gj_prop_officedoor
DefaultStandard
```
All done.
# Locations
Source: https://docs.zydrec.com/zydrec-gemsjewelry/locations
Gem's Jewelry has multiple locations around San Andreas.
| IPL/YMAP | Location | Coordinates |
| :----------------------------: | :------: | :--------------------------------: |
| `zydrec_gj_int_vinewood_milo_` | Vinewood | `231.34581, 370.436157, 106.85556` |
| IPL/YMAP | Location | Coordinates |
| :------------------------------ | :-------- | :------------------------------- |
| `zydrec_gj_int_grapeseed_milo_` | Grapeseed | `1652.153, 4847.899, 42.7178154` |
| IPL/YMAP | Location | Coordinates |
| :--------------------------- | :--------- | :---------------------------------- |
| `zydrec_gj_int_paleto_milo_` | Paleto Bay | `-270.8743, 6237.56934, 32.2275734` |
# Configuring locations
Inside the resource, you’ll find the following structure:
* `stream/locations/` → Contains a folder for each location
# How to remove a location
If you only want to keep specific locations, you can remove the others manually.
## Example: Keep Vinewood location only
Go to `stream/locations/` and delete all folders except Vinewood. In this case, delete: Grapeseed & Paleto Bay.
Done! Now only the Vinewood location will remain in your resource.
# Vanilla files
Source: https://docs.zydrec.com/zydrec-gemsjewelry/vanilla-files
Vanilla files will **not** be escrowed (locked) to allow edits for compatibility reasons. If you do happen to find an escrowed vanilla file please contact us via the [discord](https://discord.gg/zhjdFVVAWG).
This resource includes multiple locations and therefore modifies several vanilla files. If you want to remove specific locations, you can do so by following this [guide](/zydrec-gemsjewelry/locations).
### Collision
```text theme={null}
hi@hw1_01_0.ybn
hw1_01_0.ybn
cs1_05_3.ybn
hi@cs1_05_2.ybn
cs2_01_5.ybn
hi@cs2_01_8.ybn
```
### YMAPs
```text theme={null}
hei_hw1_occl_01.ymap
cs1_occl_09.ymap
hei_cs1_05_strm_1.ymap
cs2_occl_02.ymap
```
### YDR & YDD
```text theme={null}
hw1_01_hillsidec.ydr
hw1_01_hillsidedecalsb.ydr
hw1_01_hillsidegnd.ydr
cs1_05_carlot_shops.ydr
cs1_05_carlot_shops_dec.ydr
cs1_05_glue03.ydr
cs2_01_ground.ydr
cs2_01_markets2_obj2a.ydr
cs2_01_markets4.ydr
cs2_01_shop_dec3.ydr
cs1_05_slod1_children.ydd
cs2_01_slod1_children.ydd
```
# Customizable assets
Source: https://docs.zydrec.com/zydrec-littleseoul/customizable-assets
All the textures (.ytd files) will always be available for customization.
The following files are not escrowed by the FiveM Asset Escrow system allowing you to edit the files however you'd like.
`zydrec_kt_apt_prop_apartment_txt.ydr`
`zydrec_kt_apt_prop_apartment_logo.ydr`
`zydrec_kt_apt_prop_sigelevator.ydr`, `zydrec_kt_apt_prop_sigstairs.ydr` and `zydrec_kt_apt_prop_ctsigns.ydr`
This page is still being worked on. Some editable assets are not mentioned here.
# Doortuning
Source: https://docs.zydrec.com/zydrec-littleseoul/doortuning
In order for the doors & gates to behave correctly, you would need to install a `doortuning.ymt` file. The file can be found in `zydrec-mapdata` resource. If you're only streaming **one** `doortuning.ymt` you can ignore the steps below.
This resource uses vanilla presets, so you don’t need to install a tuning entry, only a **ModelToTuneMapping** entry.
Paste the following entries to the `doortuning.ymt` file (usually at the bottom).
```lua theme={null}
-
zydrec_kt_apt_prop_roomdoor
DefaultStandard
-
zydrec_kt_apt_prop_roomdoorb
DefaultStandard
-
zydrec_kt_apt_prop_bdoor
DefaultStandard
-
zydrec_kt_apt_prop_elevslide
SlidingHorizontalExtendedRange
-
zydrec_kt_apt_prop_bdoor
DefaultStandard
```
All done.
# Entitysets
Source: https://docs.zydrec.com/zydrec-littleseoul/entitysets
# Room entitysets
Each floor can be customized to have one set of room entitysets. For example, you can have floor 2 set as 'empty' and floor 3 set as 'basic'. You'll find the preview of each entityset below.
## Empty
The 'empty' entityset is an apartment with no furniture or appliances, just the basic shell, letting the players choose what each of their rooms should look like.
## Basic (recommended)
The basic entityset is an apartment with room dividers, ready to move in and furnish.
## Full
The 'full' entityset is a fully furnished apartment, ready to live in.
## How to configure
The resource comes with the following config file 'config.lua'. This allows you to configure each room's entityset based on floors. Below is the default 'config.lua' that comes with the resource.
```lua theme={null}
Config = {}
-- Set to true to see debug prints in F8. Default is false.
Config.Debug = false
Config.FloorModes = {
[1] = 'full', -- floor 1 is configured to have the rooms set as 'full'
[2] = 'full',
[3] = 'full',
[4] = 'full',
[5] = 'basic', -- floor 5 is configured to have the rooms set as 'basic'
[6] = 'basic',
[7] = 'basic',
[8] = 'empty', -- floor 8 is configured to have the rooms set as 'empty'
[9] = 'empty',
[10] = 'empty',
}
return Config
```
## Support
If you have any questions or need help, visit our [discord](https://discord.gg/zhjdFVVAWG).
# Vanilla files
Source: https://docs.zydrec.com/zydrec-littleseoulvanilla-files
Vanilla files will not be escrowed by FiveM asset escrow to allow edits for compatibility reasons.
If you do happen to find an escrowed vanilla file please contact us via the [discord](https://discord.gg/zhjdFVVAWG).
This resource modifies the following vanilla files.
### Collision
```
hi@kt1_06_0.ybn
kt1_06_0.ybn
hei_kt1_rd_5.ybn
hei_kt1_rd_7.ybn
ma@kt1_06_0.ybn
```
### YMAPs
```
hei_kt1_06_strm_0.ymap
hei_kt1_rd_long_0.ymap
hei_kt1_rd_strm_0.ymap
```
### YDR & YDD
```
kt1_06_consitefizz01_lod.ydr
kt1_06_consitehedge.ydr
kt1_06_decals02.ydr
kt1_06_grd01.ydr
kt1_06_slod1_children.ydd
kt1_lod_1_2_5_6_17_children.ydd
kt1_props_combo0116_slod_children.ydd
```
### Scenarios (YMT)
```
little_seoul_park.ymt
```
# Billboards
Source: https://docs.zydrec.com/zydrec-starlitemotel/billboards
This asset delivers custom billboards that you can easily remove if you wish to do so.
# How to customize the billboards
You can easily customize the billboards by editing the following texture dictionary (.ytd).
`zydrec-starlitemotel\stream\billboard_advertisement\zydrec_sm_ext_txd_billboard.ytd`
# how to remove the custom billboards
Simply delete the follow `billboard_advertisement` located in `starlitemotel\stream` and you'll be good to go.
# Customizable assets
Source: https://docs.zydrec.com/zydrec-starlitemotel/customizable-assets
This resource is fully open source therefore every asset is customizable.
# Doors
Source: https://docs.zydrec.com/zydrec-starlitemotel/doors
There are a total of 30 doors, This is exported using the [Tstudio prop collector](https://shop.tstudio3d.com/package/7373247). You may find it useful.
```json theme={null}
{
"name": "starlitemotel",
"interiorId": 0,
"doors": [
{
"modelName": "zydrec_sm_prop_door",
"heading": 59,
"modelHash": 1474746819,
"coords": {
"x": 949.1641,
"z": 79.4339,
"y": -201.9893
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 59,
"modelHash": 1474746819,
"coords": {
"x": 949.1641,
"z": 76.3763,
"y": -201.9893
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 59,
"modelHash": 1474746819,
"coords": {
"x": 949.1641,
"z": 73.3198,
"y": -201.9893
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 59,
"modelHash": 1474746819,
"coords": {
"x": 952.2884,
"z": 79.4339,
"y": -196.79
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 59,
"modelHash": 1474746819,
"coords": {
"x": 952.2884,
"z": 76.3763,
"y": -196.79
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 59,
"modelHash": 1474746819,
"coords": {
"x": 952.2884,
"z": 73.3198,
"y": -196.79
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 963.7816,
"z": 79.4339,
"y": -213.5072
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 963.7816,
"z": 76.3763,
"y": -213.5072
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 963.7816,
"z": 73.3198,
"y": -213.5072
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 966.9059,
"z": 79.4339,
"y": -208.308
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 966.9059,
"z": 76.3763,
"y": -208.308
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 966.9059,
"z": 73.3198,
"y": -208.308
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 970.0302,
"z": 79.4339,
"y": -203.1087
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 970.0302,
"z": 76.3763,
"y": -203.1087
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 973.1544,
"z": 76.3763,
"y": -197.9094
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 973.1544,
"z": 73.3198,
"y": -197.9094
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 149,
"modelHash": 1474746819,
"coords": {
"x": 960.0748,
"z": 79.4339,
"y": -217.1438
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 149,
"modelHash": 1474746819,
"coords": {
"x": 960.0748,
"z": 76.3763,
"y": -217.1438
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 149,
"modelHash": 1474746819,
"coords": {
"x": 960.0748,
"z": 73.3198,
"y": -217.1438
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 149,
"modelHash": 1474746819,
"coords": {
"x": 954.8755,
"z": 76.3763,
"y": -214.0195
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 149,
"modelHash": 1474746819,
"coords": {
"x": 954.8755,
"z": 73.3198,
"y": -214.0195
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 149,
"modelHash": 1474746819,
"coords": {
"x": 954.8755,
"z": 79.4339,
"y": -214.0195
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 149,
"modelHash": 1474746819,
"coords": {
"x": 949.6762,
"z": 79.4339,
"y": -210.8952
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 149,
"modelHash": 1474746819,
"coords": {
"x": 949.6762,
"z": 76.3763,
"y": -210.8952
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 149,
"modelHash": 1474746819,
"coords": {
"x": 949.6762,
"z": 73.3198,
"y": -210.8952
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 59,
"modelHash": 1474746819,
"coords": {
"x": 946.0399,
"z": 79.4339,
"y": -207.1886
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 59,
"modelHash": 1474746819,
"coords": {
"x": 946.0399,
"z": 76.3763,
"y": -207.1886
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 59,
"modelHash": 1474746819,
"coords": {
"x": 946.0399,
"z": 73.3198,
"y": -207.1886
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 970.0302,
"z": 73.3198,
"y": -203.1087
}
},
{
"modelName": "zydrec_sm_prop_door",
"heading": 239,
"modelHash": 1474746819,
"coords": {
"x": 973.1544,
"z": 79.4339,
"y": -197.9094
}
}
]
}
```
# Doortuning
Source: https://docs.zydrec.com/zydrec-starlitemotel/doortuning
In order for the doors & gates to behave correctly, you would need to install a `doortuning.ymt` file. The file can be found in `zydrec-mapdata` resource. If you're only streaming **one** `doortuning.ymt` you can ignore the steps below.
This resource uses vanilla presets, so you don’t need to install a tuning entry, only a **ModelToTuneMapping** entry.
Paste the following entries to the `doortuning.ymt` file (usually at the bottom).
```lua theme={null}
-
zydrec_sm_prop_door
DefaultStandard
```
All done.
# Vanilla Files
Source: https://docs.zydrec.com/zydrec-starlitemotel/vanilla-files
Vanilla files will **not** be escrowed (locked) to allow edits for compatibility reasons. If you do happen to find an escrowed vanilla file please contact us via the [discord](https://discord.gg/zhjdFVVAWG).
### Collision
```text theme={null}
hi@hei_hw1_13_0.ybn
hei_hw1_13_0.ybn
```
### YMAPs
```text theme={null}
hei_hw1_13.ymap
hei_hw1_13_strm_0.ymap
hei_hw1_lod.ymap
hei_hw1_occl_01.ymap
hei_hw1_rd.ymap
hei_hw1_rd_strm_6.ymap
m25_2_distlodlights_medium035.ymap
m25_2_distlodlights_small015.ymap
m25_2_lodlights_medium035.ymap
m25_2_lodlights_small015.ymap
vw_distlodlights_medium035.ymap
vw_distlodlights_small060.ymap
vw_lodlights_medium035.ymap
vw_lodlights_small060.ymap
```
### YDR & YDD
```text theme={null}
hw1_13_props_combo_slod_children.ydd
hw1_13_slod1b_children.ydd
hw1_lod_11_12_13_19_children.ydd
hw1_lod_slod4_children.ydd
hw1_13_ground.ydr
hw1_13_ground_a1.ydr
hw1_13_motel.ydr
hw1_13_res2.ydr
hw1_13_wires.ydr
hw1_lod_slod4.ydr
```
# Wall Colors
Source: https://docs.zydrec.com/zydrec-starlitemotel/wall-colors
This asset does **not** come with a script to change the wall colors but it does support it which means you can easily implement your own script. Below you'll find all the information necessary to implement your own script.
Wall colors are controlled through an interior entityset `wall_tint` paired with a tint palette texture. Setting a color index tells the game which row of the palette to sample.
`wall_tint` is already active by default in the interiors ymap, so you generally **don't need to call** `ActivateInteriorEntitySet`.
## Colors
| Index | Preview | Hex |
| :---- | :------ | :-------- |
| 0 |
| `#f1f1f1` |
| 1 | | `#dfd7cd` |
| 2 | | `#e1be8e` |
| 3 | | `#ebab69` |
| 4 | | `#7e9ab1` |
| 5 | | `#736dd2` |
| 6 | | `#38356e` |
| 7 | | `#a85e53` |
| 8 | | `#f13b59` |
| 9 | | `#8e4d58` |
| 10 | | `#96a08a` |
| 11 | | `#646f69` |
| 12 | | `#473c5b` |
| 13 | | `#d5a6de` |
| 14 | | `#6b6a6c` |
| 15 | | `#343435` |
| 16 | | `#c1cde0` |
| 17 | | `#023020` |
| 18 | | `#4fede5` |
| 19 | | `#62c1e5` |
| 20 | | `#ff7b7b` |
| 21 | | `#000000` |
| 22 | | `#ffee8c` |
| 23 | | `#c0c0c0` |
| 24 | | `#012d21` |
| 25 | | `#e190b7` |
| 26 | | `#a2e783` |
| 27 | | `#49862e` |
| 28 | | `#5e0606` |
| 29 | | `#653e21` |
| 30 | | `#d5f3c6` |
| 31 | | `#ae4bff` |
## interior locations
| Location (x, y, z) | IPL (.ymap) |
| ---------------------------------- | ---------------------------------------------------- |
| 976.092896, -201.667053, 73.718597 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_ |
| 972.968628, -206.866302, 73.718597 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_1 |
| 969.844360, -212.065567, 73.718597 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_2 |
| 966.720032, -217.264832, 73.718597 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_3 |
| 956.317139, -220.082275, 73.718597 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_4 |
| 951.117920, -216.957993, 73.718597 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_5 |
| 945.918579, -213.833694, 73.718597 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_6 |
| 943.101379, -203.430939, 73.718597 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_7 |
| 946.225647, -198.231659, 73.718597 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_8 |
| 949.349915, -193.032410, 73.718597 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_9 |
| 976.092896, -201.667053, 76.775070 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_10 |
| 972.968628, -206.866302, 76.775070 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_11 |
| 969.844360, -212.065567, 76.775070 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_12 |
| 966.720032, -217.264832, 76.775070 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_13 |
| 956.317139, -220.082275, 76.775070 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_14 |
| 951.117920, -216.957993, 76.775070 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_15 |
| 945.918579, -213.833694, 76.775070 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_16 |
| 943.101379, -203.430939, 76.775070 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_17 |
| 946.225647, -198.231659, 76.775070 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_18 |
| 949.349915, -193.032410, 76.775101 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_19 |
| 976.092896, -201.667053, 79.832687 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_20 |
| 972.968628, -206.866302, 79.832687 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_21 |
| 969.844360, -212.065567, 79.832687 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_22 |
| 966.720032, -217.264832, 79.832687 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_23 |
| 956.317139, -220.082275, 79.832687 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_24 |
| 951.117920, -216.957993, 79.832687 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_25 |
| 945.918579, -213.833694, 79.832687 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_26 |
| 943.101379, -203.430939, 79.832687 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_27 |
| 946.225647, -198.231659, 79.832687 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_28 |
| 949.349915, -193.032410, 79.832703 | zydrec\_sm\_int\_interior\_zydrec\_sm\_int\_milo\_29 |
## preview