How Integrations Work#
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 |
|---|---|
| Add the five entries to the end of |
| 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. |
Quasar Housing#
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:
-- 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 |
|---|---|
| The shell's model name. It must match one of the five names exactly. |
| How much weight the house storage holds. |
| 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.
Creating a property with a wooden shell#
Choose the shell
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.Shellsuntil 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.
Showers, sinks, toilets and cooking#
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 |
|---|---|
| A shower players can use, with its water effect. |
| A sink players can use, with its water effect. |
| A toilet players can use. |
| A cooking point with your recipes ( |
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#
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:
-- 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.
Other Housing Scripts#
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 |
|
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).



