🛏️ 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
Configure the starter apartment
Open
nolag_properties/config.luaand edit theStarterApartmentblock:luaStarterApartment = { Enabled = true, DisableForceSale = true, DisableSell = true, DisableRent = true, DisableInactivity = true, DisableFurniture = true, BuildingId = 1, Address = "Los Santos", Name = "Starter Apartment", UniqueName = true, RentedInstead = true, InitialRentDays = 7, FutureRentPrice = 500, Interior = { type = "shell", name = "Container", }, Inventory = { slots = 10, weight = 10000, }, InteractablePoints = { ["OpenInventory"] = true, ["ClothingMenu"] = true, } }, - 2
Make sure the building exists
The starter apartment is assigned to a building (
BuildingId). If the building does not exist, the creation fails withBuilding does not exists.Create a building from the creation menu (
/createproperty) and setBuildingIdto that building's ID. - 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
Grant apartments to players
- New characters: call the export when the character is created:
luaexports.nolag_properties:AddStarterApartment(playerIdentifier)- Existing players (one-time backfill): run the command configured in
GiveStarterApartmentCommand(default/givestarterapartments).
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.