Configuration
1. Configure cl_config.lua
cl_config.lua
In this section, you will configure the client-side configuration file cl_config.lua
. Follow the instructions below to set it up according to your framework (ESX or QBcore).
RESMON = {}
RESMON.Houses = {}
RESMON.Blips = {}
RESMON.Options = {
Language = 'en', -- Default language for the system (supports language codes like 'de', 'fr', etc.)
UseVersionCheck = true, -- Enable version checking for resource compatibility
UseOldEsx = false, -- Use legacy ESX exports (set to `true` for older frameworks)
UseWeight = true, -- Enable weight-based inventory (useful for housing-related items)
DataStoreClothes = true, -- Enable saving of player clothing data
DataStore = "esx_datastore:getDataStore", -- Callback for accessing the datastore
DatastoreName = "rs_housing", -- Identifier for the housing datastore
OwnMaxHouses = 5, -- Maximum number of houses a player can own
EnableHouseKeys = true, -- Enable the functionality for house keys
MaxKeys = 5, -- Maximum number of keys a player can give to others
AdminGroups = {"admin", "mod", "dev"}, -- List of groups with administrative privileges
AdminIDs = {"xxxxxxxxxxxxxxxxxxxxxx"}, -- Specific identifiers with admin privileges (e.g., Discord or Steam IDs)
Commands = {
createHouse = "createHouse", -- Command for creating new houses
},
Prices = {
buyMultiplier = 1.0, -- Multiplier for the buying price of houses
sellPrice = 0.5, -- Multiplier for the selling price of houses
},
SharedObject = {
client = "esx:getSharedObject", -- Retrieve client-side ESX object
server = "esx:getSharedObject", -- Retrieve server-side ESX object
},
CallBacks = {
['esx:playerLoaded'] = 'esx:playerLoaded', -- Callback triggered when a player loads into the game
['skinchanger:getSkin'] = 'skinchanger:getSkin', -- Callback for retrieving player skin
['skinchanger:loadClothes'] = 'skinchanger:loadClothes', -- Callback for applying clothes to the player
['skinchanger:loadSkin'] = 'skinchanger:loadSkin', -- Callback for loading a player’s skin
['esx_skin:setLastSkin'] = 'esx_skin:setLastSkin', -- Callback for setting the last saved skin
['esx_skin:save'] = 'esx_skin:save' -- Callback for saving a player’s skin
},
}
RESMON.Marker = {
enabled = true, -- Enable or disable the marker
type = 21, -- Marker type (21 represents a specific marker style)
color = { r = 105, g = 0, b = 0, a = 100 }, -- RGBA color values for the marker
scale = { x = 0.5, y = 0.5, z = 0.5 }, -- Scale of the marker
drawDistance = 100.0, -- Distance at which the marker is visible
bobUpAndDown = false, -- Whether the marker should bob up and down
faceCamera = false, -- Whether the marker should face the camera
rotate = true -- Whether the marker should rotate
}
RESMON.BuyBlip = {
enabled = true, -- Enable or disable the blip
sprite = 374, -- Sprite ID for the blip
scale = 0.5, -- Scale of the blip
shortRange = true, -- Whether the blip is visible only in short range
color = 2, -- Color ID for the blip
text = 'Buy House' -- Text to display for the blip
}
RESMON.OwnBlip = {
enabled = true, -- Enable or disable the blip
sprite = 40, -- Sprite ID for the blip
scale = 0.7, -- Scale of the blip
shortRange = true, -- Whether the blip is visible only in short range
color = 63, -- Color ID for the blip
text = 'My Home' -- Text to display for the blip
}
RESMON.HouseTypes = {
[1] = { -- First house type
joinleave = { x = -174.17, y = 497.50, z = 137.66, h = 183.79, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
housemenu = { x = -165.42, y = 495.95, z = 137.65, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
armorymenu = { x = -175.98, y = 491.94, z = 130.04, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
clothesmenu = { x = -167.41, y = 487.86, z = 133.84, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } }
},
[2] = { -- Second house type
joinleave = { x = 266.11, y = -1007.3, z = -101.01, h = 10.29, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
housemenu = { x = 256.96, y = -996.87, z = -99.01, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
armorymenu = { x = 265.02, y = -995.8, z = -99.01, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
clothesmenu = { x = 259.77, y = -1003.81, z = -99.01, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } }
},
[3] = { -- Third house type
joinleave = { x = 346.52, y = -1012.73, z = -99.2, h = 359.24, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
housemenu = { x = 349.66, y = -1007.4, z = -99.2, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
armorymenu = { x = 345.09, y = -995.5, z = -99.2, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
clothesmenu = { x = 351.73, y = -998.81, z = -99.2, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } }
},
[4] = { -- Fourth house type
joinleave = { x = 1274.01, y = -1719.64, z = 54.77, h = 11.13, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
housemenu = { x = 1272.35, y = -1712.03, z = 54.77, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
armorymenu = { x = 1275.59, y = -1710.57, z = 54.77, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } },
clothesmenu = { x = 1273.63, y = -1707.81, z = 54.77, marker_enabled = true, marker_type = 21, marker_color = { r = 105, g = 0, b = 0, a = 100 } }
}
}
HelpNotify = function(msg, E)
ESX.ShowHelpNotification(msg, E)
-- exports["rs_hud"]:HelpNotify(msg, E)
end
Notify = function(msg, type, time)
TriggerEvent('esx:showNotification', msg)
-- TriggerEvent('rs_notify', 'Housing', msg, 'info', 5000)
end
2. Configure sv_config.lua
sv_config.lua
In this section, you will configure the server-side configuration file sv_config.lua
. Follow the instructions below to set it up according to your framework (ESX or QBcore)
CFG = {}
CFG.Webhooks = {
Color = "16777215",
Author = "ResmonStudio",
AuthorURL = "https://i.ibb.co/PZDN7K4/logo.png",
ThumbURL = "https://i.ibb.co/PZDN7K4/logo.png",
Username = "RS | Logs",
Webhooks = {
buy = {'PUT_YOUR_WEBHOOK'},
sell = {'PUT_YOUR_WEBHOOK'},
storage = {'PUT_YOUR_WEBHOOK'},
weapons = {'PUT_YOUR_WEBHOOK'},
blackmoney = {'PUT_YOUR_WEBHOOK'},
}
}
3. Select Languages in sh_languages.lua
sh_languages.lua
In the sh_languages.lua
file, you can manage all available language options. To set your preferred language and its corresponding translations, navigate to cl_config.lua
and specify your desired locale. This allows you to customize the different languages.
RESMON.Languages = {
['en'] = {
['price'] = 'Price: ',
['owner'] = 'Owner: ',
['open'] = 'Open',
['closed'] = 'Closed',
['houseMenus'] = 'House Menu',
['clothMenu'] = 'Closet',
['clothRemoveMenu'] = 'Clothing - Remove',
['armoryMenu'] = 'Armory',
['armoryAddWeapon'] = 'Armory - Store Weapon',
['armoryAddItem'] = 'Armory - Store Item',
['armoryRemoveWeapon'] = 'Armory - Remove Weapon',
['armoryRemoveItem'] = 'Armory - Remove Item',
['playerDressing'] = 'Clothing',
['removeClothM'] = 'Remove Clothing',
['putWeapon'] = '[Weapon] Store',
['getWeapon'] = '[Weapon] Retrieve',
['putStock'] = '[Item] Store',
['getStock'] = '[Item] Retrieve',
['blackMoneyLabel'] = 'Black Money: ',
['takeBlackMoneys'] = 'Take Black Money',
['putBlackMoneys'] = 'Store Black Money',
['openCloseHouse'] = 'Open/Close House',
['refreshName'] = 'Update Name',
['giveKeys'] = 'Give House Key',
['seeKeys'] = 'View All House Keys',
['house'] = 'House Menu',
['armory'] = 'Armory Menu',
['housePosTitle'] = 'House Position',
['housePosLabel'] = 'Set House Position',
['houseTypeTitle'] = 'Enter House Type',
['housePriceTitle'] = 'Enter House Price',
['noowner'] = 'None',
['amount'] = 'Invalid amount!',
['noTargets'] = 'No players nearby.',
['houseJoin'] = 'Press [E] to enter the house',
['houseLeave'] = 'Press [E] to leave the house',
['houseArmory'] = 'Press [E] to open the Armory',
['houseMenu'] = 'Press [E] to manage the house',
['houseClothes'] = 'Press [E] to change clothes',
['removeCloth'] = 'The clothing item has been removed from your closet',
['houseText'] = 'This property includes a private gun safe and, for luxury homes, a closet as well!',
['nameupdate'] = 'Name has been updated!',
['houseClosed'] = 'This house is closed!',
['houseOpen'] = 'House unlocked!',
['houseClose'] = 'House locked!',
['notHouse'] = 'You are not in a house!',
['notMyHouse'] = 'This house doesnt belong to you!',
['ownAlready'] = 'This house already belongs to someone!',
['nowOwn'] = 'Congratulations! You are now a homeowner!',
['notEnough'] = 'You dont have enough money with you!',
['houseSell'] = 'You sold your house to the state!',
['notSell'] = 'You cant sell the house because it doesnt belong to you!',
['onlyHouse'] = 'You cant buy more houses! (You already own {0}!)',
['houseId'] = 'House ID: {0}',
['haveKey'] = '{0} already has the key to your house!',
['giveKey'] = 'You have given {0} the key to your house!',
['removeKey'] = 'You have taken the key away from {0}!',
['cantGiveKey'] = 'You cant give out any more keys!',
['noTarget'] = 'No player was found nearby.',
['getItem'] = 'Retrieved: {0}x {1}',
['putItem'] = 'Stored: {0}x {1}',
['notEnoughItem'] = 'Not enough in with you!',
['restart'] = 'You cant store or retrieve anything 1 minute before the restart!',
['putBlackMoney'] = 'You have deposited {0}$ of dirty money into your storage.',
['takeBlackMoney'] = 'You have taken {0}$ of dirty money from your storage.',
['notEnoughBlackMoney'] = 'You dont have enough dirty money.',
['notEnoughInStorage'] = 'There is not enough dirty money in your storage.',
},
['de'] = {
['price'] = 'Preis: ',
['owner'] = 'Besitzer: ',
['open'] = 'Öffnen',
['closed'] = 'Geschlossen',
['houseMenus'] = 'Hausmenü',
['clothMenu'] = 'Kleiderschrank',
['clothRemoveMenu'] = 'Kleidung - Entfernen',
['armoryMenu'] = 'Waffenkammer',
['armoryAddWeapon'] = 'Waffenkammer - Waffe verstauen',
['armoryAddItem'] = 'Waffenkammer - Gegenstand verstauen',
['armoryRemoveWeapon'] = 'Waffenkammer - Waffe entfernen',
['armoryRemoveItem'] = 'Waffenkammer - Gegenstand entfernen',
['playerDressing'] = 'Kleidung',
['removeClothM'] = 'Kleidung entfernen',
['putWeapon'] = '[Waffe] Verstauen',
['getWeapon'] = '[Waffe] Abholen',
['putStock'] = '[Gegenstand] Verstauen',
['getStock'] = '[Gegenstand] Abholen',
['blackMoneyLabel'] = 'Schwarzes Geld: ',
['takeBlackMoneys'] = 'Schwarzes Geld nehmen',
['putBlackMoneys'] = 'Schwarzes Geld verstauen',
['openCloseHouse'] = 'Haus öffnen/schließen',
['refreshName'] = 'Name aktualisieren',
['giveKeys'] = 'Hausschlüssel geben',
['seeKeys'] = 'Alle Hausschlüssel anzeigen',
['house'] = 'Hausmenü',
['armory'] = 'Waffenkammer Menü',
['housePosTitle'] = 'Hausposition',
['housePosLabel'] = 'Hausposition setzen',
['houseTypeTitle'] = 'Hausart eingeben',
['housePriceTitle'] = 'Hauspreis eingeben',
['noowner'] = 'Kein Besitzer',
['amount'] = 'Ungültiger Betrag!',
['noTargets'] = 'Keine Spieler in der Nähe.',
['houseJoin'] = 'Drücke [E] um das Haus zu betreten',
['houseLeave'] = 'Drücke [E] um das Haus zu verlassen',
['houseArmory'] = 'Drücke [E] um die Waffenkammer zu öffnen',
['houseMenu'] = 'Drücke [E] um das Haus zu verwalten',
['houseClothes'] = 'Drücke [E] um Kleidung zu wechseln',
['removeCloth'] = 'Der Kleidung wurde aus deinem Kleiderschrank entfernt',
['houseText'] = 'Diese Immobilie umfasst einen privaten Waffenschrank und für Luxusimmobilien auch einen Kleiderschrank!',
['nameupdate'] = 'Name wurde aktualisiert!',
['houseClosed'] = 'Dieses Haus ist geschlossen!',
['houseOpen'] = 'Haus wurde geöffnet!',
['houseClose'] = 'Haus wurde geschlossen!',
['notHouse'] = 'Du befindest dich nicht in einem Haus!',
['notMyHouse'] = 'Dieses Haus gehört dir nicht!',
['ownAlready'] = 'Dieses Haus gehört bereits jemandem!',
['nowOwn'] = 'Herzlichen Glückwunsch! Du bist jetzt Hausbesitzer!',
['notEnough'] = 'Du hast nicht genug Geld bei dir!',
['houseSell'] = 'Du hast dein Haus an den Staat verkauft!',
['notSell'] = 'Du kannst das Haus nicht verkaufen, weil es dir nicht gehört!',
['onlyHouse'] = 'Du kannst keine weiteren Häuser kaufen! (Du besitzt bereits {0}!)',
['houseId'] = 'Haus-ID: {0}',
['haveKey'] = '{0} hat bereits den Schlüssel zu deinem Haus!',
['giveKey'] = 'Du hast {0} den Schlüssel zu deinem Haus gegeben!',
['removeKey'] = 'Du hast den Schlüssel von {0} weggenommen!',
['cantGiveKey'] = 'Du kannst keine weiteren Schlüssel vergeben!',
['noTarget'] = 'Kein Spieler in der Nähe gefunden.',
['getItem'] = 'Abgeholt: {0}x {1}',
['putItem'] = 'Verstaut: {0}x {1}',
['notEnoughItem'] = 'Nicht genug dabei!',
['restart'] = 'Du kannst nichts verstauen oder abholen 1 Minute vor dem Neustart!',
['putBlackMoney'] = 'Du hast {0}$ schmutziges Geld in deinem Lager verstaut.',
['takeBlackMoney'] = 'Du hast {0}$ schmutziges Geld aus deinem Lager genommen.',
['notEnoughBlackMoney'] = 'Du hast nicht genug schmutziges Geld.',
['notEnoughInStorage'] = 'Nicht genug schmutziges Geld in deinem Lager.',
},
}
Last updated