Locate your Config.Houses inside main_config.lua file:
As you can see, thats all your houses created VIA CONFIG FILE.
You should leave config file to create new MLO houses and in game real estate job for normal houses and apartments.
On left side of this boxes we present the template, on right one we present the example.
["house_name"] = { -- House name, MUST BE UNIQUE OTHER WISE WILL HAVE ERRORS houseName ="house_name", -- House name, MUST BE UNIQUE OTHER WISE WILL HAVE ERRORS price =25000, -- House price maxFurnitureRange =45, -- max range to be able to furniture doorCoords =vector4(), -- House door coords doorInside = Config.Tiers["mloFranklin"], -- House inside infos houseGarage = { enabled =true, -- House garage enabled ? coords =vector3(), -- House garage door entrance doorInside = Config.Tiers["modGarage"], -- House garage inside infos storeCar =vector3(), -- House garage car storage spawnCar =vector4(), -- House garage car spawn }, stars =5, -- House rating pool =true, -- House have a pool? garden =true, -- House have a garden? camerasystem =true, -- House have a camera? canVisit =false, -- House can be visited? stashLevel =1, -- What level is default level of stash? stashName ="", -- Stash name, must be unique, if same name houses can share their stash mlo =true, -- LEAVE ALWAYS TRUE IF YOU ARE CREATING A MLO House description ="" -- House description },
["myFirstMLOHouse"] = { -- House name, MUST BE UNIQUE OTHER WISE WILL HAVE ERRORS houseName ="myFirstMLOHouse", -- House name, MUST BE UNIQUE OTHER WISE WILL HAVE ERRORS price =125000, -- House price maxFurnitureRange =45, doorCoords =vector4(8.37, 539.73, 176.03, 341.19), -- House door coords doorInside = Config.Tiers["mloFranklin"], -- House inside infos houseGarage = { enabled =true, -- House garage enabled ? coords =vector3(25.02, 541.02, 176.03), -- House garage door doorInside = Config.Tiers["modGarage"], -- House garage inside infos storeCar =vector3(22.56, 544.11, 176.03), -- House garage car storage spawnCar =vector4(14.44, 549.54, 176.3, 49.25), -- House garage car spawn }, stars =5, -- House rating pool =true, -- House have a pool? garden =true, -- House have a garden? camerasystem =true, -- House have a camera? canVisit =false, -- House can be visited? stashLevel =1, -- What level is default level of stash? stashName ="mloTestingHouse2", -- Stash name, must be unique, if same name houses can share their stash mlo =true, -- is it a MLO? description ="Modern House with pool, garen, camara system and visiting options! Cheap!" -- House description },
The first [""], you should write the same you will put as houseName inside the "", it needs to be UNIQUE, cant repeat it NEVER! (Check Example to understand better what we want to explain).
maxFurnitureRange is the range players will be able to put new furniture inside their house, this is great to adjust to perfection the zone, because MLOs can be big or small right?
( You can change this anytime so you can keep testing it )
doorCoords is the coords you will use to join, in this case will be the coords or main door of house, to provide infos to script work as intended.
doorInside is where you will setup all markers inside and their coords, the animations, the stash, the wardrobe, management zone and logout.
How i add a new interior infos?
This part is very important, it allows you to add new MLOs informations.
Navigate to Config.Tiers on config file, should be something like this:
As you can see, there you have ALL interiors informations of JPR Housing System, the next board, on left side will be the template, on right the example.
["MLO_NAME"] = { doorCoords =vector4(), -- see cameras interaction zone defaultStash =vector3(), -- default stash interaction zone defaultWardrobe =vector3(), -- default wardrobe interaction zone defaultLogout =vector3(), -- default logout interaction zone managementCoords =vector3(), -- default management interaction zone fridge = {coords =vector4(), fridgeItems = {interactions = {"beer", "soda", "champagne"}, interactionsCommands = {"e beer", "e soda", "e champagne"}}, label ="frigorifico"}, -- default fridge animations zone previewImage =nil, -- can leave nil ONLY ON MLOs isMLO =true, -- NEVER CHANGE THIS if you are creating a new MLO },
houseGarage = { enabled =true, -- if you want MLO to have garage system, then set TRUE if not set FALSE coords =vector3(-815.35, 183.06, 72.43), -- House garage door entrance coords doorInside = Config.Tiers["modGarage"], -- House garage inside infos storeCar =vector3(-812.13, 187.36, 72.47), -- House garage car storage coords spawnCar =vector4(-811.69, 187.62, 72.48, 117.85), -- House garage car spawn coords},
By default, we have 6 garages interiors (doorInside), they are:
neonGarage, highGarage, midGarage, lowGarage, importGarage, modGarage
Example, if you want highGarage then your doorInside of garageshoud look like this:
doorInside = Config.Tiers["highGarage"],
The rest of options are pretty easy and obvioslly, they are already explained on template on grey letters.
Congratulations, your first MLO house is created, now lets do the doords
If you dont want to lock your MLO doors via keyholders with doors, ignore this part.
Creating MLO doords:
Open mlo_doors_config.lua file and locate MLOConfig.MLOHouseDoors:
As you can see, it already includes some doors from Michael default MLO.
The working of this system is similar to qb-doorlock to be easier to our customers creating new doors.
On next box, left side is template, right one is example:
For single doords:
{ houseName ="house_name_of_mlo", -- the name of MLO house this door is propName ="name_of_prop", -- the name of prop you want to lock propCoords =vector3(), -- the coords of prop you want to lock propTextCoords =vector3(), -- can be save as above, is the emojis coords locked =true, -- it will start locked? if yes set to true otherwise to false distance =4--- distance to interact with door, 4 is recommended },
For double doords:
{ houseName ="house_name_of_mlo", -- the name of MLO house this door is propTextCoords =vector3(), -- is the emojis coords locked =true, -- it will start locked? if yes set to true otherwise to false distance =2.0, --- distance to interact with door, 4 is recommended doors = { { propName ='name_of_prop', -- the name of prop you want to lock propYam =291.0, -- heading, not too important, sometimes can let the default propCoords =vector3() -- the coords of prop you want to lock }, { propName ='name_of_prop', -- the name of prop you want to lock propYam =291.0, -- heading, not too important, sometimes can let the default propCoords =vector3() -- the coords of prop you want to lock } }},
For single doords:
{ houseName ="myFirstMLOHouse", -- the name of MLO house this door is propName ="prop_ld_garaged_01", -- the name of prop you want to lock propCoords =vector3(-814.48, 186.28, 74.51), -- the coords of prop you want to lock propTextCoords =vector3(-815.44, 185.44, 72.48), -- can be save as above, is the emojis coords locked =true, -- it will start locked? if yes set to true otherwise to false distance =4--- distance to interact with door, 4 is recommended },
For double doords:
{ houseName ="myFirstMLOHouse", -- the name of MLO house this door is propTextCoords =vector3(), -- is the emojis coords locked =true, -- it will start locked? if yes set to true otherwise to false distance =2.0, --- distance to interact with door, 4 is recommended doors = { { propName ='v_ilev_mm_doorm_l', -- the name of prop you want to lock propYam =291.0, -- heading, not too important, sometimes can let the default propCoords =vector3(-816.72, 179.1, 72.83) -- the coords of prop you want to lock }, { propName ='v_ilev_mm_doorm_r', -- the name of prop you want to lock propYam =291.0, -- heading, not too important, sometimes can let the default propCoords =vector3(-816.11, 177.51, 72.83) -- the coords of prop you want to lock } }},
If you want to use doorHash, replace propName to propHash.
For propHash doors, the propYam needs to be setup ( prop heading when its closed ), this quick video shows how to get it.
Congratulations, your doords are created and linked with your new MLO house.
How they are linked?
The anwser is pretty easy, as you know when you created the MLO on Config.Houses, you gave a unique houseName to your MLO right?
Then here on door creating, you have put on houseName the same name as before, that way the MLO is linked with this doords, in this case is myFirstMLOHouse.