Last updated
Last updated
If you use an inventory other than ox, qbcore,, you can integrate the Stash Opening function suitable for your own inventory into this function.
You can use your own clothing system by integrating it into this function. Below is an example. No settings are required for qb or esx default scripts.
0R Apartment Configurations
function Utils.Functions.CustomInventory.OpenInventory(type, id, options)
type = type or "stash"
local maxWeight = options.maxWeight
local slots = options.slots
-- #
end
function Utils.Functions.CustomInventory.RegisterStash(stashId, options)
local maxWeight = Config.InteriorHotelRoom.stash.maxWeight
local slots = Config.InteriorHotelRoom.stash.slots
local coords = Config.InteriorHotelRoom.coords.stash
-- #
end
-- Cloth menu event name for room wardrobe
Config.ClothMenuEventName = nil
--[[ Configuration settings ]]
Config = {}
---Locale setting for language localization.
Config.Locale = "en"
---@type EventName | nil -- Cloth menu event name for room wardrobe
Config.ClothMenuEventName = nil
-- Can the rooms be entered without permission?
Config.UnauthorizedEntryIntoRooms = {
--[[ Please Check client/utils:Utils.Functions.LockPickGame() ]]
active = false,
item = "lockpick",
canUseStash = false,
}
--[[ The maximum number of rooms a player can get in an apartment ]]
Config.MaxRoomLimitPerPlayer = 1
--[[ max guest that can be added to the room ]]
Config.MaxGuestCanBeAddedToRoom = 5
--[[ Apartment Start | Not Support Mlo Apart ! ]]
Config.ApartmentStarting = true
--[[ Rooms can be purchased or just rented. ]]
Config.CanRoomsBePurchased = true
--[[ No Elevator Feature]]
Config.NoElevator = false
--[[ MetaKeys ]]
Config.MetaKeys = true
--[[ If qb-inventory is used and the version is higher than 2.0.0 then enable this setting, otherwise leave it disabled ]]
Config.NewInventoryQB = true
--[[ If you are using a starter apartment and there is no room available, it will start here. ]]
Config.NewPlayerStartCoords = vec3(0, 0, 0)
--[[ If you are using liberty city make this true. ]]
Config.LibertyCity = false
Config.OpenMenuWithTablet = {
active = true,
itemName = 'tablet',
}
--[[ Apartment Configs ]]
--[[ Commands ]]
Config.Commands = {
-- [[ To Open the panel. ]]
openPanel = "apartment", -- or nil
--[[ Extend the rental in your current room. ]]
extendRental = "extendrental",
}
--[[ Indicators ]]
Config.Indicators = {
electricity = {
unitPrice = 5, -- [[ Unit price at the time of purchase ]]
maxValue = 1000 --[[ Max value that can be stored ]]
},
power = {
unitPrice = 5,
maxValue = 1000
},
gas = {
unitPrice = 5,
maxValue = 1000
},
water = {
unitPrice = 5,
maxValue = 1000
},
}
--[[ InteriorHotelRoom ]]
Config.InteriorHotelCorridor = {
---@type "target" | "textui"
interactionType = "textui",
coords = {
mainDoor = vec4(-425.4557, -831.4573, -169.4836, 163.6333),
cameras = {
[1] = vec4(-429.8342, -834.6968, -166.8, 287.3452),
[2] = vec4(-416.0023, -804.9767, -162.5, 160.3329),
[3] = vec4(-428.0974, -838.8970, -163.2, 336.4007),
[4] = vec4(-416.0247, -805.0617, -154.2, 159.3935),
[5] = vec4(-428.4543, -838.7031, -154.3, 307.3857),
[6] = vec4(-416.0092, -804.9615, -153.7, 159.2749),
[7] = vec4(-428.2982, -838.8560, -153.5, 334.6291),
}
}
}
--[[ InteriorHotelRoom ]]
Config.InteriorHotelRoom = {
dynamicLightsEnteringRoom = false,
coords = {
door = vec3(-361.2132, -846.3577, -163.8098),
enter = vec4(-361.239563, -844.298889, -164.8, 0.000000),
}
}
--[[ !!! Don"t change coords !!! ]]
Config.Elevator = {
coords = {
stops = {
[0] = vec3(-422.0714, -834.5255, -169.210),
[1] = vec3(-422.0714, -834.5255, -164.39),
[2] = vec3(-422.0714, -834.5255, -159.585),
[3] = vec3(-422.0714, -834.5255, -155.67)
},
doors = {
[0] = {
left = vec3(-423.094, -833.318, -170.543),
right = vec3(-423.622, -834.782, -170.543),
},
[1] = {
left = vec3(-423.666, -834.755, -165.661),
right = vec3(-423.146, -833.306, -165.661),
},
[2] = {
left = vec3(-423.146, -833.308, -160.862),
right = vec3(-423.666, -834.753, -160.862),
},
[3] = {
left = vec3(-423.146, -833.308, -157.018),
right = vec3(-423.666, -834.753, -157.018),
},
},
},
door_model = -1240156945
}
--[[ CCTV ]]
Config.CCTV = {
Enabled = true,
FOV = 80.0,
MaxZoom = 30,
MinZoom = 100,
RotateSpeed = 0.3,
Controls = {
Left = 34, -- lEFT Arrow
Right = 35, -- RIGHT Arrow
ZoomIn = 96, -- UP Arrow
ZoomOut = 97, -- DOWN Arrow
Exit = 194, -- BACKSPACE
}
}
--[[ Furniture-based stash ]]
Config.StashOptions = {
active = true,
slots = 10,
maxWeight = 1000000,
max_stash_count = 10,
}
--[[ Furniture-based wardrobe ]]
Config.WardrobeOptions = {
active = true,
}
--[[ Apartments ]]
Config.Apartments = {
[1] = {
label = "Shelly Apart",
tint = 55,
coords = { enter = vec4(278.6257, -1118.3618, 29.4197, 179.6273) },
blip = {
active = true,
title = "Shelly Apart #1",
sprite = 476,
color = 2,
scale = 0.8,
coords = vec3(278.202209, -1124.268188, 29.380981)
},
},
[2] = {
label = "Richman Apart",
tint = 41,
coords = { enter = vec4(-1383.5750, 267.0441, 61.2388, 283.2544) },
blip = {
active = true,
title = "Richman Apart #2",
sprite = 476,
color = 2,
scale = 0.8,
},
},
[3] = {
label = "Vespucci Apart",
tint = 24,
coords = { enter = vec4(-1237.5055, -859.0568, 13.1062, 215.8765) },
blip = {
active = true,
title = "Vespucci Apart #3",
sprite = 476,
color = 2,
scale = 0.8,
},
},
...
}
--[[ Rooms ]]
--[[ !!! Don"t change coords !!! ]]
Config.Rooms = {
[1] = {
label = "St. Sharen, 1/1",
price = 10000,
daily_price = 500,
floor = 1,
room_id = 1,
coords = { door = vec4(-422.45, -827.43, -164.60, 70.85) },
},
[2] = {
label = "St. Sharen, 1/2",
price = 10000,
daily_price = 500,
floor = 1,
room_id = 2,
coords = { door = vec4(-420.7456, -822.9159, -164.60, 70.85) },
},
[3] = {
label = "St. Sharen, 1/3",
price = 10000,
daily_price = 500,
floor = 1,
room_id = 3,
coords = { door = vec4(-419.15, -818.5, -164.60, 70.85) },
},
...
}
Config.InteriorMloApart = {
active = true,
label = "Kiiya Apart",
lobby = {
reception = vec3(-600.9936, 48.0622, 43.5314),
door_coords = vec3(-595.4494, 24.9822, 43.2989),
poly = {
vec3(-606.2514, 38.6246, 43.6),
vec3(-585.3315, 38.6610, 43.6),
vec3(-585.7071, 51.4314, 43.6),
vec3(-606.6401, 52.2651, 43.6),
}
},
cameras = {
[1] = vec4(-604.487, 48.261, 46.669, -123.0),
[2] = vec4(-575.141, 53.899, 67.924, 92.0),
[3] = vec4(-575.141, 53.899, 78.3, 92.0),
[4] = vec4(-575.141, 53.899, 99.0, 92.0),
[5] = vec4(-575.141, 53.899, 109.25, 92.0),
}
}
Config.MloRooms = {
[1] = {
label = "Kiiya, 101",
price = 10000,
daily_price = 500,
floor = 1,
room_id = 1,
door = {
model = 1759602825,
coords = vec3(-586.80, 50.66, 56.25),
yaw = 0.0,
},
poly = {
vec3(-589.0, 38.5, 57.11),
vec3(-578.0, 38.5, 57.11),
vec3(-578.0, 50.6, 57.11),
vec3(-589.0, 50.6, 57.11),
}
},
[2] = {
label = "Kiiya, 102",
price = 10000,
daily_price = 500,
floor = 1,
room_id = 2,
door = {
model = 1759602825,
coords = vec3(-591.56, 56.54, 56.25),
yaw = 180.0,
},
poly = {
vec3(-589.35, 56.5, 57.11),
vec3(-600.35, 56.5, 57.11),
vec3(-600.35, 68.7, 57.11),
vec3(-589.35, 68.7, 57.11),
}
},
...
}
--[[ Wall Colors ]]
Config.WallColors = {
{ id = 1, color = "#FFDB28" },
{ id = 2, color = "#FF6F00" },
{ id = 3, color = "#BF1F19" },
...
}
--[[ Furniture Items ]]
Config.FurnitureItems = {
["stashes"] = {
label = "Stashes",
items = {
[1] = { model = "v_res_tre_storagebox", price = 2500, label = "Storage Box" },
[2] = { model = "prop_devin_box_closed", price = 2500, label = "Devin Box" },
[3] = { model = "prop_mil_crate_01", price = 2500, label = "Mil Crate 1" },
[4] = { model = "prop_mil_crate_02", price = 2500, label = "Mil Crate 2" },
[5] = { model = "prop_box_wood05a", price = 2500, label = "Box Wood 5" },
[6] = { model = "prop_drop_crate_01", price = 2500, label = "Drop Crate 1" },
[7] = { model = "prop_box_wood02a_pu", price = 2500, label = "Box wood 2 Pu" },
[8] = { model = "prop_box_wood04a", price = 2500, label = "Box wood 4" },
[9] = { model = "prop_crate_07a", price = 2500, label = "Crate 7" },
[10] = { model = "prop_mb_crate_01a", price = 2500, label = "Crate 1" },
},
},
["wardrobe"] = {
label = "Cloth Wardrobe",
items = {
[1] = { model = "v_res_tre_wardrobe", price = 2500, label = "V Wardrobe" },
},
},
["weed_planter"] = {
label = "Weed Planter",
items = {
{ model = "qua_weed_planter", price = 2000, label = "Weed Planter" },
{ model = "qua_weed_planter_basic", price = 1000, label = "Weed Planter Basic" },
}
},
["weed_dryer"] = {
label = "Weed Dryer",
items = {
{ model = "qua_weed_dryer", price = 1000, label = "Weed Dryer" },
}
},
["weed_heather"] = {
label = "Weed Heather",
items = {
{ model = "qua_weed_heather", price = 1000, label = "Weed Heather #1" },
{ model = "prop_elec_heater_01", price = 1000, label = "Weed Heather #2" },
{ model = "prop_patio_heater_01", price = 1000, label = "Weed Heather #3" },
}
},
["weed_light"] = {
label = "Weed Light",
items = {
{ model = "prop_wall_light_05a", price = 1000, label = "Wall Light" },
{ model = "ch_prop_ch_lamp_ceiling_w_01a", price = 1000, label = "Lamp Ceiling" },
{ model = "h4_prop_x17_sub_lampa_small_blue", price = 1000, label = "Lamp Small Blue" },
}
},
["weed_fans"] = {
label = "Weed Fans",
items = {
{ model = "prop_fan_01", price = 1000, label = "Fan 01" },
{ model = "v_res_fa_fan", price = 1000, label = "Fa Fan" },
{ model = "prop_wall_vent_02", price = 1000, label = "Fan Went" },
}
},
["weed_table"] = {
label = "Weed Table",
items = {
{ model = "bkr_prop_weed_table_01a", price = 1000, label = "Table" },
}
},
...
}