[PAID] WaveProperties - Properties/Garages Creator That You Need!


Description

WaveProperties is an amazing ESX & QBUS ready resource, allowing you to create properties including garages.With WaveProperties your players can manage anything imaginable.:heart: ( see video ) Every features is configurable and can be adapted to all your tastes!
I highly recommmand you to read available features ^^


Showcase

Watch the new new update showcase
Watch the Old Showcase !


Tebex

WaveResources | Home (tebex.io) - 30€


Features

  • resmon : 0.0ms Closed, 0.3ms opened
  • Property Creator
    • Set up Name,Price, Max number of owners
    • *Set garage limited vehicle spots
    • *~40 ready Interiors ( shells, IPls, default GTA )
    • Store money, items, weapons ( or use your own system )
    • Save, Equip your outfits ( or use your own system )
    • You can add your own properties shells, ipls or locations !
  • Garage System
    • GTA:O style, using scaleforms to display stats & upgrades
    • Upgrades are saved
    • Configure if they keep damages or not
    • Enable/Disable Storage of stolen or NPC vehicles
    • Enable or not vehicle trackers
    • You can add your own garages shells, ipls or locations !
  • Keys System
    • Give and Delete Keys that you gave
    • Manage tenants accesses ( Garage,Storage,Dressing)
    • If they have the key, they can have access to your saved datas ( if you allowed them )
  • Furnitures System
    • *You can buy furnishs and place them where you want in the property
    • You can add your own objects hashes, already +100 ready
  • Properties System
    • Visit Properties & Garages before buy
    • Rent the property, you pay each day lower amount but limited permisisons
    • Resell properties with taxes
    • Purchase Properties
    • You can ring the doorbell
  • Others
    • Set max number of properties a player can purchase
    • You can use a job OR whitelist players to create, edit, or delete properties
    • Money can go in job society money if enabled
    • Refresh & Save Properties Commands
    • Anti-Glitchs ( no duplication )
    • Nice Blips ( shows you if you own or if the property is for sale )
    • *Customizable Notifications & Markers
    • built-in RageUI edited
    • Multiples Languages supported
    • ESX & QBUS Ready
  • And more…

Config Example

