For the complete documentation index, see llms.txt. This page is also available as Markdown.

Access and Permissions

Every property has an access list that maps players to roles and granular permissions.

👥 Built-in Roles

Role
When applied
Default permissions

Owner

Player who purchased the property.

All - including ownership transfer.

Tenant

Player renting the property.

Same as Owner for everyday actions, no ownership transfer.

Manager

Owner-appointed delegate.

All except ownership and tenancy.

Member

Roommate with regular access.

Doors, storage, wardrobe, garage, furniture editor.

Guest

One-off visitor.

Doors only.

Each role is a preset over the full permission map - owners can clone a preset and tweak individual permissions per member.

🔑 Keys

When Config.Keys.UseKeysOnItem = true, members and tenants additionally need a physical key item to use doors. See keys configuration for the keychain, lock-replacement, and master-key flow.

🧩 Permission Categories

The property management UI groups permissions into:

Category
Examples

Dashboard

View property dashboard, view financial summary.

Cameras

View live feed, manage placement.

Lights

Toggle interior lights.

Keys

Generate, revoke, hand out keys.

Access

Add or remove members, change roles.

Upgrades

Buy upgrades, install or uninstall them.

Doors

Lock and unlock interior doors.

Interactions

Use storage, wardrobe, fridge, safe, sink.

Bills

Pay rent and utilities, view ledger.

Furniture

Open /peditor, place new furniture, sell from stock.

Ownership

Transfer ownership, sell or list the property.

A member's role determines which categories are checked by default; the owner can override individual toggles from /housing → property → Access.

📜 Permission Keys

Every permission is identified by a key string of the form category:resource:action. These are the keys used by the HasPermission export and the PERMISSIONS constant (e.g. PERMISSIONS.PROPERTY_SECURITY_MANAGE resolves to property:security:manage).

Property permissions

Constant
Value

PERMISSIONS.PROPERTY_DASHBOARD_VIEW

property:dashboard:view

PERMISSIONS.PROPERTY_CAMERAS_VIEW

property:cameras:view

PERMISSIONS.PROPERTY_CAMERAS_MANAGE

property:cameras:manage

PERMISSIONS.PROPERTY_CAMERAS_DELETE

property:cameras:delete

PERMISSIONS.PROPERTY_LIGHTS_VIEW

property:lights:view

PERMISSIONS.PROPERTY_LIGHTS_MANAGE

property:lights:manage

PERMISSIONS.PROPERTY_KEYS_VIEW

property:keys:view

PERMISSIONS.PROPERTY_KEYS_MANAGE

property:keys:manage

PERMISSIONS.PROPERTY_ACCESS_VIEW

property:access:view

PERMISSIONS.PROPERTY_ACCESS_MANAGE

property:access:manage

PERMISSIONS.PROPERTY_UPGRADES_VIEW

property:upgrades:view

PERMISSIONS.PROPERTY_UPGRADES_BUY

property:upgrades:buy

PERMISSIONS.PROPERTY_DOORS_VIEW

property:doors:view

PERMISSIONS.PROPERTY_DOORS_MANAGE

property:doors:manage

PERMISSIONS.PROPERTY_INTERACTIONS_VIEW

property:interactions:view

PERMISSIONS.PROPERTY_INTERACTIONS_MANAGE

property:interactions:manage

PERMISSIONS.PROPERTY_BILLS_VIEW

property:bills:view

PERMISSIONS.PROPERTY_BILLS_PAY

property:bills:pay

PERMISSIONS.PROPERTY_FURNITURE_STORAGE_VIEW

property:furniture_storage:view

PERMISSIONS.PROPERTY_FURNITURE_STORAGE_MANAGE

property:furniture_storage:manage

PERMISSIONS.PROPERTY_FURNITURE_EDITOR_VIEW

property:furniture_editor:view

PERMISSIONS.PROPERTY_FURNITURE_EDITOR_USE

property:furniture_editor:use

PERMISSIONS.PROPERTY_FURNITURE_ORDER_VIEW

property:furniture_order:view

PERMISSIONS.PROPERTY_FURNITURE_ORDER_CREATE

property:furniture_order:create

PERMISSIONS.PROPERTY_OWNERSHIP_RENT

property:ownership:rent

PERMISSIONS.PROPERTY_OWNERSHIP_SELL

property:ownership:sell

PERMISSIONS.PROPERTY_OWNERSHIP_TRANSFER

property:ownership:transfer

PERMISSIONS.PROPERTY_SECURITY_VIEW

property:security:view

PERMISSIONS.PROPERTY_SECURITY_MANAGE

property:security:manage

Zone permissions

Constant
Value

PERMISSIONS.ZONE_STORAGE_ACCESS

zones:storage:access

PERMISSIONS.ZONE_WARDROBE_ACCESS

zones:wardrobe:access

PERMISSIONS.ZONE_GARAGE_ACCESS

zones:garage:access

PERMISSIONS.ZONE_MANAGEMENT_ACCESS

zones:management:access

PERMISSIONS.ZONE_FURNITURE_DELIVERY_INSIDE_ACCESS

zones:furniture_delivery_inside:access

PERMISSIONS.ZONE_FURNITURE_DELIVERY_OUTSIDE_ACCESS

zones:furniture_delivery_outside:access

🚪 Zone-level Permissions

Each interaction zone (STORAGE, WARDROBE, GARAGE, MANAGEMENT, DELIVERY) checks the relevant permission category before opening. A guest with Doors only cannot open the property stash, for example.

🔁 Tenant Lifecycle

When rent ends:

  • The tenant's role is removed automatically.

  • Their keys are removed from inventory if Config.Keys.RemoveOnRentEnd = true.

  • They lose access on next zone check.

When ownership transfers, the old owner is fully removed from the access list and the new owner inherits a clean slate.

Last updated