Skip to content

🏠 Build my Home

Documentation relating to the spooni_build_my_home.

1. Installation

spooni_build_my_home works only with VORP, RSG & RPX.

To install spooni_build_my_home:

  • Download the resource
  • Ensure that all requirements are installed
  • Drag and drop the resource into your resources folder
    • spooni_build_my_home
  • Add this ensure in your server.cfg
      ensure spooni_build_my_home
  • Execute the SQL file
    • spooni_houses.sql
  • Now you can configure and translate the script as you like
    • config.lua
    • functions.lua
    • furniture.lua
  • At the end, restart the server

If you have any problems, you can always open a ticket in the Spooni Discord.

2. Usage

Build your own house with our house props in 21 steps anywhere on the map, furnish them or transfer them.

3. For developers

Config.lua
lua
Config = {}

Config.DevMode = false -- only for testing, not for the live server
Config.Framework = 'vorp' -- select your framework (vorp, rpx, rsg, rsg-old) *rsg-old = old inventory version
Config.Locale = 'en' -- select your language (en, de, fr, es)

--Webhook
Config.Logs         = true -- enable or disable the webhook
Config.Discord      = false -- if you use discord whitelist
Config.Webhook      = "YOUR WEBHOOK HERE"
Config.WebhookColor = 16711680 
Config.WebhookName         = "spooni_build_my_home" 
Config.WebhookLogo         = "https://via.placeholder.com/30x30" -- Header
Config.WebhookFooterLogo   = "https://via.placeholder.com/30x30" -- Footer
Config.WebhookAvatar       = "https://via.placeholder.com/30x30" -- Avatar

Config.Commands = {
    DeleteHouse = 'delHouse', -- command to delete the houses
    Housing = 'housing', -- command to manage the housing system
}
Config.CommandPerms = { 'admin', 'mod' }
Config.BuildingJob = false --  if you want to have a joblock
Config.NoTXAdmin = false -- if you have no txAdmin on your server
Config.Furniture = true -- if you want to furnish the houses
Config.Blip = true -- if you want a blip for the houses
Config.Dresser = true -- if you want to have a wardrobe in the houses
Config.Storage = true -- if you want to have a storage in the houses
Config.Ledger = true -- if you want to have a ledger in the houses
Config.OnlyOwnerCanAccessLedger = true -- if you want only the owner to have access to the ledger
Config.TaxSystem = true -- if you want to have a tax for the houses
Config.DistanceBetweenHouses = 25.0 -- the minimum distance a new house must have before it can be built
Config.MaxHousesPerPlayer = 500 -- the maximum amount of houses a player may own
Config.KeyHolderRemoveWord = 'remove' -- the word that must be in the input field to confirm the removal of a key holder
Config.RentableHouseActionRadius = 400 -- the render distance in which you can interact with the house

Config.Housing = { -- NEW
    RentDays = 14, -- how long can the house be rented for
    FurnitureRadiusMax = 150.0, -- the radius in which you can place furniture for this house
    FurnitureLimit = 150, -- the maximum amount of furniture that can be placedaximum
}

Config.BlockedZones = {
    [1] = { -- St Denis
        coords = vector3(2605.814, -1263.41, 52.681),
        distance = 150.0,
    },
    [2] = { -- Rhodes
        coords = vector3(1331.761, -1309.36, 76.444),
        distance = 50.0,
    },
    [3] = { -- Blackwater
        coords = vector3(-801.510, -1293.28, 43.522),
        distance = 100.0,
    },
    [4] = { -- Valentine
        coords = vector3(-295.363, 750.4001, 117.95),
        distance = 50.0,
    },
    [5] = { -- Strawberry
        coords = vector3(-1799.77, -398.492, 152.55),
        distance = 50.0,
    },
    [6] = { -- Annesburg
        coords = vector3(2912.352, 1371.321, 46.675),
        distance = 100.0,
    },
    [7] = { -- Van Horn
        coords = vector3(2968.969, 526.4790, 44.078),
        distance = 50.0,
    },
    [8] = { -- Armadillo
        coords = vector3(-3676.72, -2605.03, -13.72),
        distance = 50.0,
    },
    [9] = { -- Tumbleweed
        coords = vector3(-5522.91, -2939.22, -1.980),
        distance = 50.0,
    },
}

Config.WhitelistedZones = {
    -- [1] = { -- St Denis
    --     coords = vector3(2605.814, -1263.41, 52.681),
    --     distance = 150.0,
    -- },
}

Config.HousePromptKeys = {
    ['toggle_lock'] = `INPUT_INTERACT_OPTION1`,   -- [G]
    ['furniture_placement'] = `INPUT_FRONTEND_LEFT`, -- [LEFT ARROW]
    ['add_key_holder'] = `INPUT_FRONTEND_UP`,     -- [UP ARROW]
    ['remove_key_holder'] = `INPUT_FRONTEND_DOWN`, -- [DOWN ARROW]
    ['transfer_house'] = `INPUT_FRONTEND_RIGHT`,  -- [RIGHT ARROW]
    ['open_storage'] = `INPUT_INTERACT_POS`,      -- [R]
    ['upgrade_house'] = `INPUT_INTERACT_OPTION1`, -- [G]
    ['place_dresser'] = `INPUT_INTERACT_OPTION1`, -- [G]
    ['remove_dresser'] = `INPUT_INTERACT_POS`, -- [R]
    ['place_storage'] = `INPUT_INTERACT_OPTION1`, -- [G]
    ['remove_storage'] = `INPUT_INTERACT_POS`, -- [R]
    ['open_dresser'] = `INPUT_INTERACT_OPTION1`, -- [G]
    ['ledger_check_prompt'] = `INPUT_FRONTEND_LEFT`, -- [G]
    ['furniture_removal'] = `INPUT_FRONTEND_RUP`, -- [LEFT CONTROL]
}

