Integrations — Modern Garages Living with Advanced Garages | Quasar Store | Quasar Store
Documentation
Integrations
Add the Modern Garages Living shells to qs-advancedgarages as walk-in shell garages, to qs-housing's Config.Shells, to ps-housing, or any FiveM housing script.
Modern Garages Living doesn't talk to any other resource. It loads five models into the game, and that's all. A garage or housing script uses a shell by model name, so integrating the pack means adding those names to that script's own shell list. There is no bridge file, framework detection or export involved.
Script
What to do
qs-advancedgarages
Add the five entries to the end of Config.Shells, then give a garage the Shell interior type and place the shell, its exit and its parking spots in the creator.
qs-housing
Add the five entries to the end of , then choose the shell and place the exit in the creator.
Config.Shells
ps-housing
Paste the ready-made block below, which already has the measured entry points.
Any other shell-based script
Add each model name to that script's shell list, in its own format, with the entry points from the Map Guide.
In Advanced Garages a car or plane garage can have a walk-in interior, and a shell is one of its three interior types, next to IPL and MLO. Players walk in, see their stored cars standing on the spots you placed, and drive one straight out.
Open config/config.lua in qs-advancedgarages, find Config.Shells and add the five shells at the end of the list, after the shells that are already there:
lua
-- qs-advancedgarages/config/config.lua
Config.Shells = {
-- ...every shell already in your list stays here, in the same order-- Modern Garages Living
{ model = 'qs_garage_shell_small_01' },
{ model = 'qs_garage_shell_small_02' },
{ model = 'qs_garage_shell_med_01' },
{ model = 'qs_garage_shell_med_02' },
{ model = 'qs_garage_shell_med_03' },
}
Each entry only needs the model name; the creator records everything else. Restart qs-advancedgarages after you edit its config.
Type /garagecreator, press Create Garage and set up its type, access, price, zone, menu point and spawn point as usual. Shell interiors are for car and plane garages; boat garages have no interior.
Choose and place the shell
Set Interior Type to Shell and select it. A free camera opens below the map with a shell floating in front of it. Use the left and right arrow keys (Change Shell +/-) to cycle through Config.Shells until the garage you want appears. Fly the camera to move it, turn it with Z / X, raise or lower it with the mouse wheel, and press ENTER to place it. The five Modern Garages Living shells are the last five in the list, so stepping back from the first shell reaches them fastest.
Place the exit
A ghost of your character appears with the shell. Aim at the floor just inside the door, turn the ghost with Z / X to face into the garage, and press ENTER. This is where players arrive and where they walk out. The point has to fall inside the shell, or the creator refuses it. The Map Guide shows where each door is.
Place the parking spots
You are moved inside the shell, and a ghost car follows your aim. Click to place a spot, turn the car with Z / X, right-click to remove the last spot, and press ENTER when you are done. Each spot holds one car, so the number of spots is how many cars the interior shows. The marked bays in qs_garage_shell_med_01 and qs_garage_shell_med_03 are natural places for the first spots.
Save and walk in
Keep Allow enter shell / interior switched on and save the garage. Enter it from its menu point (G by default, or the target or radial menu option): the shell loads around you, your stored cars appear on their spots, and driving one out takes it out of the garage. E at the exit walks you back outside.
A shell garage shows as many cars as it has spots. When more cars are stored than there are spots, the extra ones are not shown inside and players see No free space in this garage...; they can still take them out from the garage menu. To fit more, edit the garage in /garagecreator and select the shell interior again: you place the shell, its exit and all of its spots once more, so add as many as you need, or move up to a bigger shell.
In qs-housing a shell is the interior of a house, which turns the pack into garage homes: a player buys the property and lives with their cars. qs_garage_shell_small_02, with its living floor upstairs, is the natural choice, and the medium shells make loft-style homes for collectors.
Open config/main.lua in qs-housing, find Config.Shells and add the five shells at the end of the list, after the shells that are already there. Each entry gives the model name and the house storage that comes with it:
lua
-- qs-housing/config/main.lua
Config.Shells = {
-- ...every shell already in your list stays here, in the same order-- Modern Garages Living
{ model = 'qs_garage_shell_small_01', stash = { maxweight = 1000000, slots = 30 } },
{ model = 'qs_garage_shell_small_02', stash = { maxweight = 1000000, slots = 30 } },
{ model = 'qs_garage_shell_med_01', stash = { maxweight = 1000000, slots = 30 } },
{ model = 'qs_garage_shell_med_02', stash = { maxweight = 1000000, slots = 30 } },
{ model = 'qs_garage_shell_med_03', stash = { maxweight = 1000000, slots = 30 } },
}
Field
Meaning
model
The shell's model name. It must match one of the five names exactly.
stash.maxweight
How much weight the house storage holds.
stash.slots
How many inventory slots the house storage has.
The storage values are only a starting point, so change them to suit your economy: a home in qs_garage_shell_med_03 can hold far more than one in qs_garage_shell_small_01. An entry without a stash uses Config.DefaultStashData. Restart qs-housing after you edit its config.
In the qs-housing creator, start a shell house. When you place the structure, the shell appears in front of the camera and the on-screen buttons show Change Shell +/-. Use the left and right arrow keys to cycle through Config.Shells until the garage appears. The five Modern Garages Living shells are the last five in the list, so stepping back from the first shell reaches them fastest.
Place the exit
The creator then shows Select exit position inside the shell. Aim at the floor just inside the door and confirm. The point must fall inside the shell, or the creator answers The coords you selected are not in the shell. In qs_garage_shell_small_02 the pedestrian door, beside the roller door, makes the most natural front door.
Finish the property and walk in
Complete the rest of the property as usual and save it. Enter it once to check that you arrive at the door and that the storage opens with the size you set.
ps-housing places the player and the exit from each shell's doorOffset. The measured entry points are already in this block, so add the five entries inside ps-housing's Config.Shells:
lua
-- ps-housing: inside Config.Shells
["qs_garage_shell_small_01"] = {
label = "Modern Garage Small 01",
hash = `qs_garage_shell_small_01`,
doorOffset = { x = -6.50, y = 0.00, z = -2.00, h = 270.0, width = 2.0 },
stash = { maxweight = 100000, slots = 12 },
imgs = {},
},
["qs_garage_shell_small_02"] = {
label = "Modern Garage Small 02",
hash = `qs_garage_shell_small_02`,
doorOffset = { x = -6.50, y = 5.44, z = -2.00, h = 270.0, width = 2.0 },
stash = { maxweight = 100000, slots = 12 },
imgs = {},
},
["qs_garage_shell_med_01"] = {
label = "Modern Garage Medium 01",
hash = `qs_garage_shell_med_01`,
doorOffset = { x = 0.00, y = -16.50, z = -0.99, h = 0.0, width = 2.0 },
stash = { maxweight = 100000, slots = 12 },
imgs = {},
},
["qs_garage_shell_med_02"] = {
label = "Modern Garage Medium 02",
hash = `qs_garage_shell_med_02`,
doorOffset = { x = -2.04, y = -9.30, z = -3.15, h = 0.0, width = 2.0 },
stash = { maxweight = 100000, slots = 12 },
imgs = {},
},
["qs_garage_shell_med_03"] = {
label = "Modern Garage Medium 03",
hash = `qs_garage_shell_med_03`,
doorOffset = { x = 4.00, y = -0.07, z = -1.62, h = 90.0, width = 2.0 },
stash = { maxweight = 100000, slots = 12 },
imgs = {},
},
label is the name players see in ps-housing's menus, so rename it freely. width is the size of the door zone, and stash is the house storage. Leave the doorOffset numbers exactly as they are, minus signs included. Restart ps-housing after you edit its config.
Any FiveM garage, housing, apartment or motel script that spawns shells can use the pack. Find the place where that script lists its shells or interiors, then add the five model names. Most of them ask for some of these:
The script asks for
What to give it
Model name or hash
qs_garage_shell_small_01, qs_garage_shell_small_02, qs_garage_shell_med_01 to qs_garage_shell_med_03, or the hashes in the Map Guide.
Door, entrance or exit offset
X, Y and Z from the entry points table in the Map Guide, written the way that script expects them.
Heading
The Heading column of the same table.
Vehicle positions
Your own choice on the garage floor. Use the shell's floor height, the Z of its entry point, so cars stand on the floor.