---------------------------------------------------------------------------------------------- -------------------------------------| BRUTAL HOUSING :) |------------------------------------ ---------------------------------------------------------------------------------------------- --[[ Hi, thank you for buying our script, We are very grateful! For help join our Discord server: https://discord.gg/85u2u5c8q9 More informations about the script: https://docs.brutalscripts.com --]] Config = { Core = 'QBCORE', -- 'ESX' / 'QBCORE' | Other core setting on the 'core' folder. VoiceSytem = 'yaca-voice', -- "pma-voice" / "mumble" / "SaltyChat" Inventory = 'qb_inventory_new', -- 'ox_inventory' / 'qb_inventory_old'/ 'qb_inventory_new' / 'quasar_inventory' / 'chezza_inventory' / 'codem_inventory' / 'core_inventory' // Custom can be add in the cl_utils.lua!!! Wardrobe = 'illenium_appearance', -- 'default' / 'ak47_clothing' / 'codem_apperance' / 'fivem_appearance' / 'illenium_appearance' / 'qb_clothing' / 'raid_clothes' / 'rcore_clothes' / 'rcore_clothing' / 'sleek_clothestore' / 'tgiann_clothing' // Custom can be add in the cl_utils.lua!!! TextUI = 'ox_lib', -- false / 'brutal_textui' / 'ox_lib' / 'okokTextUI' / 'ESXTextUI' / 'QBDrawText' // Custom can be add in the cl_utils.lua!!! BrutalKeys = true, -- Buy here: https://store.brutalscripts.com BrutalPoliceJob = false, -- Buy here: https://store.brutalscripts.com | Better connection BrutalNotify = false, -- Buy here: (4€+VAT) https://store.brutalscripts.com | Or set up your own notify >> cl_utils.lua SteamName = false, -- true = Steam name | false = character name AdminGroups = {'superadmin', 'admin', 'mod', 'god'}, HousingDataPrint = true, -- Server side print, like that: Brutal Housing: Houses: 1 Apartments: 97 Garages: 9 DataStorage = { --[[ optimized = Saves the data when the script is restarted, the server is shut down or restarted, or during a scheduled server restart. events: "txAdmin:events:serverShuttingDown" & "txAdmin:events:scheduledRestart" or fixed restart times. resource_heavy = all data will be saved immediately, this is very stressful for the server so we don't recommend using this, but the choice is up to you. ]]-- Type = "resource_heavy", -- "optimized" / "resource_heavy" Restarts = {}, -- example: "11:59" | Save the data 1 minute before restart. Save data at 15:59 instead of 16:00 }, Blips = { available = true, availableHouse = {label = "Kaufbares Haus", size = 0.7, sprite = 40, color = 2}, availableGarage = {label = "Kaufbare Garage", size = 0.7, sprite = 357, color = 2}, owned = false, myHouse = {label = "Mein Haus", size = 0.7, sprite = 40, color = 53}, myGarage = {label = "Meine Garage", size = 0.7, sprite = 357, color = 53}, hasKeyHouse = {label = "Haus", size = 0.7, sprite = 40, color = 53}, hasKeyGarage = {label = "Haus", size = 0.7, sprite = 40, color = 53}, ownedHouse = {label = "Haus", size = 0.7, sprite = 40, color = 1}, ownedGarage = {label = "Garage", size = 0.7, sprite = 357, color = 1}, police = true, burglarAlarm = {label = "Einbruch Alarm", size = 1.0, sprite = 161, color = 1}, }, MaxProperties = 12, -- Maximum number of properties a player can own MaxObject = 50, -- Maximum placing object, 50-50 by default, outside and inside separately MaxBargainPercent = 5, -- Maximum bargain rate in percentage | Bargain rate i random between 0 and this value MaxOutsideFurnitureDistance = 50.0, -- Maximum Outside furniture distance from the door MaxDoorlockDistance = 50.0, -- Max doorlock distance from the property's door. StashLimit = 3, -- Maximum stash per property. InstantSalePurchasePrice = 0.9, -- 100 000$ * 0.9 = 90 000$ | The player can immediately sell his property for this much compared to the base price. DelayedSalePurchasePrice = 1.2, -- 100 000$ * 1.2 = 120 000$ | This is the maximum price a player can sell the house he has bought. DeleteInactiveProperty = {use = false, days = 45}, -- -- If use is true, the property will be deleted if the player does not use it for X days. | Only the owned ones. CopJobs = {"police", "sheriff"}, -- Cop jobs GarageUpgrade = { Repair = {use = true, time = 48, price = 25000}, -- The car stored in the garage will be repaired after 48hours. Clean = {use = true, time = 24, price = 5000} -- The car stored in the garage will be cleaned after 24hours. }, ForeclosureDebtThreshold = 1000, -- If the owner's debt exceeds $1000, the property will go into foreclosure. Utilities = { BillingCycle = 7, -- The default billing cycle for utilities is every 7 days. RentalPrice = 0.004, -- 0.4% rental fee based on property price | 100,000$ * 0.004 = 400$ ElectricityPrice = 0.0005, GasPrice = 0.00025, WaterPrice = 0.0001, WifiUnlockPrice = 5000, -- One-time fee WifiPrice = 70, -- Fix price }, NewKeyPrice = 25, LockReplacementPrice = 100, CCTVStationRepairPrice = 250, Stash = { Slots = 100, Weight = 1000000, }, Security = { DatabaseDesroyEnabled = true, -- true / false Objects = { cameras = {"prop_cs_cctv", "prop_cctv_cam_01b", "bzzz_electro_digital_bell_blue", "bzzz_electro_digital_bell_red", "bzzz_electro_digital_bell_green", "bzzz_electro_digital_bell_yellow", "bzzz_electro_digital_bell_purple"}, databases = {"hei_prop_heist_pc_01", "prop_dyn_pc", "prop_dyn_pc_02", "prop_pc_01a", "prop_pc_02a"} }, Levels = { [0] = { alertToPolice = false, maxAttempts = 6, showIntruderName = false }, [1] = { price = 4750, alertToPolice = true, maxAttempts = 4, showIntruderName = false }, [2] = { price = 9500, alertToPolice = true, maxAttempts = 2, showIntruderName = true }, [3] = { price = 25000, alertToPolice = true, maxAttempts = 0, -- if it is 0, there is no chance to break into the house showIntruderName = true }, }, }, BreakIn = { use = true, minimumCopsCount = 0, requiredItem = 'lockpick', removeItem = true }, Raid = { use = true, allowedJobs = { { job = "police", minGrade = 0 }, } }, RealEstateagents = { ProfitRatioPercent = 6, -- Profit share of the real estate agency based on the purchase price | 6 = 6% of the property price Jobs = { ["dynasty"] = { -- job name [0] = { label = 'Trainee', -- Rank name permissions = { -- Permissions canManageProperties = false, -- Created property management balanceMenu = false -- Balance Menu } }, [1] = { label = 'Agent', permissions = { canManageProperties = true, balanceMenu = false } }, [2] = { label = 'Senior Agent', permissions = { canManageProperties = true, balanceMenu = true } } }, -- you can add more jobs too. } }, Commands = { MyProperties = { Command = 'myproperties', Suggestion = 'To manage your propertys', Control = 'F7', -- Controls list: https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/ }, ServerDestroy = { Command = 'serverdestroy', Suggestion = 'To destroy the camera server', requiredItem = 'laptop' }, GetHousingVehicleBack = { Command = 'gethousingvehicleback', -- /gethousingvehicleback all | /gethousingvehicleback DHR 432 Suggestion = 'To get back your vehicle(s)', }, -- Admin / Real Estate -- StaffMode = { Command = 'hstaff', Suggestion = 'To switch Housing Staff mode', }, Properties = { Command = 'properties', Suggestion = 'To open the propertys menu', }, CreateHouse = { Command = 'createhouse', Suggestion = 'To create a house', }, CreateGarage = { Command = 'creategarage', Suggestion = 'To create a garage', }, }, ----------------------------------------------------------- -----------------------| TRANSLATE |----------------------- ----------------------------------------------------------- NUILanguage = "de", -- "en", "es", "fr", "de", "pt", "it", "pl", "nl", "ru", "tr", "hu", "ro", "cs", "sv", "ar" MoneyForm = '$', -- Money form Locales = { Stash = "Stash", None = "None", AdminRemoved = "Admin removed", ShellPlacement = "Shell Placement", DoorLocation = "Door Location", VehiclePlacement = "Vehicle Placement", FurniturePlacement = "Furniture Placement", NewCoords = "Set the new coords", MovingFreecam = "Moving Freecam", GoBack = "Go Back", ObjectMovement = "Object movement", ObjectVertical = "Object Vertical Movement", ObjectRotate = "Object Rotate", FinishEditing = "Finish Editing", TranslateMode = "Translate Mode", CameraFix = "Camera Fix", DoneEditing = "Done Editing", BreakIn = "A burglar broke into the house! Go to the designated place!", Messages = { Rent = {title = "Rent", message = "You have started renting the property."}, StopRent = {title = "Rental stopped", message = "The rental of the property has been stopped."}, Purchase = {title = "Purchase", message = "You have purchased the property."}, LevelUpgrade = {title = "Level Upgrade", message = "Success upgrade: Level"}, BrakeIn = {title = "Break-in", message = "Someone has broken into the property:"}, Raid = {title = "Raid", message = "Police raided the property."}, WifiUnlock = {title = "Wifi", message = "The Wifi has been connected!"}, CleaningUnlock = {title = "Cleaning", message = "Vehicle cleaning function now available"}, RepairingUnlock = {title = "Repairing", message = "Vehicle repairing function now available"}, DoorLockReplacement = {title = "Lock replacement", message = "You have successfully changed the lock on your property!"}, Rename = {title = "Property renaming", message = "New name of the property:"}, Unknown = "Unknown", }, CCTV = "BACK: ~INPUT_CELLPHONE_CANCEL~\nUP/DOWN: ~INPUT_CELLPHONE_UP~ & ~INPUT_CELLPHONE_DOWN~\nLEFT/RIGHT: ~INPUT_CELLPHONE_LEFT~ & ~INPUT_CELLPHONE_RIGHT~", CCTVSetup = "BACK: ~INPUT_CELLPHONE_CANCEL~\nUP/DOWN: ~INPUT_CELLPHONE_UP~ & ~INPUT_CELLPHONE_DOWN~\nLEFT/RIGHT: ~INPUT_CELLPHONE_LEFT~ & ~INPUT_CELLPHONE_RIGHT~\nSETUP: ~INPUT_FRONTEND_RDOWN~", }, Texts = { [1] = {'[E] - Storage', 38}, [2] = {'[E] - Wardrobe', 38}, }, DoorTexts = { ["entry"] = {'E', 'Entry', 38}, ["leave"] = {'E', 'Leave', 38}, ["garage"] = {'X', 'Garage', 73}, ["house"] = {'X', 'House', 73}, ["open"] = {'G', 'Open the door', 47}, ["close"] = {'G', 'Close the door', 47}, ["purchase"] = {'E', 'Purchase menu', 38}, ["knock"] = {'E', 'Knocking', 38}, ["raid"] = {'G', 'Raid', 47}, ["breakin"] = {'G', 'Break In', 47}, ["inforeclosure"] = {'E', 'In foreclosure', 38} }, -- Notify function EDITABLE >> cl_utils.lua Notify = { [1] = {"Housing", "You can only enter with your own car!", 5000, "error"}, [2] = {"Housing", "No more space in the garage!", 5000, "error"}, [3] = {"Housing", "The door is closed!", 5000, "error"}, [4] = {"Housing", "You already have a property near you, move away!", 5000, "error"}, [5] = {"Housing", "The property name must be 3-16 characters long!", 5000, "error"}, [6] = {"Housing", "The URL must start with 'http://' or 'https://'", 5000, "error"}, [7] = {"Housing", "The price must be more than ZERO!", 5000, "error"}, [8] = {"Housing", "You have entered an invalid or already used garage id!", 5000, "error"}, [9] = {"Housing", "You have successfully created it!", 5000, "success"}, [10] = {"Housing", "Invalid property ID!", 5000, "error"}, [11] = {"Housing", "You don't have enough money!", 5000, "error"}, [12] = {"Housing", "You can sell it for a maximum of 20% more than what you bought it for!", 5000, "error"}, [13] = {"Housing", "You don't own it, so you can't sell it!", 5000, "error"}, [14] = {"Housing", "You have successfully purchased!", 5000, "success"}, [15] = {"Housing", "The house owner is currently unavailable. Please contact them by phone!", 5000, "error"}, [16] = {"Housing", "You cannot park this vehicle in the garage!", 5000, "error"}, [17] = {"Housing", "Successful payment!", 5000, "success"}, [18] = {"Housing", "Successful upgrade!", 5000, "success"}, [19] = {"Housing", "Someone knocked on the door!", 5000, "info"}, [20] = {"Housing", "You knocked on the door!", 5000, "success"}, [21] = {"Housing", "You have paid the outstanding debt on the property:", 5000, "error"}, [22] = {"Housing", "You have successfully sold the property:", 5000, "success"}, [23] = {"Housing", "The garage door cannot be more than 50 metres from the entrance to the house.", 5000, "error"}, [24] = {"Housing", "Not enough money for the real estate agency!", 5000, "error"}, [25] = {"Housing", "You do not have permission!", 5000, "error"}, [26] = {"Housing", "You can only connect a house and a garage!", 5000, "error"}, [27] = {"Housing", "The property is already connected!", 5000, "error"}, [28] = {"Housing", "These two properties are not connected!", 5000, "error"}, [29] = {"Housing", "Successful connection!", 5000, "success"}, [30] = {"Housing", "You have successfully detached the garage!", 5000, "success"}, [31] = {"Housing", "You've got it back:", 5000, "success"}, [32] = {"Housing", "No vehicle to get back!", 5000, "error"}, [33] = {"Housing", "There was a problem loading the IPL/Shell.", 5000, "error"}, [34] = {"Housing", "You spammed the housing system, so you have been put on a 3-minute cooldown.", 5000, "error"}, [35] = {"Housing", "You can now use the housing system again.", 5000, "success"}, [36] = {"Housing", "Please avoid doing this again in the future.", 5000, "info"}, [37] = {"Housing", "You cannot buy/rent more property! Maximum quantity:", 5000, "error"}, [38] = {"Housing", "You have to wait 2 minutes because you've failed the minigame!", 5000, "error"}, [39] = {"Housing", "You have successfully completed the minigame! The door is open!", 5000, "success"}, [40] = {"Housing", "You failed to complete the minigame!", 5000, "error"}, [41] = {"Housing", "You have successfully completed the minigame!", 5000, "success"}, [42] = {"Housing", "This house has too good security, you can't break in!", 5000, "error"}, [43] = {"Housing", "You have reached the maximum attempt!", 5000, "error"}, [44] = {"Housing", "Not enough police in the city!", 5000, "error"}, [45] = {"Housing", "You need a lockpick item!", 5000, "error"}, [46] = {"Housing", "You need a laptop item!", 5000, "error"}, [47] = {"Housing", "Invalid Player ID!", 5000, "error"}, [48] = {"Housing", "Invalid Identifier!", 5000, "error"}, [49] = {"Housing", "Successful modification!", 5000, "success"}, [50] = {"Housing", "This address already exist!", 5000, "error"}, [51] = {"Housing", "The two properties must be owned by the same person/job!", 5000, "error"}, [52] = {"Housing", "The amount you offered is too low!", 5000, "error"}, [53] = {"Housing", "The spawn coordinates of the vehicle must be within 15 meters of the garage door!", 5000, "error"}, [54] = {"Housing", "You don't have property!", 5000, "error"}, [55] = {"Housing", "Staff mode: ON", 5000, "success"}, [56] = {"Housing", "Staff mode: OFF", 5000, "error"}, [57] = {"Housing", "You have started to rent the property!", 5000, "success"}, [58] = {"Housing", "You've put your property up for sale!", 5000, "success"}, [59] = {"Housing", "You cancelled the sale!", 5000, "info"}, [60] = {"Housing", "Invalid Price!", 5000, "error"}, [61] = {"Housing", "You cannot buy your own property! You can cancel the sale in the Myproperties menu!", 5000, "error"}, [62] = {"Housing", "You have stopped to rent the property!", 5000, "info"}, [63] = {"Housing", "There is not that much money in the account!", 5000, "error"}, [64] = {"Housing", "Successful deposit:", 5000, "success"}, [65] = {"Housing", "Successful withdrawal:", 5000, "success"}, [66] = {"Housing", "A burglar broke into the house! Go to the designated place!", 5000, "info"}, [67] = {"Housing", "You have successfully deleted it!", 5000, "success"}, [68] = {"Housing", "You cannot add a garage to an apartment/mlo!", 5000, "error"}, [69] = {"Housing", "You cannot place objects here!", 5000, "error"}, [70] = {"Housing", "You cannot create a house/garage near Apartment buildings!", 5000, "error"}, [71] = {"Housing", "You have successfully renamed the property!", 5000, "success"}, [72] = {"Housing", "You have successfully replaced the door lock!", 5000, "success"}, [73] = {"Housing", "You have successfully bought a new key!", 5000, "success"}, [74] = {"Housing", "Place %d car spawn coordinates inside the shell!", 5000, "info"}, [75] = {"Housing", "You can't put a door lock that far away!", 5000, "error"}, [76] = {"Housing", "You paid for furniture:", 5000, "info"}, [77] = {"Housing", "You sold furniture for:", 5000, "info"}, [78] = {"Housing", "You are too far from the object!", 5000, "error"}, [79] = {"Housing", "You have successfully destroyed it, the owner has lost the camera data!", 5000, "error"}, [80] = {"Housing", "You can't sit in a car!", 5000, "error"}, [81] = {"Housing", "There is no database near you!", 5000, "error"}, [82] = {"Housing", "This has already been destroyed!", 5000, "error"}, [83] = {"Housing", "You have successfully repaired it!", 5000, "success"}, [84] = {"Housing", "You cannot open the menu now!", 5000, "error"}, [85] = {"Housing", "The property is in foreclosure! The owner must pay the bills before we can use it.", 5000, "error"}, [86] = {"Housing", "This car is out of the garage!", 5000, "error"}, [87] = {"Housing", "The maximum number of objects you can place:", 5000, "error"}, [88] = {"Housing", "The garage must be empty if you want to sell the property!", 5000, "error"}, [89] = {"Housing", "You have reached the maximum number of stashes you can place!", 5000, "error"}, [90] = {"Housing", "You cannot put the object so far away!", 5000, "error"}, [91] = {"Housing", "The house you were in has been deleted, so you have been teleported here!", 10000, "info"}, }, Webhooks = { Locale = { ['houseCreateTitle'] = "🆕 House created...", ['houseCreateSubtitle'] = "created a house.", ['garageCreateTitle'] = "🆕 Garage created...", ['garageCreateSubtitle'] = "created a garage.", ['deleteTitle'] = "❌ Deleted property...", ['deleteSubtitle'] = "deleted a property.", ['purchaseTitle'] = "💵 Purchased property...", ['purchaseSubtitle'] = "purchased a property.", ['rentTitle'] = "💵 Rented property...", ['rentSubtitle'] = "rented a property.", ['newOwnerTitle'] = "🔄 Change of owner...", ['newOwnerSubtitle'] = "changed the property owner.", ['Identifier'] = "Identifier", ['PropertyID'] = "Property ID", ['Type'] = "Type", ['Price'] = "Price", ['Rent'] = "Rent", ['Coords'] = "Coords", ['Address'] = "Address", ['Garage'] = "Garage", ['Reason'] = "Reason", ['PreviousOwner'] = "Previous Owner", ['NewOwner'] = "New Owner", ['Inactivity'] = "Since Config.DeleteInactiveProperty.use is true, this property is deleted due to inactivity.", ['Time'] = "Time ⏲️" }, -- To change a webhook color you need to set the decimal value of a color, you can use this website to do that - https://www.mathsisfun.com/hexadecimal-decimal-colors.html Colors = { ['houseCreateTitle'] = 65280, ['garageCreateTitle'] = 255, ['deleteTitle'] = 16711680, ['purchaseTitle'] = 16776960, ['rentTitle'] = 65535, ['newOwnerTitle'] = 16711935, } }, }