Config.PlacementPromptKeys = {
    ['rotate_-'] = 'INPUT_SELECT_NEXT_WEAPON',       -- [MOUSE SCROLL DOWN]
    ['rotate_+'] = 'INPUT_SELECT_PREV_WEAPON',       -- [MOUSE SCROLL UP]
    ['up_prompt'] = 'INPUT_FRONTEND_UP',             -- [UP ARROW]
    ['down_prompt'] = 'INPUT_FRONTEND_DOWN',         -- [DOWN ARROW]
    ['place_prompt'] = 'INPUT_FRONTEND_ACCEPT',      -- [ENTER]
    ['cancel_prompt'] = 'INPUT_FRONTEND_CANCEL',     -- [ESC]
    ['confirm_place_prompt'] = 'INPUT_FRONTEND_ACCEPT', -- [ENTER]
    ['back_prompt'] = 'INPUT_FRONTEND_RLEFT',        -- [E]
    ['left_prompt'] = 'INPUT_FRONTEND_LEFT',         -- [LEFT ARROW]
    ['right_prompt'] = 'INPUT_FRONTEND_RIGHT',       -- [RIGHT ARROW]
    ['category_+'] = 'INPUT_SELECT_NEXT_WEAPON',     -- [MOUSE SCROLL DOWN]
    ['category_-'] = 'INPUT_SELECT_PREV_WEAPON',     -- [MOUSE SCROLL UP]
    ['rotate_furniture'] = 'INPUT_FRONTEND_Y',       -- [LEFT SHIFT]
    ['object_+'] = 'INPUT_FRONTEND_LEFT',            -- [LEFT ARROW]
    ['object_-'] = 'INPUT_FRONTEND_RIGHT',           -- [RIGHT ARROW]
}

