🛏️ Starter Apartments
They can be granted in two ways:
- Automatically: call the
AddStarterApartmentexport during character creation. - Manually (one-time backfill): use the
/givestarterapartmentscommand (or your custom command inGiveStarterApartmentCommand).
✅ Setup
- 1
- 2
- 3
Ensure the interior exists
The
Interiorblock must match a valid shell or ipl:- Shells: enable the correct shell pack in
Config.Shells(example:K4mb1StarterShells = true).
The defaultname = "Container"is fromcustom/shells/StarterShells.lua. - IPLs: the name must exist in
nolag_properties/ipls.lua.
If the name is wrong or the pack is disabled, you will see
Invalid shell typeorInvalid ipl type. - Shells: enable the correct shell pack in
- 4
Config reference
Key options and what they do:
Enabled: turns the system on/off.BuildingId: the building the apartment is attached to (must exist).Interior.type:shelloripl.Interior.name: must match a shell/ipl definition.Name+UniqueName: allows automatic numbering when multiple players receive the same name.RentedInstead: iftrue, the apartment is rented (owned byDefaultBuyerType/DefaultBuyerIdentifier) and rented to the player for free days.InitialRentDays: free rent period.FutureRentPrice: price after the free period ends.Inventory: starter apartment stash size.InteractablePoints: which points are available inside (inventory, clothing, etc).DisableSell,DisableRent,DisableForceSale,DisableInactivity,DisableFurniture: restrict starter-apartment actions.
Common issues
Set `StarterApartment.Enabled = true` and restart the resource.
The building ID is invalid. Create or select a building in `/allproperties` and update `BuildingId`.
The interior name doesn't exist or the pack isn't enabled. Use a name from `custom/shells/*.lua` or `ipls.lua` and enable the correct pack.
The script blocks duplicates. Remove the old starter apartment before re-granting.
These are intentionally disabled by the `Disable*` flags in `StarterApartment`. Toggle them if you want those features.
Ensure `RentedInstead = true`, `FutureRentPrice` is set, and the `ProcessPropertiesCron` scheduler is running.