Configuration (config.lua)
Complete reference for configuring RSG Core via config.lua.
The rsg-core/config.lua file contains all the core configuration options for your server.
This file controls player defaults, the money system, server settings, and more.
Location: resources/[framework]/rsg-core/config.lua
General settings
Max players
RSGConfig.MaxPlayers = GetConvarInt('sv_maxclients', 48)- Reads the maximum players from your
server.cfg. - Default: 48 players. Set in
server.cfgwithsv_maxclients 48.
Default spawn
RSGConfig.DefaultSpawn = vector4(-1035.71, -2731.87, 12.86, 0.0)- The default spawn location for new players, in
vector4(x, y, z, heading)format. - Used when a player has no saved position.
Update interval
RSGConfig.UpdateInterval = 5- How often (in minutes) player data is automatically saved to the database. Default: 5.
- Lower values mean more frequent saves but more database load.
Hide player names
RSGConfig.HidePlayerNames = truetruehides names above players' heads (more immersive RP),falseshows them.
Reveal map
RSGConfig.Player.RevealMap = truetruefully reveals the map,falseenables fog of war.
Money system
Money types
RSGConfig.Money.MoneyTypes = {
cash = 50, -- Starting cash
gold = 0, -- Gold currency
bank = 0, -- DEPRECATED - kept at 0
valbank = 0, -- Valentine Bank
rhobank = 0, -- Rhodes Bank
blkbank = 0, -- Blackwater Bank
armbank = 0, -- Armadillo Bank
bloodmoney = 0 -- Illegal money
}- cash: Physical money in the player's pocket (can be dropped/stolen).
- gold: Gold currency — works exactly like cash and shares the same API. Can optionally be a physical item (see Money System → Gold currency).
- bank: DEPRECATED — legacy account, kept at 0. Use location-specific banks.
- valbank / rhobank / blkbank / armbank: Town-specific bank accounts.
- bloodmoney: Illegal money for criminal activities.
The bank money type is deprecated. Always use location-specific banks (valbank,
rhobank, blkbank, armbank) instead.
When EnableMoneyItems = true, cash and bloodmoney become physical inventory items that
can be dropped, traded, or stolen.
Why multiple banks? Realism (players travel to towns to access accounts), gameplay (bank robberies and escorts), and risk (carrying cash is dangerous).
Don't allow minus
RSGConfig.Money.DontAllowMinus = { 'cash', 'bloodmoney' }Money types that cannot go below $0. Transactions fail if the player doesn't have enough.
Minus limit
RSGConfig.Money.MinusLimit = -5000The maximum debt bank accounts can reach (only affects types not in DontAllowMinus).
Paycheck timeout
RSGConfig.Money.PayCheckTimeOut = 10How often (in minutes) players receive their job paycheck. Amounts are defined in
shared/jobs.lua.
Paycheck from society
RSGConfig.Money.PayCheckSociety = falsetrue: paychecks come from the society/business account (requires rsg-banking).false: paychecks are generated (money printer).
Enable money items
RSGConfig.Money.EnableMoneyItems = truetrue: cash and bloodmoney are physical inventory items.false: cash and bloodmoney are virtual (like GTA Online).
Physical money makes the economy more realistic, as players must physically carry cash.
Player configuration
Blood types
RSGConfig.Player.Bloodtypes = {
'A+', 'A-', 'B+', 'B-', 'AB+', 'AB-', 'O+', 'O-',
}Randomly assigned on character creation — useful for medical RP.
Player defaults
The RSGConfig.Player.PlayerDefaults table defines all default values for new characters.
Character info
charinfo = {
firstname = 'Firstname',
lastname = 'Lastname',
birthdate = '00-00-0000',
gender = 0, -- 0 = Male, 1 = Female
nationality = 'USA',
account = function() return RSGCore.Functions.CreateAccountNumber() end
}Job defaults
job = {
name = 'unemployed',
label = 'Civilian',
payment = 10,
type = 'none',
onduty = false,
isboss = false,
grade = {
name = 'Freelancer',
level = 0
}
}Gang defaults
gang = {
name = 'none',
label = 'No Gang Affiliation',
isboss = false,
grade = {
name = 'none',
level = 0
}
}Metadata defaults
metadata = {
health = 600,
hunger = 100,
thirst = 100,
cleanliness = 100,
stress = 0,
isdead = false,
armor = 0,
ishandcuffed = false,
injail = 0,
jailitems = {},
status = {},
rep = {},
callsign = 'NO CALLSIGN',
bloodtype = function() return RSGConfig.Player.Bloodtypes[math.random(1, #RSGConfig.Player.Bloodtypes)] end,
fingerprint = function() return RSGCore.Player.CreateFingerId() end,
walletid = function() return RSGCore.Player.CreateWalletId() end,
criminalrecord = {
hasRecord = false,
date = nil
},
}Hunger, thirst, cleanliness scale from 0–100 (100 = full/clean). Health in RedM uses a 0–600 scale, not 0–100 like GTA.
Inventory defaults
weight = 35000, -- Player default weight (35kg)
slots = 25, -- Player default slotsThese are starting values for new players. The actual inventory system limits are
configured in rsg-inventory/shared/config.lua (MaxWeight = 120000, MaxSlots = 40).
You can also modify inventory space per player at runtime:
local Player = RSGCore.Functions.GetPlayer(source)
Player.Functions.SetPlayerData('weight', 50000) -- Up to 50kg (under 120kg max)
Player.Functions.SetPlayerData('slots', 35) -- Up to 35 slots (under 40 max)Server configuration
Server closed
RSGConfig.Server.Closed = false
RSGConfig.Server.ClosedReason = 'Server Closed'When Closed = true, only players with admin permission can join. Useful for maintenance.
Whitelist
RSGConfig.Server.Whitelist = false
RSGConfig.Server.WhitelistPermission = 'admin'When Whitelist = true, only players with WhitelistPermission can join.
PVP settings
RSGConfig.Server.PVP = true
RSGConfig.EnablePVP = trueControls whether players can damage each other.
Discord link
RSGConfig.Server.Discord = ''Your Discord invite link, shown in kick messages.
Check duplicate license
RSGConfig.Server.CheckDuplicateLicense = truePrevents players connecting with duplicate Rockstar licenses (multi-boxing). Recommended
to keep true.
Permissions
RSGConfig.Server.Permissions = { 'god', 'admin', 'mod' }Available permission levels. You can add custom levels (e.g. 'helper', 'vip') and grant
them via ace permissions in server.cfg. See Setting Permissions.
Commands configuration
OOC color
RSGConfig.Commands.OOCColor = { 255, 151, 133 }RGB color for Out-Of-Character (OOC) chat messages, as { Red, Green, Blue }.
Prompt distance
RSGConfig.PromptDistance = 1.5Default interaction distance for prompts (in meters). See Prompts.
Example: custom configuration
-- Increase player capacity
RSGConfig.MaxPlayers = GetConvarInt('sv_maxclients', 64)
-- Change default spawn to Valentine
RSGConfig.DefaultSpawn = vector4(-175.89, 627.01, 114.09, 180.0)
-- Give players more starting money
RSGConfig.Money.MoneyTypes = {
cash = 250, bank = 0, valbank = 500,
rhobank = 0, blkbank = 0, armbank = 0, bloodmoney = 0
}
-- Enable whitelist
RSGConfig.Server.Whitelist = true
RSGConfig.Server.WhitelistPermission = 'whitelist'
-- Disable PVP for RP server
RSGConfig.Server.PVP = false
RSGConfig.EnablePVP = false
-- Faster paychecks
RSGConfig.Money.PayCheckTimeOut = 5
-- More inventory space
RSGConfig.Player.PlayerDefaults.weight = 50000
RSGConfig.Player.PlayerDefaults.slots = 30Tips & best practices
Tip
Always back up your config.lua before making changes.
Changes to config.lua require a full server restart to take effect.
Test all config changes on a development server before applying to production.
Performance considerations
- UpdateInterval: 5 minutes is a good balance. Don't go below 3 minutes on busy servers.
- PayCheckTimeOut: 10 minutes is standard. More frequent paychecks increase economy velocity.
Roleplay considerations
- Most RP servers keep EnableMoneyItems
truefor realism. - Set HidePlayerNames to
truefor immersion. - Many RP servers disable PVP except in specific zones.
- A whitelist is recommended for serious RP communities.