Config.Houses = {
    [1] = {                     -- house
        StorageLimit = 25,      -- the maximum number of items you can have in storage
        StorageWeight = 3500,   -- the maximum weight you can have in storage
        FurnitureRadius = 50.0, -- the radius in which you can place furniture for this house
        FurnitureLimit = 5, -- the maximum amount of furniture that can be placed
        TaxInDaysAfterBuilding = 14, -- 14 days after building tax will be acquired if enabled above
        TaxAmount = 500, -- amount in cash that must be in ledger
        LoadRadius = 200, -- the radius in which the house is loaded
        Setup = {
            [1] = {            -- step
                Timer = 10000, -- building time
                Items = {
                    wood = 1,  -- item name -- quantity
                },
            },
            [2] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [3] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [4] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [5] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [6] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [7] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [8] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [9] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
        },
    },
    [2] = {                    -- house
        StorageLimit = 25,     -- the maximum number of items you can have in storage
        StorageWeight = 3500,  -- the maximum weight you can have in storage
        FurnitureRadius = 50.0, -- the radius in which you can place furniture for this house
        FurnitureLimit = 5, -- the maximum amount of furniture that can be placed
        TaxInDaysAfterBuilding = 14, -- 14 days after building tax will be acquired if enabled above
        TaxAmount = 500, -- amount in cash that must be in ledger
        LoadRadius = 200, -- the radius in which the house is loaded
        Setup = {
            [1] = {            -- step
                Timer = 10000, -- building time
                Items = {
                    wood = 1,  -- item name -- quantity
                },
            },
            [2] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [3] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [4] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [5] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [6] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [7] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [8] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [9] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
        },
    },
    [3] = {                    -- house
        StorageLimit = 30,     -- the maximum number of items you can have in storage
        StorageWeight = 3500,  -- the maximum weight you can have in storage
        FurnitureRadius = 50.0, -- the radius in which you can place furniture for this house
        FurnitureLimit = 5, -- the maximum amount of furniture that can be placed
        TaxInDaysAfterBuilding = 14, -- 14 days after building tax will be acquired if enabled above
        TaxAmount = 500, -- amount in cash that must be in ledger
        LoadRadius = 200, -- the radius in which the house is loaded
        Setup = {
            [1] = {            -- step
                Timer = 10000, -- building time
                Items = {
                    wood = 1,  -- item name -- quantity
                },
            },
            [2] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [3] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [4] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [5] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [6] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [7] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [8] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [9] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
        },
    },
    [4] = {                    -- house
        StorageLimit = 75,     -- the maximum number of items you can have in storage
        StorageWeight = 7500,  -- the maximum weight you can have in storage
        FurnitureRadius = 50.0, -- the radius in which you can place furniture for this house
        FurnitureLimit = 5, -- the maximum amount of furniture that can be placed
        TaxInDaysAfterBuilding = 14, -- 14 days after building tax will be acquired if enabled above
        TaxAmount = 500, -- amount in cash that must be in ledger
        LoadRadius = 200, -- the radius in which the house is loaded
        Setup = {
            [1] = {            -- step
                Timer = 10000, -- building time
                Items = {
                    wood = 1,  -- item name -- quantity
                },
            },
            [2] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [3] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [4] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [5] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [6] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [7] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [8] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [9] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
        },
    },
    [5] = {                    -- house
        StorageLimit = 35,     -- the maximum number of items you can have in storage
        StorageWeight = 3500,  -- the maximum weight you can have in storage
        FurnitureRadius = 50.0, -- the radius in which you can place furniture for this house
        FurnitureLimit = 5, -- the maximum amount of furniture that can be placed
        TaxInDaysAfterBuilding = 14, -- 14 days after building tax will be acquired if enabled above
        TaxAmount = 500, -- amount in cash that must be in ledger
        LoadRadius = 200, -- the radius in which the house is loaded
        Setup = {
            [1] = {            -- step
                Timer = 10000, -- building time
                Items = {
                    wood = 1,  -- item name -- quantity
                },
            },
            [2] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [3] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [4] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [5] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [6] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [7] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [8] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [9] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [10] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [11] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [12] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [13] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [14] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [15] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [16] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [17] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [18] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [19] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [20] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [21] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
        },
    },
    [6] = {                    -- house
        StorageLimit = 35,     -- the maximum number of items you can have in storage
        StorageWeight = 3500,  -- the maximum weight you can have in storage
        FurnitureRadius = 50.0, -- the radius in which you can place furniture for this house
        FurnitureLimit = 5, -- the maximum amount of furniture that can be placed
        TaxInDaysAfterBuilding = 14, -- 14 days after building tax will be acquired if enabled above
        TaxAmount = 500, -- amount in cash that must be in ledger
        LoadRadius = 200, -- the radius in which the house is loaded
        Setup = {
            [1] = {            -- step
                Timer = 10000, -- building time
                Items = {
                    wood = 1,  -- item name -- quantity
                },
            },
            [2] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [3] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [4] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [5] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [6] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [7] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [8] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [9] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
        },
    },
    [7] = {                    -- house
        StorageLimit = 35,     -- the maximum number of items you can have in storage
        StorageWeight = 3500,  -- the maximum weight you can have in storage
        FurnitureRadius = 50.0, -- the radius in which you can place furniture for this house
        FurnitureLimit = 5, -- the maximum amount of furniture that can be placed
        TaxInDaysAfterBuilding = 14, -- 14 days after building tax will be acquired if enabled above
        TaxAmount = 500, -- amount in cash that must be in ledger
        LoadRadius = 200, -- the radius in which the house is loaded
        Setup = {
            [1] = {            -- step
                Timer = 10000, -- building time
                Items = {
                    wood = 1,  -- item name -- quantity
                },
            },
            [2] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [3] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [4] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [5] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [6] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [7] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [8] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [9] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
        },
    },
    [8] = {                    -- house
        StorageLimit = 35,     -- the maximum number of items you can have in storage
        StorageWeight = 3500,  -- the maximum weight you can have in storage
        FurnitureRadius = 50.0, -- the radius in which you can place furniture for this house
        FurnitureLimit = 5, -- the maximum amount of furniture that can be placed
        TaxInDaysAfterBuilding = 14, -- 14 days after building tax will be acquired if enabled above
        TaxAmount = 500, -- amount in cash that must be in ledger
        LoadRadius = 200, -- the radius in which the house is loaded
        Setup = {
            [1] = {            -- step
                Timer = 10000, -- building time
                Items = {
                    wood = 1,  -- item name -- quantity
                },
            },
            [2] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [3] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [4] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [5] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [6] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [7] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [8] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
            [9] = {
                Timer = 10000,
                Items = {
                    wood = 1,
                },
            },
        },
    },
}
Functions.lua
lua
local VORPcore

if Config.Framework == 'vorp' then
    VORPcore = exports.vorp_core:GetCore()
end

-- Notify
function clNotify(text, error, success)
    if Config.Framework == 'vorp' then
        if error then
            VORPcore.NotifyAvanced(text, 'menu_textures', 'cross', 'COLOR_RED', 4000)
        elseif success then
            VORPcore.NotifyAvanced(text, 'hud_textures', 'check', 'COLOR_GREEN', 4000)
        else
            VORPcore.NotifyAvanced(text, 'inventory_items', 'provision_jail_keys', 'COLOR_PURE_WHITE', 4000)
        end
    end
    if Config.Framework == 'rpx' then
        if error then
            exports['rpx-core']:ShowAdvancedRightNotification(text, 'menu_textures', 'cross', 'COLOR_RED', 4000)
        elseif success then
            exports['rpx-core']:ShowAdvancedRightNotification(text, 'hud_textures', 'check', 'COLOR_GREEN', 4000)
        else
            exports['rpx-core']:ShowAdvancedRightNotification(text, 'inventory_items', 'provision_jail_keys', 'COLOR_PURE_WHITE', 4000)
        end
    end
    if Config.Framework == 'rsg' or Config.Framework == 'rsg-old' then
        if error then
            local dataError = {description = text, duration = 4000, type = 'error' }
            TriggerEvent('ox_lib:notify', dataError)
        elseif success then
            local dataSuccess = {description = text, duration = 4000, type = 'success' }
            TriggerEvent('ox_lib:notify', dataSuccess)
        else
            local data = {description = text, duration = 4000, type = 'inform' }
            TriggerEvent('ox_lib:notify', data)
        end
    end
end

