1
0
Fork 0
forked from Simnation/Main
Main/resources/[housing]/brutal_housing/config.lua
2025-08-13 13:18:03 +02:00

419 lines
No EOL
22 KiB
Lua

----------------------------------------------------------------------------------------------
-------------------------------------| 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 = 'pma-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 = 'brutal_textui', -- 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 = true, -- 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 = "Available House", size = 0.7, sprite = 40, color = 2},
availableGarage = {label = "Available Garage", size = 0.7, sprite = 357, color = 2},
myproperties = true,
myHouse = {label = "Mein Haus", size = 0.7, sprite = 40, color = 53},
myGarage = {label = "Meine Garage", size = 0.7, sprite = 357, color = 53},
haskey = true,
hasKeyHouse = {label = "House", size = 0.7, sprite = 40, color = 53},
hasKeyGarage = {label = "Garage", size = 0.7, sprite = 40, color = 53},
owned = false,
ownedHouse = {label = "House", 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.015, -- 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 = '', -- 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,
}
},
}