Configuration
This document describes how to configure and extend the Interior Manager using the config.lua
file.
🔧 Global Configuration
Config.menuCommand
(string)
- The command used to open the Interior Manager menu in-game.
- Default:
'interiormanager'
Config.acePermissionForAdmin
(string)
- The ACE permission required to access admin-only interiors or controls.
- Default:
'entitysetloader.access'
📂 Interior Folders
Config.InteriorFolders
Organize interiors into named folders for easier navigation in the UI.
Structure:
Config.InteriorFolders = {
{
folder = "Sandy Houses", -- Display name of the folder
interiors = { ... } -- List of interiors (see below)
}
}
Each interiors
array contains interior definitions.
🏠 Interior Structure
Each interior entry can have the following fields:
Required Fields:
id
(string) – A unique identifier for the interiorname
(string) – Display name shown in the UIcoords
(vector3) – The location for teleportation or reference
Optional Fields:
adminOnly
(boolean) – If true, only users with ACE permission can access itdefaults.sets
(string[]) – Sets that are enabled by default on loadentitySets
(object[]) – A list of toggleable entity sets (see below)ipls
(object[]) – A list of IPLs related to the interior (for loading/removing props or structures)presets
(object[]) – Preset configurations to quickly switch between styles or states
You must define at least one of entitySets
or ipls
.
Example Entry:
{
id = "prompts_sandy_house1",
name = "House 1",
coords = vec3(1812.367, 3762.021, 34.21988),
adminOnly = false,
defaults = {
sets = { "wallframe2", "windowframe1" }
},
entitySets = {
{ label = "Wall Frame 2", set = "wallframe2" },
{ label = "Window Frame 1", set = "windowframe1" },
},
presets = {
{
label = "Clean",
sets = { "wallframe2", "windowframe1" },
ipls = {}
}
}
}
🧩 Entity Sets
entitySets
An array of named toggleable entity sets available in the interior. Used to dynamically enable or disable objects in the game world.
Example:
{ label = "Kitchen Light", set = "kitchenlight" }
🌐 IPLs
ipls
A list of IPL props or features to enable when the preset is loaded. You can include multiple IPLs per preset.
Example:
{ label = "Wedding Venue", name = "p_prompt_sandy_cityhall_wedding_venue" }
These IPLs are used for large structural or prop changes such as chairs, coffins, or entire venues.
🎛️ Presets
presets
Preconfigured selections of entity sets and IPLs that users can toggle with one click.
Each preset should have:
label
(string): Name of the preset (e.g., "Clean", "Lights Off")sets
(string[]): Entity sets to enableipls
(string[]): IPLs to load
Entity sets and IPLs not listed in a preset will be disabled when that preset is applied.
🛑 Admin-Only Interiors
adminOnly
= true
Restrict access to specific interiors via ACE permissions.
Players without the correct ACE will not see or access these interiors in the menu.
🏛️ Example Admin-Only Setup
{
id = "prompts_sandy_cityhall",
name = "Sandy Cityhall Interior",
coords = vec3(1753.6223, 3804.6450, 35.4474),
adminOnly = true,
ipls = {
{ label = "Wedding Chairs", name = "p_prompt_sandy_cityhall_wedding_chairs" },
...
},
presets = {
{
label = "Wedding Ceremony",
sets = {},
ipls = {
"p_prompt_sandy_cityhall_wedding_chairs",
"p_prompt_sandy_cityhall_wedding_venue"
}
}
}
}
💡 Notes
sets
are primarily used for entitySet toggling.ipls
are useful for complex map modifications.- Every interior can have a mix of both or just one type.
- Ensure all IDs are unique and use vec3 properly formatted for locations.
✅ Example Folder Setup
Config.InteriorFolders = {
{
folder = "Sandy Houses",
interiors = {
-- See individual interior entries above
}
}
}
🗂 Config.Interiors
This section is used for globally defined interiors that are not part of a folder. They behave the same way but are shown independently in the UI.
Config.Interiors = {
{
id = "gcom_logistics",
name = "Logistics Interior",
coords = vec3(1885.3466, 3147.4792, 44.6878),
adminOnly = true,
entitySets = {
{ label = "Garage with Storage", set = "gcom_lc_garage_2" }
}
}
}