function svNotify(src, text, error, success)
    if Config.Framework == 'vorp' then
        if error then
            VORPcore.NotifyAvanced(src, text, 'menu_textures', 'cross', 'COLOR_RED', 4000)
        elseif success then
            VORPcore.NotifyAvanced(src, text, 'hud_textures', 'check', 'COLOR_GREEN', 4000)
        else
            VORPcore.NotifyAvanced(src, text, 'inventory_items', 'provision_jail_keys', 'COLOR_PURE_WHITE', 4000)
        end
    end
    if Config.Framework == 'rpx' then
        if error then
            exports['rpx-core']:ShowAdvancedRightNotification(src, text, 'menu_textures', 'cross', 'COLOR_RED', 4000)
        elseif success then
            exports['rpx-core']:ShowAdvancedRightNotification(src, text, 'hud_textures', 'check', 'COLOR_GREEN', 4000)
        else
            exports['rpx-core']:ShowAdvancedRightNotification(src, text, 'inventory_items', 'provision_jail_keys', 'COLOR_PURE_WHITE', 4000)
        end
    end
    if Config.Framework == 'rsg' or Config.Framework == 'rsg-old' then
        if error then
            local dataError = {description = text, duration = 4000, type = 'error' }
            TriggerClientEvent('ox_lib:notify', src, dataError)
        elseif success then
            local dataSuccess = {description = text, duration = 4000, type = 'success' }
            TriggerClientEvent('ox_lib:notify', src, dataSuccess)
        else
            local data = {description = text, duration = 4000, type = 'inform' }
            TriggerClientEvent('ox_lib:notify', src, data)
        end
    end
end

-- Wardrobe
function ClothingMenuEvent()
    -- TriggerEvent('syn_clothing:OpenOutfits')
    TriggerEvent('kd_clothingstore:openWardrobe', false)
end

-- New Stage
function CustomNewStageEvent(owner, type, stage)
    -- Custom Event to trigger when upgrading house / next building step
end

-- Tax
function TaxNotPaid(houseID, type, ledger)
    -- Custom Event to trigger when a house has failed paying tax
    -- return false -- use this when the house should not get deleted and only access should get revoked
    return true -- use this when the house should get deleted from db
end

-- Custom Inventory
function CustomInventory()
    -- Custom Event to trigger when you have a custom Inventory
    return false
end

-- Debug
function Debug(...)
    if Config.DevMode then
        print(...)
    end
end
Furniture.lua
lua
Furniture = {}