waveProperties = {
    MenuColor = {R = 0, G = 0, B = 0},
    frameWork = 'ESX', -- ESX  / QBCORE  ||| VRP not supported yet
    getSharedObject = "esx:getSharedObject", --may be QBCore:GetObject too
    Language = "EN", --FR/EN/DE/ES
    OpenKey = "INSERT", -- https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/
    Currency = "$",
    getSkinEvent = 'skinchanger:getSkin',
    setClothesEvent = "skinchanger:loadClothes",
    enableJobSystem = true,
    jobName = "realestateagent",
    enableSocietyMoney = true,
    giveSocietyMoneyFunc = function(money) --server side function, argument money type int
    end,
    removeSocietyMoneyFunc = function(money) --server side function, argument money type int
    end,
    InteriorList = { --you can include shell & other interiors objects

        -- 3 types: shell = streamed textures, ipl = ipl, position = default gta map
        [1] = {type = "shell",label = "Trevor",name = "shell_trevor",offset = vector3(0.17, -3.51, -1.39)},
        [2] = {type = "shell",label = "v16 mid",name = "shell_v16mid",offset = vector3(1.37, -14.0, -1.0)},
        [3] = {type = "shell",label = "Lester",name = "shell_lester",offset = vector3(-1.58, -5.84, -1.36)},
        [4] = {type = "shell",label = "Ranch",name = "shell_ranch",offset = vector3(-0.741, -9.142, -2.41)},
        [5] = {type = "shell",label = "Trailer",name = "shell_trailer",offset = vector3(-1.4, -1.7, -1.0)},
        [6] = {type = "shell",label = "v16 Low",name = "shell_v16low",offset = vector3(4.6, -5.7, -2.0)},
        [7] = {type = "shell",label = "High End",name = "shell_highend",offset = vector3(-22.0, -0.4, 6.0)},
        [8] = {type = "shell",label = "High End v2",name = "shell_highendv2",offset = vector3(-10.0, 0.87, 1.0)},
        [9] = {type = "shell",label = "Michael",name = "shell_michael",offset = vector3(-8.7, 5.571, -4.92)},

        --ipl
        [10] = {type = "ipl",label = "Modern 1 Apartment",name = "apa_v_mp_h_01_a",position = vector3(-786.8663, 315.7642, 217.6385), offset = vector3(0.0,0.0,0.0)},
        [11] = {type = "ipl",label = "Modern 2 Apartment",name = "apa_v_mp_h_01_c",position = vector3(-786.9563, 315.6229, 187.9136), offset = vector3(0.0,0.0,0.0)},
        [12] = {type = "ipl",label = "Modern 3 Apartment",name = "apa_v_mp_h_01_b",position = vector3(-774.0126, 342.0428, 196.6864), offset = vector3(0.0,0.0,0.0)},
        [13] = {type = "ipl",label = "Mody 1 Apartment",name = "apa_v_mp_h_02_a",position = vector3(-787.0749, 315.8198, 217.6386), offset = vector3(0.0,0.0,0.0)},
        [14] = {type = "ipl",label = "Mody 2 Apartment",name = "apa_v_mp_h_02_c",position = vector3(-786.8195, 315.5634, 187.9137), offset = vector3(0.0,0.0,0.0)},
        [15] = {type = "ipl",label = "Mody 3 Apartment",name = "apa_v_mp_h_02_b",position = vector3(-774.1382, 342.0316, 196.6864), offset = vector3(0.0,0.0,0.0)},
        [16] = {type = "ipl",label = "Vibrant 1 Apartment",name = "apa_v_mp_h_03_a",position = vector3(-786.6245, 315.6175, 217.6385), offset = vector3(0.0,0.0,0.0)},
        [17] = {type = "ipl",label = "Vibrant 2 Apartment",name = "apa_v_mp_h_03_c",position = vector3(-786.9584, 315.7974, 187.9135), offset = vector3(0.0,0.0,0.0)},
        [18] = {type = "ipl",label = "Vibrant 3 Apartment",name = "apa_v_mp_h_03_b",position = vector3(-774.0223, 342.1718, 196.6863), offset = vector3(0.0,0.0,0.0)},
        [19] = {type = "ipl",label = "Sharp 1 Apartment",name = "apa_v_mp_h_04_a",position = vector3(-787.0902, 315.7039, 217.6384), offset = vector3(0.0,0.0,0.0)},
        [20] = {type = "ipl",label = "Sharp 2 Apartment",name = "apa_v_mp_h_04_c",position = vector3(-787.0155, 315.7071, 187.9135), offset = vector3(0.0,0.0,0.0)},
        [21] = {type = "ipl",label = "Sharp 3 Apartment",name = "apa_v_mp_h_04_b",position = vector3(-773.8976, 342.1525, 196.6863), offset = vector3(0.0,0.0,0.0)},
        [22] = {type = "ipl",label = "Monochrome 1 Apartment",name = "apa_v_mp_h_05_a",position = vector3(-786.9887, 315.7393, 217.6386), offset = vector3(0.0,0.0,0.0)},
        [23] = {type = "ipl",label = "Monochrome 2 Apartment",name = "apa_v_mp_h_05_c",position = vector3(-786.8809, 315.6634, 187.9136), offset = vector3(0.0,0.0,0.0)},
        [24] = {type = "ipl",label = "Monochrome 3 Apartment",name = "apa_v_mp_h_05_b",position = vector3(-774.0675, 342.0773, 196.6864), offset = vector3(0.0,0.0,0.0)},
        [25] = {type = "ipl",label = "Seductive 1 Apartment",name = "apa_v_mp_h_06_a",position = vector3(-787.1423, 315.6943, 217.6384), offset = vector3(0.0,0.0,0.0)},
        [26] = {type = "ipl",label = "Seductive 2 Apartment",name = "apa_v_mp_h_06_c",position = vector3(-787.0961, 315.815, 187.9135), offset = vector3(0.0,0.0,0.0)},
        [27] = {type = "ipl",label = "Seductive 3 Apartment",name = "apa_v_mp_h_06_b",position = vector3(-773.9552, 341.9892, 196.6862), offset = vector3(0.0,0.0,0.0)},
        [28] = {type = "ipl",label = "Regal 1 Apartment",name = "apa_v_mp_h_07_a",position = vector3(-787.029, 315.7113, 217.6385), offset = vector3(0.0,0.0,0.0)},
        [29] = {type = "ipl",label = "Regal 2 Apartment",name = "apa_v_mp_h_07_c",position = vector3(-787.0574, 315.6567, 187.9135), offset = vector3(0.0,0.0,0.0)},
        [30] = {type = "ipl",label = "Regal 3 Apartment",name = "apa_v_mp_h_07_b",position = vector3(-774.0109, 342.0965, 196.6863), offset = vector3(0.0,0.0,0.0)},
        [31] = {type = "ipl",label = "Aqua 1 Apartment",name = "apa_v_mp_h_08_a",position = vector3(-786.9469, 315.5655, 217.6383), offset = vector3(0.0,0.0,0.0)},
        [32] = {type = "ipl",label = "Aqua 2 Apartment",name = "apa_v_mp_h_08_c",position = vector3(-786.9756, 315.723, 187.9134), offset = vector3(0.0,0.0,0.0)},
        [33] = {type = "ipl",label = "Aqua 3 Apartment",name = "apa_v_mp_h_08_b",position = vector3(-774.0349, 342.0296, 196.6862), offset = vector3(0.0,0.0,0.0)},

        [34] = {type = "position",label = "Low End Apartment",name = "no_ipl",position = vector3(261.4586, -998.8196, -99.00863), offset = vector3(0.0,0.0,0.0)},
        [35] = {type = "position",label = "4 Integrity Way, Apt 28",name = "no_ipl",position = vector3(-18.07856, -583.6725, 79.46569), offset = vector3(0.0,0.0,0.0)},
        [36] = {type = "position",label = "4 Integrity Way, Apt 30",name = "no_ipl",position = vector3(-35.31277, -580.4199, 88.71221), offset = vector3(0.0,0.0,0.0)},
        [37] = {type = "position",label = "Dell Perro Heights, Apt 4",name = "no_ipl",position = vector3(-1468.14, -541.815, 73.4442), offset = vector3(0.0,0.0,0.0)},
        [38] = {type = "position",label = "Dell Perro Heights, Apt 7",name = "no_ipl",position = vector3(-1477.14, -538.7499, 55.5264), offset = vector3(0.0,0.0,0.0)},
        [39] = {type = "position",label = "Richard Majestic, Apt 2",name = "no_ipl",position = vector3(-915.811, -379.432, 113.6748), offset = vector3(0.0,0.0,0.0)},
        [40] = {type = "position",label = "Tinsel Towers, Apt 42",name = "no_ipl",position = vector3(-614.86, 40.6783, 97.60007), offset = vector3(0.0,0.0,0.0)},
        [41] = {type = "position",label = "EclipseTowers, Apt 3",name = "no_ipl",position = vector3(-773.407, 341.766, 211.397), offset = vector3(0.0,0.0,0.0)},
        [42] = {type = "position",label = "3655 Wild Oats Drive",name = "no_ipl",position = vector3(-169.286, 486.4938, 137.4436), offset = vector3(0.0,0.0,0.0)},
        [43] = {type = "position",label = "2044 North Conker Avenue",name = "no_ipl",position = vector3(340.9412, 437.1798, 149.3925), offset = vector3(0.0,0.0,0.0)},
        [44] = {type = "position",label = "2045 North Conker Avenue",name = "no_ipl",position = vector3(373.023, 416.105, 145.7006), offset = vector3(0.0,0.0,0.0)},
        [45] = {type = "position",label = "2862 Hillcrest Avenue",name = "no_ipl",position = vector3(-676.127, 588.612, 145.1698), offset = vector3(0.0,0.0,0.0)},
        [46] = {type = "position",label = "2868 Hillcrest Avenue",name = "no_ipl",position = vector3(-763.107, 615.906, 144.1401), offset = vector3(0.0,0.0,0.0)},
        [47] = {type = "position",label = "2874 Hillcrest Avenue",name = "no_ipl",position = vector3(-857.798, 682.563, 152.6529), offset = vector3(0.0,0.0,0.0)},
        [48] = {type = "position",label = "2677 Whispymound Drive",name = "no_ipl",position = vector3(120.5, 549.952, 184.097), offset = vector3(0.0,0.0,0.0)},
        [49] = {type = "position",label = "2133 Mad Wayne Thunder",name = "no_ipl",position = vector3(-1288, 440.748, 97.69459), offset = vector3(0.0,0.0,0.0)},

    },
    GarageList = {
        -- 3 types: shell = streamed textures, ipl = ipl, position = default gta map
        [1] = {type="position",label = "2 Places",ipl = "no_ipl",position = vector3(179.04, -1005.456, -99.65707),offset = vector3(0.0,0.0,0.0),parking = {
            {vector = vector3(171.63,-1003.75,-99.99), heading = 180.0},
            {vector = vector3(174.92,-1003.75,-99.99), heading = 180.0},
        }},
        [2] = {type="position",label = "6 Places",ipl = "no_ipl",position = vector3(206.99,-998.994, -99.66071),offset = vector3(0.0,0.0,0.0),parking = {
            {vector = vector3(193.36,-997.2,-99.99), heading = 180.0},
            {vector = vector3(198.0,-997.2,-99.99), heading = 180.0},
            {vector = vector3(202.62,-997.2,-99.99), heading = 180.0},
            {vector = vector3(193.36,-1002.477,-99.99), heading = 180.0},
            {vector = vector3(198.0,-1002.477,-99.99), heading = 180.0},
            {vector = vector3(202.62,-1002.477,-99.99), heading = 180.0},

        }},
        [3] = {type="position",label = "10 Places",name = "no_ipl",position = vector3(240.67, -1004.76, -99.66071),offset = vector3(0.0,0.0,0.0),parking = {
            {vector = vector3(223.19,-998.74,-99.99), heading = 320.0},
            {vector = vector3(223.19,-994.58,-99.99), heading = 320.0},
            {vector = vector3(223.19,-990.58,-99.99), heading = 320.0},
            {vector = vector3(223.19,-986.6,-99.99), heading = 320.0},
            {vector = vector3(223.19,-982.6,-99.99), heading = 320.0},
            {vector = vector3(233.03,-998.74,-99.99), heading = 130.0},
            {vector = vector3(233.03,-994.58,-99.99), heading = 130.0},
            {vector = vector3(233.03,-990.58,-99.99), heading = 130.0},
            {vector = vector3(233.03,-986.6,-99.99), heading = 130.0},
            {vector = vector3(233.03,-982.6,-99.99), heading = 130.0},
        }},
        [4] = {type="ipl",label = "Garage CEO",name = "imp_dt1_02_cargarage_a",props = {"garage_decor_01","numbering_style01_n1","lighting_option01"},place = 10,position = vector3(-191.0133, -579.1428, 135.0000),offset = vector3(0.0,0.0,0.0),parking = {
            --vehicles positions in garage
            --{vector = vector3(0.0,0.0,0.0), heading = 0.0},
        }},
        [5] = {type="ipl",label = "Garage ImpExp",name = "imp_impexp_interior_placement_interior_1_impexp_intwaremed_milo_",props = {"branded_style_set","car_floor_hatch","door_blocker"},place = 10,position = vector3(994.5925, -3002.594, -39.64699),offset = vector3(0.0,0.0,0.0),parking = {
            --vehicles positions in garage
            --{vector = vector3(0.0,0.0,0.0), heading = 0.0},
        }},
    },
    furnitureMenuCommand = "furniture",
    ObjectsList = { --https://gtahash.ru/
        --you can add infinite number of props and categories
        ["Seating"] = {
            {label = "Seating 1", name = "prop_couch_lg_07",price=0},
            {label = "Seating 2", name = "prop_yaught_sofa_01",price=0},
            {label = "Seating 3", name = "prop_couch_sm2_07",price=0},
            {label = "Seating 4", name = "prop_couch_lg_02",price=0},
            {label = "Seating 5", name = "prop_couch_sm_05",price=0},
            {label = "Seating 6", name = "prop_couch_lg_05",price=0},
            {label = "Seating 7", name = "prop_yaught_chair_01",price=0},
            {label = "Seating 8", name = "prop_couch_lg_06",price=0},
            {label = "Seating 9", name = "prop_couch_lg_08",price=0},
            {label = "Seating 10", name = "prop_couch_sm_06",price=0},
            {label = "Seating 11", name = "prop_couch_01",price=0},
            {label = "Seating 12", name = "prop_couch_03",price=0},
            {label = "Seating 13", name = "prop_couch_04",price=0},
            {label = "Seating 14", name = "prop_gc_chair02",price=0},
            {label = "Seating 15", name = "prop_armchair_01",price=0},
            {label = "Seating 16", name = "prop_couch_sm1_07",price=0},
            {label = "Seating 17", name = "prop_couch_sm_02",price=0},
            {label = "Seating 18", name = "prop_couch_sm_02",price=0},
            {label = "Seating 19", name = "prop_table_04_chr",price=0},
            {label = "Seating 20", name = "prop_table_07",price=0},
            {label = "Seating 21", name = "prop_chair_01a",price=0},
            {label = "Seating 22", name = "prop_clown_chair",price=0},
            {label = "Seating 23", name = "prop_chateau_chair_01",price=0},
            {label = "Seating 24", name = "prop_chair_02",price=0},
            {label = "Seating 25", name = "prop_chair_05",price=0},
            {label = "Seating 26", name = "prop_chair_07",price=0},
            {label = "Seating 27", name = "prop_table_01_chr_a",price=0},
            {label = "Seating 28", name = "prop_chair_pile_01",price=0},
            {label = "Seating 29", name = "prop_stool_01",price=0},
            {label = "Seating 30", name = "prop_table_02_chr",price=0},
            {label = "Seating 31", name = "prop_chair_10",price=0},
            {label = "Seating 32", name = "prop_table_08",price=0},
        },
        ["Tables"] = {
            {label = "Table 1", name = "prop_yacht_table_01",price=0},
            {label = "Table 2", name = "prop_yacht_table_02",price=0},
            {label = "Table 3", name = "prop_yacht_table_03",price=0},
            {label = "Table 4", name = "prop_ld_farm_table02",price=0},
            {label = "Table 5", name = "prop_ld_farm_table01",price=0},
            {label = "Table 6", name = "prop_table_05",price=0},
            {label = "Table 7", name = "prop_table_07",price=0},
            {label = "Table 8", name = "prop_table_03",price=0},
            {label = "Table 9", name = "prop_table_03b",price=0},
            {label = "Table 10", name = "prop_table_02",price=0},
            {label = "Table 11", name = "prop_chateau_table_01",price=0},
            {label = "Table 12", name = "prop_table_06",price=0},
            {label = "Table 13", name = "prop_tablesmall_01",price=0},
            {label = "Table 14", name = "prop_rub_table_02",price=0},
            {label = "Table 15", name = "prop_pooltable_3b",price=0},
            {label = "Table 16", name = "prop_table_tennis",price=0},
            {label = "Table 17", name = "prop_pooltable_02",price=0},

        },
        ["Beds"] = {
            {label = "Bed 1", name = "p_lestersbed_s",price=0},
            {label = "Bed 2", name = "p_mbbed_s",price=0},
            {label = "Bed 3", name = "p_v_res_tt_bed_s",price=0},
            {label = "Bed 4", name = "v_res_msonbed_s",price=0},
        },
        ["Kitchen"] = {
            {label = "Kitchen 1", name = "v_ret_fh_plate4",price=0},
            {label = "Kitchen 2", name = "v_res_mchopboard",price=0},
            {label = "Kitchen 3", name = "prop_micro_01",price=0},
            {label = "Kitchen 4", name = "v_res_fa_potcof",price=0},
            {label = "Kitchen 5", name = "v_ret_fh_fry02",price=0},
            {label = "Kitchen 6", name = "v_res_mcofcupdirt",price=0},
            {label = "Kitchen 7", name = "v_ind_cfcup",price=0},
            {label = "Kitchen 8", name = "prop_knife",price=0},
            {label = "Kitchen 9", name = "prop_pot_05",price=0},
            {label = "Kitchen 10", name = "prop_utensil",price=0},
            {label = "Kitchen 11", name = "prop_whisk",price=0},
            {label = "Kitchen 12", name = "prop_fridge_01",price=0},
            {label = "Kitchen 13", name = "v_res_tt_mug2",price=0},
            {label = "Kitchen 14", name = "v_res_mutensils",price=0},
            {label = "Kitchen 15", name = "prop_copper_pan",price=0},
            {label = "Kitchen 16", name = "v_res_mbowl",price=0},
            {label = "Kitchen 17", name = "prop_kitch_juicer",price=0},
            {label = "Kitchen 18", name = "prop_micro_02",price=0},
            {label = "Kitchen 19", name = "prop_washer_03",price=0},
            {label = "Kitchen 20", name = "v_res_fridgemoda",price=0},
            {label = "Kitchen 21", name = "v_res_pestle",price=0},
            {label = "Kitchen 22", name = "v_ret_fh_pot05",price=0},
            {label = "Kitchen 23", name = "v_res_cakedome",price=0},
            {label = "Kitchen 24", name = "v_res_fridgemodsml",price=0},
            {label = "Kitchen 25", name = "prop_pot_rack",price=0},
            {label = "Kitchen 26", name = "prop_kitch_pot_huge",price=0},
            {label = "Kitchen 27", name = "v_ret_fh_washmach",price=0},
            {label = "Kitchen 28", name = "prop_toaster_01",price=0},
            {label = "Kitchen 29", name = "v_res_mkniferack",price=0},
            {label = "Kitchen 30", name = "v_res_tre_fridge",price=0},
            {label = "Kitchen 31", name = "v_ret_ta_paproll2",price=0},

        },
    },
    Blips = {
        myProperty = {
            Sprite = 40,
            Color = 2,
            Scale = 0.7,
        },
        forSaleProperties = {
            Sprite = 411,
            Color = 26,
            Scale = 0.7,
        }
    },
    Markers = {
        useCustom = false,--if u want to use your marker function
        customMarkerFunction = function(coords)
            --DrawMarker
        end,
        markerDistance = 25.0,
        enableText = true,
        textDistance = 10.0,
        notificationDistance = 5.0,
        menuDrawDistanceFromMarker = 5.0,
        floatingNotification = true,
        helpNotification = false,
    },
    Notifications = {
        useCustom = false,--if u want to use your notification function
        customNotificationFunction = function(title,message)
            --redirect to your notification event for example
        end,
    },
    maxNumberOfPropertiesCanBePurchasedFromPlayer = 5, -- maximum number of properties that can be purchased by the same player
    resellPropertyRate = 0.5, --BETWEEN 0.0 AND 1.0 (0% - 100%) ex 0.5 = 50% of the sell price
    canSellToPlayers = true,
    acceptSellCommand = "accept",
    declineSellCommand = "decline",
    canStoreNpcVehicles = false,
    canStoreStolenVehicles = false,
    vehicleTracker = true,
    maxNumberOutfits = 10,
    maxNumberOfKeysOwner = 3, --max number of players that can have keys of a same property
    enableRents = true,
    RentDivider = 200, --he will pay property price divided by this number evey days
    payRentHour = 22,
    payRentFunc = function(license,amount) -- rockstar license and rent amount
        MySQL.Async.execute('UPDATE users SET bank = bank - @bank WHERE identifier = @identifier', {
            ['@bank']       = amount,
            ['@identifier'] = license
        }) -- you need to edit this function, depends of your framework
    end,
    enableRobberies = true,
    useCustomStorage = false, --enable if you want to use inventory hud for example
    storageFunctionWhenPressedOpenKey = function(propertyID) -- function when the player press the key to open storage, u need to use propertyID
    end,
    useCustomWardRobe = false, --enable if you want to use your own wardrob, but it will not be synced with the property
    customWardRobeFunction = function(propertyID) -- propertyID is optional here
    end,
    ringingAcceptKey = "Y",
    ringingRefuseKey = "X",
    KeepVehicleDamages = true,
    AuthorizedStaffs = {
        ["license:171a23d246444c95bd897754beb26aa197ab3570"] = true,
    },
    savingTimer = 1, --save every 1 minute , recommanded
    refreshPropertiesCommandName = "refreshproperties",
    savePropertiesCommandName = "saveproperties",
}

