Integrations — Wood Living with qs-housing and ps-housing | Quasar Store | Quasar Store
Documentation
Integrations
Add the Wood Living shells to qs-housing with a ready Config.Shells block, to ps-housing with measured doorOffset values, or to any FiveM housing script.
Wood Living doesn't talk to any other resource. It loads five models into the game, and that's all. A housing script uses a shell by model name, so integrating the pack means adding those names to the housing script's own shell list. There is no bridge file, framework detection or export involved.
Housing script
What to do
qs-housing
Add the five entries to the end of Config.Shells, then choose the shell and place the exit in the creator.
ps-housing
Paste the ready-made block below, which already has the measured door offsets.
Any other shell-based script
Add each model name to that script's shell list, in its own format, with the door offsets from the Map Guide.
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-- Wood Living
{ model = 'qs_wooden_shell_01', stash = { maxweight = 1000000, slots = 5 } },
{ model = 'qs_wooden_shell_02', stash = { maxweight = 1000000, slots = 5 } },
{ model = 'qs_wooden_shell_03', stash = { maxweight = 1000000, slots = 5 } },
{ model = 'qs_wooden_shell_04', stash = { maxweight = 1000000, slots = 5 } },
{ model = 'qs_wooden_shell_05', stash = { maxweight = 1000000, slots = 5 } },
}
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 ranch house in qs_wooden_shell_01 can hold more than a hunting cabin in qs_wooden_shell_03. An entry without a stash falls back to 10000 weight and 30 slots. 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 wooden interior appears. The five Wood 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 front door and confirm. The point must fall inside the shell, or the creator answers The coords you selected are not in the shell. The Map Guide shows where each front door is.
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.
A qs-housing shell entry can also carry optional blocks that turn spots inside the interior into interactions. Wood Living ships without them, so the five shells work as plain interiors out of the box:
Block
What it adds
shower
A shower players can use, with its water effect.
sink
A sink players can use, with its water effect.
toilet
A toilet players can use.
cooking
A cooking point with your recipes (recipes = Config.CookingRecipes).
Each block takes positions relative to the shell: animationOffset for where the player stands and faces, and ptfxOffset for the effect. The shells that come with qs-housing in config/main.lua show the format. See the Housing Creator docs for everything else qs-housing does with a shell.
ps-housing places the player and the exit from each shell's doorOffset. The measured offsets are already in this block, so add the five entries inside ps-housing's Config.Shells:
lua
-- ps-housing: inside Config.Shells
["qs_wooden_shell_01"] = {
label = "Wood Living 01",
hash = `qs_wooden_shell_01`,
doorOffset = { x = 0.92, y = -0.43, z = -1.22, h = 4.25, width = 2.0 },
stash = { maxweight = 100000, slots = 12 },
imgs = {},
},
["qs_wooden_shell_02"] = {
label = "Wood Living 02",
hash = `qs_wooden_shell_02`,
doorOffset = { x = 2.99, y = -0.56, z = -1.24, h = 0.77, width = 2.0 },
stash = { maxweight = 100000, slots = 12 },
imgs = {},
},
["qs_wooden_shell_03"] = {
label = "Wood Living 03",
hash = `qs_wooden_shell_03`,
doorOffset = { x = -0.02, y = 0.42, z = -0.93, h = 179.42, width = 2.0 },
stash = { maxweight = 100000, slots = 12 },
imgs = {},
},
["qs_wooden_shell_04"] = {
label = "Wood Living 04",
hash = `qs_wooden_shell_04`,
doorOffset = { x = -0.02, y = -0.27, z = -1.84, h = 3.39, width = 2.0 },
stash = { maxweight = 100000, slots = 12 },
imgs = {},
},
["qs_wooden_shell_05"] = {
label = "Wood Living 05",
hash = `qs_wooden_shell_05`,
doorOffset = { x = -0.12, y = -0.39, z = -1.41, h = 3.67, 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 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_wooden_shell_01 to qs_wooden_shell_05.
Door, entrance or exit offset
X, Y and Z from the door offsets table, written the way that script expects them.
Heading
The Heading column of the same table.
Storage, wardrobe or price tier
Your own choice. Nothing in the pack sets them.
For example, VMS Housing takes the door of qs_wooden_shell_01 as doors = { x = 0.92, y = -0.43, z = -1.22, heading = 4.25 }, and ESX Property as pos = vector3(0.92, -0.43, -1.22).