Furniture.Categories = {
    [1] = {
        Label = "tables",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_table01x", -- prop name
                "p_table02x",
                "p_table10x",
                "p_table11x",
                "p_table14x",
                "p_table31x",
                "p_table32x",
                "p_table38x",
                "p_table41x",
                "p_table42_cs",
                "p_table44x",
                "p_table46x",
                "p_table50x",
                "p_table51x",
                "p_tabledining03xb",
                "p_tableprep01x",
                "p_tablebedside01x",
                "p_tablebedside02x",
                "p_grp_w_tra_sidetable01x",
                "p_tablework02x",
                "p_tableconsole01x",
                "p_tableconsole02x",
                "p_tableconsole03bx",
                "p_tableconsole03x",
                "p_tableconsole04x",
                "p_tableconsole05bx",
                "p_tablegiltconsole01x",
                "p_tablegiltwood01x",
            },
        },
    },
    [2] = {
        Label = "chairs",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_chair02x", -- prop name
                "p_chair04x",
                "p_chair05x",
                "p_chair06x",
                "p_chair09x",
                "p_chair15x",
                "p_chair17x",
                "p_chair18x",
                "p_chair19x",
                "p_chair22x",
                "p_chair34x",
                "p_chair37x",
                "p_chaircomfy01x",
                "p_chaircomfy02",
                "p_chaircomfy03x",
                "p_chaircomfy04x",
                "p_chaircomfy04x",
                "p_chaircomfy07x",
                "p_chaircomfy12x",
                "p_chaircomfy14x",
                "p_chairdesk01x",
                "p_chairdesk02x",
                "p_chairpokerfancy01x",
                "p_woodendeskchair01x",
            },
        },
    },
    [3] = {
        Label = "plants inside",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_plant_moneytree", -- prop name
                "p_exoticprops14x",
                "p_plantpotnbx05x",
                "p_plantpotnbx06x",
                "p_plantpotnbx07x",
                "p_plantpothangnbx01x",
                "p_pot_flowerarng02x",
                "p_pot_flowerarng03x",
                "p_pot_flowerarng05x",
                "p_pot_flowerarng07x",
                "p_pot_flowerarng08x",
                "p_pot_flowerarng09bx",
                "p_pot_flowerarng16x",
                "p_pot_flowerarng17x",
                "p_pot_flowerarng18x",
                "p_pot_flowerarng23x",
                "p_pot_flowerarngdead02",
                "p_pot_leafyvase",
                "p_pot_plant_05a",
                "p_pot_plant_05b",
                "p_pot_plant_6a",
                "p_pot_plant_6b",
                "p_pot_plant_08a",
                "p_group_flowertable01",
                "p_plant_philo",
                "p_plant_philo2",
                "p_plant05x",
                "p_plant06x",
                "p_planter",
                "p_planter03a",
                "p_planter03x",
                "p_planternbx04a",
                "p_planternbx04b",
            },
        },
    },
    [4] = {
        Label = "lights",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_candle01x", -- prop name
                "p_candlebot01x",
                "p_candlestand",
                "p_candlegroup05x",
                "p_lanternhang01x",
                "p_lantern08x",
                "p_walllampnbx02x",
                "p_gnomeoillamp01x",
                "p_chandelier14x",
                "p_lamp17x",
                "p_lamp30x",
                "p_lampbar01x",
                "p_lamphanging03x",
                "p_lamphanging07x",
                "p_lamphangnbx01x",
                "p_lamphanging08x",
                "p_lantern04xlowfuel",
                "p_lantern05x",
                "p_lampstanding03x",
                "p_lampstanding04x",
                "p_lampstanding07x",
                "p_lampstanding09x",
                "p_medlight02x",
                "p_kerosenetablelamp01x",
                "p_lamp27x",
                "p_lamp32x",
                "p_lamp33x",
                "p_lanternbrass02x",
                "p_kerosenewalllamp01x",
                "p_lamp01x",
                "p_lampwall02x",
                "p_lampwall04x",
                "p_lampwall07x",
                "p_lampwall12x",
                "p_sconcelight01x",
            },
        },
    },
    [5] = {
        Label = "bathroom",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_bath02bx", -- prop name
                "p_bath02x",
                "p_bath03x",
                "p_bathsponge01x",
                "p_comb01x",
                "p_shavingboxclosed01x",
                "p_tub01bx",
                "p_tub02x",
                "p_val_hotel_int_tub_01x",
                "p_washstand02x_static",
                "p_bathbrush01x",
                "p_bedpanladies01x",
                "p_cupboard07x",
                "p_shaving_set01x",
                "p_shavingbox01x",
                "p_shavingbrush01x",
                "p_shavingcup01x",
                "p_soap01x",
                "p_straightrazor01x",
                "p_towelrack01x",
                "p_washbasin01x",
                "p_washbasinregal01x",
                "p_washbasinset01ax",
                "p_washbasinset01bx",
                "p_washbasinset01x",
                "p_washboard_01",
                "p_washstand02x",
                "p_washstand03x",
            },
        },
    },
    [6] = {
        Label = "bedroom",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_bed_abigail3x", -- prop name
                "p_bed01x",
                "p_bed02bx",
                "p_bed02x",
                "p_bed04x",
                "p_bed08x",
                "p_bed09x",
                "p_bed12x",
                "p_bed15brassx",
                "p_bed18x",
                "p_bed03x",
                "p_bed05x",
                "p_bed10x",
                "p_bed13x",
                "p_bed14x",
                "p_bed17x",
                "p_bed20madex",
                "p_bed20x",
                "p_bed21x",
                "p_bed22x",
                "p_bed20bloodyx",
                "p_bedindian01x",
                "p_bedking01x",
                "p_bedlog01x",
                "p_bedmosquitonet01x",
                "p_bedsleptin01x",
                "p_bedsleptinold04x",
                "p_blanketfolded01x",
                "p_chamberpot_pot",
                "p_clothingcase01x",
                "p_cradle01x",
                "p_dresser08x",
                "p_dressmirror01x",
                "p_foldedrug01x",
                "p_footlocker01x",
                "p_footlockeranim01x",
                "p_mattress03x",
                "p_mattress07x",
                "p_mattress08x",
                "p_nightbedking01x",
                "p_nightstand04x",
                "p_singlebrassbed01x",
                "p_alarmclock01x",
                "p_armoir02x_loot",
                "p_armoir02x",
                "p_armoir03x",
                "p_armoir04x_loot",
                "p_armoir04x",
                "p_armoir05x_loot",
                "p_armoir05x",
                "p_armoir06x",
                "p_armoir07bx",
                "p_armoir07x_loot",
                "p_armoir07x",
                "p_armoir08x",
                "p_armoireregal01",
                "p_bedbunk03x",
                "p_bedking02x",
                "p_cabinet03x",
                "p_cabinet04x",
                "p_cabinet05x",
                "p_chamberpot01x",
                "p_chest01x",
                "p_chest02x",
                "p_chest03x",
                "p_commode01x",
                "p_commode02x",
                "p_dresser01x",
                "p_dresser03x",
                "p_dresser04x",
                "p_dresser05x",
                "p_dresser06x",
                "p_dresser07x",
                "p_dresser09x",
                "p_dresserval01x",
                "p_foldedblanket01x",
                "p_foldedblanket02x",
                "p_footlocker07x_loot",
                "p_footlocker07x",
                "p_lacepillow01x",
                "p_lacepillow02x",
                "p_mattress04x",
                "p_mirror_shave01x",
                "p_nightstand03x",
                "p_nightstandwinter03x",
                "p_pillow01x_sea",
                "p_pillow01x",
                "p_pillow02x",
                "p_pillow03x",
                "p_pillow06x",
                "p_pillow08x",
                "p_pillow09x",
                "p_pillow10x",
                "p_pillow11x",
                "p_pillow12x",
                "p_steamer_trunk_001",
                "p_vanity01x",
                "p_vanity02x",
            },
        },
    },
    [7] = {
        Label = "livingroom",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_seatbench01x", -- prop name
                "p_sit_chairwicker01a",
                "p_couchwicker01x",
                "p_trunkvar01x_noloot",
                "p_weddingchest01x",
                "s_footlocker01x",
                "p_couch06x",
                "p_couch08x",
                "p_couch10x",
                "p_loveseat01x",
                "p_settee_05x",
                "p_settee02bx",
                "p_settee02x",
                "p_sofa01x",
                "p_victoriansofa01x",
                "p_armoiroffice66x",
                "p_buffet01x",
                "p_cabinetdoctor01x",
                "p_shelf06x",
                "p_bw_desk01x",
                "p_desk01x",
                "p_desk03x",
                "p_desk04x",
                "p_desk10x",
                "p_desk13x",
                "p_drdesk01x",
                "p_trolleymaildesk_01x",
                "p_vanitydresserdesk01x",
                "p_coatstand01x",
                "p_doc_coatstandrack01x",
                "p_gun_hangitem02x",
                "p_gunsmithprops16x",
                "p_hatstandbear01x",
                "p_desk10x",
            },
        },
    },
    [8] = {
        Label = "deco inside",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_books01x", -- prop name
                "p_books02x",
                "p_bookset04x",
                "p_bookset05x",
                "p_book04x",
                "p_book05x",
                "p_book06x",
                "p_jug01bx",
                "p_bottlebeer01a",
                "p_grp_new_sal02_props04x",
                "p_boxlrgcotton01x",
                "p_boxlrgleather01x",
                "p_boxmeddeposit01x",
                "p_boxmedpaint01x",
                "p_boxmedsuitcase01x",
                "p_boxsmljewelery01x",
                "p_sto_buysellbox02x",
                "s_saddiessupply01x",
                "p_basket05x",
                "p_basket06x",
                "p_basket13x",
                "p_baskethalf01x",
                "p_bag01x",
                "p_baghang02x",
                "p_cs_suitcase01x",
                "s_pistolchest_loot",
                "p_scalecandy01x",
                "p_basket06cx",
                "p_piestand01x",
                "p_knifeblock03x",
                "p_valbankclock01x",
                "p_clock06x",
                "p_mantle_clock_old",
                "p_deskstand01x",
                "p_deskorganizer01x",
                "p_fandesk_off01x",
                "p_letterbox_01x",
                "mp007_p_nat_pictureframe01x",
                "mp007_p_nat_pictureframe02x",
                "mp007_p_nat_pictureframe03x",
                "mp007_p_nat_pictureframe04x",
                "p_flowerframe01x",
                "p_painting_newgala_sml01x",
                "p_picturemirror02x",
                "mp006_p_mshn_painting01x",
                "mp006_p_mshn_painting02x",
                "mp006_p_mshn_painting03x",
                "mp006_p_mshn_painting04x",
                "mp006_p_mshn_painting05x",
                "mp006_p_mshn_painting06x",
                "mp006_p_mshn_painting07x",
                "mp006_p_mshn_painting08x",
                "mp006_p_mshn_painting09x",
                "mp006_p_mshn_painting10x",
                "p_cs_photowolves",
                "p_bag01x",
                "p_bag01x",
                "mp006_p_bowl_apple01x",
                "mp006_p_bowl_banana01x",
                "p_gourdsbundle01x",
                "p_stewplate01x",
                "p_tutlesoup01x",
                "p_sink02x",
                "p_sink04x",
                "p_drysink01x",
                "p_pedestal01x",
                "p_counterdoctor01x",
            },
        },
    },
    [9] = {
        Label = "deco outsie",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_hitchingpost01x", -- prop name
                "p_hitchingpost05x",
                "p_bra_cal_sgn_tress2a",
                "p_scarecrow01x",
                "p_chickencoopcart01x",
                "p_bucketpigfeed02x",
                "p_outhouse03x",
                "p_bench03x",
                "p_bench09x",
                "p_bespoketable01x",
                "p_sawbucktable01x",
                "p_tablesur01x",
                "p_tableset01x",
                "p_haybale01x",
                "p_haybalecover01x",
                "p_haycartcover01x",
                "p_haypile01x",
                "p_haypile04x",
                "p_harness04x",
                "p_jumphurdles01x",
                "p_grp_sdlstand01x_car_sd",
                "p_feedtroughsml01x",
            },
        },
    },
    [10] = {
        Label = "plants outside",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "s_inv_bloodflower_bunch01x", -- prop name
                "engmace_p",
                "prariepoppy_p",
                "s_violetsnowdrop01x",
                "viosnwdrp_p",
                "s_inv_blackberry01x",
                "oregano_p",
                "milkweed_p",
                "p_ambfloorleaves01x",
                "p_ambfloorleaves02x",
                "rdr_bush_hedgecore_aa",
                "rdr_bush_fern_ab_sim",
                "rdr_bush_neat_ba_sim",
                "rdr_bush_neat_bc_sim",
                "rdr_bush_neat_ae_sim",
                "rdr_bush_paradise_aa_sim",
                "p_tree_cedar_decor_02",
                "rdr_bush_neat_ab_sim",
                "rdr_bush_wandering_aa_sim",
                "rdr_bush_soga_aa_sim",
            },
        },
    },
    [11] = {
        Label = "camp",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_ambcloth03x", -- prop name
                "p_bandage01x",
                "p_bandage02x",
                "p_bandage03x",
                "p_bedrollopen01x",
                "p_bedrollopen03x",
                "p_boilercamp01x",
                "p_campfire_06x",
                "p_campfire_coloursmoke01x",
                "p_campfire_under01x",
                "p_campfire_win2_01x",
                "p_campfire_win2_smolder01x",
                "p_campfire01x_nofire",
                "p_campfire01x",
                "p_campfire02_amb",
                "p_campfire02x_script",
                "p_campfire02x",
                "p_campfire02xb",
                "p_campfire03x_nofire",
                "p_campfire03x",
                "p_campfire04x",
                "p_campfire05x_script",
                "p_campfire05x",
                "p_campfirebasin01x",
                "p_campfireburnedout05x",
                "p_campfireburntout02x",
                "p_campfirechar01x",
                "p_campfirecharsml01x",
                "p_campfirecombined01x_off",
                "p_campfirecook01x",
                "p_campfirecook02x",
                "p_campfiredebris01x",
                "p_campfiredirt01x",
                "p_campfiredirt01x002",
                "p_campfiredirtsml01x",
                "p_campfireembers01x",
                "p_campfirefresh01x",
                "p_campfirenosmoke01x",
                "p_campfirerock01x",
                "p_campfirerock02x",
                "p_campfirerocksml01x",
                "p_campfirerocksml02x",
                "p_campfiresmlsmolder01x",
                "p_campfiresmolder01x",
                "p_campfiretemplate01x",
                "p_campfirewhitefish03x",
                "p_canopy66x",
                "p_compass01x",
                "p_cookgrate01x",
                "p_cookgrate02x",
                "p_cot01x",
                "p_coverboar01x",
                "p_coverpronghorn01x",
                "p_coverpronghorn02x",
                "p_craftingpot01x",
                "p_firebarrel01x",
                "p_firesignal01x",
                "p_leantopine01x",
                "p_map01x",
                "p_map02x",
                "p_map03x",
                "p_matchstick01x_pickup",
                "p_prisoncage02x",
                "p_stake01x",
                "p_stick01x",
                "p_stick02x",
                "p_stick03x",
                "p_stick04x",
                "p_stickfirepoker01x",
                "p_stump_01bx",
                "p_stump_01x",
                "p_stump",
                "p_stumpwoodsplit01x",
                "p_stumpwoodsplit02x",
                "p_tentarmypupbroken02x",
                "p_tentarmypupbroken04x",
                "p_tentrack01x",
                "p_tentrolled01x",
                "p_tentrolled02x",
                "p_amb_tent01x",
                "p_amb_tent02x",
                "p_amb_tent03x",
                "p_bedrollclosed_sml01x",
                "p_bedrollclosed_sml02x",
                "p_bedrollclosed01x",
                "p_bedrollclosed03x",
                "p_camp_cup_01x",
                "p_camp_plate_01x",
                "p_camp_plate_02x",
                "p_camp_plate_03x",
                "p_campfire02x_combo",
                "p_campfire02x_dynamic",
                "p_campfirecombined01x",
                "p_campfirecombined02x",
                "p_campfirecombined03x",
                "p_campfirecombined04x",
                "p_campfireprop02x",
                "p_canopycloth",
                "p_canopycloth03x",
                "p_clothesline01x",
                "p_cookfirestructure02x",
                "p_firesticks01x",
                "p_kindlingpile01x",
                "p_leanto02x",
                "p_leanto03x",
                "p_matches01x",
                "p_matchstick01x",
                "p_platedog01x",
                "p_prisoncage01x",
                "p_tarp01x",
                "p_tarp04x",
                "p_tarpbutcher01x",
                "p_tent_leento01x",
                "p_tent_leento02x",
                "p_tent_leento03x",
                "p_tent_leento04x",
                "p_tent0101x",
                "p_tentarmypup01bx",
                "p_tentarmypup01x",
                "p_tentarmypup02x_open",
                "p_tentarmypup02x",
                "p_tentarmypupbroken01x",
                "p_tentarmypupbroken03x",
                "p_tentarmypupbrokensnow01x",
                "p_tentdamaged02x",
                "p_tentmexican01x",
                "p_tentmountainmen01x",
                "p_tentmountainmen02x",
                "p_tentnorth01bx",
                "p_tentnorth01x",
                "p_tentplain01x",
                "p_tentrack02x",
                "p_tentrolled04x",
                "p_tentstripebroken01x",
                "p_amb_mattress04x",
                "p_ambblanketroll01x",
                "p_ambburnbarrel01x",
                "p_ambcart01x",
                "p_ambclothdrape01x_static",
                "p_ambclothhang01x",
                "p_ambclothpile01x",
                "p_ambcorddried01x",
                "p_ambcordfresh01x",
                "p_ambfishbone02x",
                "p_ambfloorfur01x",
                "p_ambfloorfur02x",
                "p_ambfloorleaves01x",
                "p_ambfloorleaves02x",
                "p_ambfloorleaves03x",
                "p_ambfloormoss01x",
                "p_ambfloorplandecor01x",
                "p_ambfloorplantent01x",
                "p_ambfloorplantravel01x",
                "p_ambfloorroll01x",
                "p_ambfloorrug01x",
                "p_ambfloorrug02x",
                "p_ambfloorrug03x",
                "p_ambfloorrug04x",
                "p_ambfloorrug05x",
                "p_ambfloorrug06x",
                "p_ambfloorrug07x",
                "p_ambfloorrug08x",
                "p_ambfloorscrub01x",
                "p_ambfloortarp01x",
                "p_ambforage02x",
                "p_ambframe01x",
                "p_ambframe04x",
                "p_ambpelt01x",
                "p_ambpelt02x",
                "p_ambpeltstack01x",
                "p_ambropedraped01x_static",
                "p_ambropeloop01x",
                "p_ambropepile01x",
                "p_ambstake01x",
                "p_ambstove01x",
                "p_ambtentbark01b",
                "p_ambtentdebris01x",
                "p_ambtentdebris02x",
                "p_ambtentdebris03x",
                "p_ambtentgrass01x",
                "p_ambtentmulch01b",
                "p_ambtentpanel01x",
                "p_ambtentscrub01b",
                "p_ambtentscrub01x",
                "p_ambtentsticks01x",
                "p_ambtentstring01b",
                "p_ambtentswamp01x",
                "p_ambtenttrunk01x",
                "p_bucketcamphob01x",
                "p_bucketcampsav01x",
                "p_camphitchhook01x",
                "p_campropetie02x",
                "p_campropetie03x",
                "p_cratetablemil01x",
                "p_gangbandana01x",
                "p_gangcratecloth01x",
                "p_gangfence01x",
                "p_gangfence02x",
                "p_gangfence03x",
                "p_gangodriscollmask01x",
                "p_gangpost01x",
                "p_gangscarf01x",
                "p_gangwagoncloth02x",
                "p_gangwood01x",
                "p_ladlecampcul01x",
                "p_ladlecamphob01x",
                "p_ladlecampsav01x",
                "p_ladlecampsur01x",
                "p_mp_feedbaghang01x",
                "p_tablehob1x",
                "p_tablesav01x",
                "p_tablesur01x",
                "p_ambbed01x",
                "p_ambbundle01x",
                "p_ambcache01x",
                "p_ambcart02x",
                "p_ambchair01x",
                "p_ambchair02x",
                "p_ambclothdrape01x",
                "p_ambclothhang02x",
                "p_ambclothseat01x",
                "p_ambfishgut02x",
                "p_ambfloorwood01x",
                "p_ambforage01x",
                "p_ambforage03x",
                "p_ambpack01x",
                "p_ambpack02x",
                "p_ambpack04x",
                "p_ambpack05x",
                "p_ambpelt03x",
                "p_ambpeltstring01x",
                "p_ambropedraped01x",
                "p_ambropepile02x",
                "p_ambsack02x",
                "p_ambsticks01x",
                "p_ambtentburlap01b",
                "p_ambtentburlap01x",
                "p_ambtenthide01b",
                "p_ambtenthide01x",
                "p_ambtentleather01b",
                "p_ambtentleather01x",
                "p_ambtentmulch01x",
                "p_ambtentoilskin01b",
                "p_ambtentoilskin01x",
                "p_ambtentpatch01b",
                "p_ambtentpatch01x",
                "p_ambtentplaid01b",
                "p_ambtentplaid01x",
                "p_ambtentrope01x",
                "p_ambtentrope02x",
                "p_ambtentrug01b",
                "p_ambtentrug01x",
                "p_ambtentstring01x",
                "p_ambtentstripe01x",
                "p_ambwoodpile01x",
                "p_ambwoodstack01x",
                "p_barrelladle1x_culture",
                "p_barrelladle1x_hobo",
                "p_barrelladle1x_military",
                "p_barrelladle1x_savage",
                "p_barrelladle1x_survivor",
                "p_bottlecrate_cul",
                "p_bottlecrate_hob",
                "p_bottlecrate_mil",
                "p_bottlecrate_sav",
                "p_bottlecrate_sur",
                "p_bucketcampcul01x",
                "p_bucketcampmil01x",
                "p_chairhob01x",
                "p_chairhob02x",
                "p_chairrusticsav01x",
                "p_gangbed01x",
                "p_gangblanket01x",
                "p_gangframe01x",
                "p_gangtablemake01x",
                "p_gangtablemake02x",
                "p_gangtentlemoyne01x",
                "p_gangtenttarp01x",
                "p_gangwagoncloth01x",
                "p_tablecul01x",
                "s_awningcul",
                "s_awninghob",
                "s_awningmil",
                "s_awningsav",
                "s_awningsur",
                "s_cul_cookfire01x",
                "s_hobo_cookfire01x",
                "s_mil_cookfire01x",
                "s_sav_cookfire01x",
                "s_sur_cookfire01x",
            },
        },
    },
    [12] = {
        Label = "barrier",
        Setup = {
            Items = {
                wood = 1, -- item name -- quantity
            },
            Props = {
                "p_barricadewood_sml01x", -- prop name
                "p_avoidancebound01x",
                "p_barricade01x",
                "p_barricade03x",
                "p_barricade04x",
                "p_barricade05x",
                "p_barricadewood_lrg01x",
                "p_concretesack01x",
                "p_bra_fence01x",
                "p_bra_fence03x",
                "p_bra_fencepost01x",
                "p_chickenfence01x",
                "p_chickenfencepost",
                "p_emrfence02bx",
                "p_emrfence03cx",
                "p_fence01ax",
                "p_fence01bx",
                "p_fence01cx",
                "p_fence01dx",
                "p_fence01ax",
                "p_fence02cx",
                "p_fence02x",
                "p_fence04ax",
                "p_fence04bx",
                "p_fence06ax",
                "p_fence06bx",
                "p_spooni_fence",
            },
        },
    },
}