Check out our other resources
:house: WaveProperties - Properties/Garages Creator That You Need !
:brain: WaveSkills - Skills & Abilities
:gift: WavePlayTimeRewards - Rewards your players for their playtime
:gun: Animated Weapons Skins w/ URL
:grinning: WaveWZ-Hud -WarZone Based HUD
:red_car: WaveVehiclesPreview - Vehicles Catalog & Exhibitions

4 Likes

Nice release ! nice work !

About * Property Furnitures [WIP] = you can manage your furnitures inside ?

1 Like

Hey ! ty
yes you will can once I finish this feature

1 Like

Thx for your answer and last question : it’s like a job ? employed etc ? :slight_smile:

1 Like

you can make it a job (the people who have the job you configure will be able to create, modify, or delete the properties) or give access to this menu by putting its identifier in the list of authorized players

1 Like

any dependencies?

1 Like

only mysql-async

is the code escrow locked or can i edit it to my liking?

1 Like

yes, we’re using asset escrow. however we offer a complete configuration file to edit the resource to your taste

So you can’t place furniture down with this yet?

1 Like

as you said, not yet, but working on

Wouaaa Thank you !

1 Like

:house: WaveProperties UPDATED ! v1.1.0

・you are no longer blocked when you log out of a garage or property
・added options to enable/disable storage of npc cars or stolen cars
・you can use your own hud system for the property closet

Source code included when we buy it?

1 Like

Hi, unfortunately, no
we use escrow

:house: WaveProperties UPDATED ! v1.1.1

・Fixed some minors errors
・added options to delete outfits and reworked the dressing menu
・Added a maximum number of properties that a player can buy ( configs files )

Hello Ayzen !

Are you have a deadline about the interior house with furnitures ?

1 Like

hey, 1-2 weeks

Thx for your answer Ayzen, good luck !

1 Like

There is an option to sell houses between players ?
if somebody already got the house and he want to sell it to other player

1 Like