Configuration
Every option in STG 3 in 1 Shop config.lua, from robberies, rewards and police jobs to blips, clerks, items, store locations, Discord logs and notifications.
All settings live in stg-shop/config.lua. The file stays editable in the escrow version. Restart the resource after a change.
Framework
STG.Framework = "auto"auto detects qb-core, qbx_core or es_extended, in that order. Set it to esx or qb to force one. QBOX uses qb.
Language
STG.Language = "en"Available: en, de. To change a text, edit stg-shop/locale/locales.lua.
Weapons as items
STG.weaponWithItem = falseOnly used on ESX. When false, weapons are added to the player's loadout. Set it to true when your inventory handles weapons as items, for example ox_inventory. On QBCore and QBOX, weapons are always given as items.
Weapon license
STG.license = falseSet to true to block the weapon shop for players without a weapon license. They get the "You need weapon license!" message instead.
Robberies
STG.robAble = true
STG.minCop = 0
STG.robTime = 60
STG.robRenew = 10000A robbery starts when a player aims a loaded gun near a store. A countdown runs on screen, then the clerk opens the till, fills a bag with cash and throws it. The robber walks over the bag to claim the reward.
Prop
Type
Police jobs
STG.PoliceJobs = {
"police",
"sheriff"
}Players with one of these jobs count towards STG.minCop and get the robbery alert: a CCTV photo of the robber and the store name. They can press E to set a waypoint to the store or Backspace to close the alert.
Weapon shop blacklist
STG.weaponshopBlackListJobs = {
"police"
}Players with one of these jobs cannot buy in the weapon shop and get the "Your job in blacklist!" message. The supermarket and the black market stay open to them.
Robbery rewards
STG.robReward = {
weaponshop = { minMoney = 3000, maxMoney = 6000 },
supermarket = { minMoney = 1000, maxMoney = 2000 },
blackmarket = { minMoney = 5000, maxMoney = 7000 }
}
STG.robItems = {
weaponshop = {
[1] = { item = "anker", count = 2, winpercentage = 100 },
[2] = { item = "water", count = 2, winpercentage = 20 }
},
supermarket = { ... },
blackmarket = { ... },
}The robber gets a random amount of cash between minMoney and maxMoney for the store type. Each entry in STG.robItems is then rolled on its own.
Prop
Type
Clerks
STG.NPC = {
weaponshop = "a_m_o_soucent_02",
supermarket = "mp_m_shopkeep_01"
}Ped model of the clerk for each shop type. Clerks are frozen and cannot be killed. Every shop type you use in STG.Positions needs a model here. A list of ped models is on the RAGE wiki.
Blips
STG.Blips = {
weaponshop = { label = "Weapon Shop", sprite = 110, scale = 0.7, color = 5, visible = true },
supermarket = { label = "Super Market", sprite = 59, scale = 0.7, color = 3, visible = true },
blackmarket = { label = "BlackMarket", sprite = 59, scale = 0.7, color = 3, visible = false }
}Every shop type needs an entry here, even a hidden one, because label is also the store name.
Prop
Type
Shop descriptions
STG.description = {
supermarket = "yes you are right! its a market",
weaponshop = "just a weaponshop",
blackmarket = "just a blackmarket"
}Short text shown under the shop title in the store menu.
Items
STG.Items = {
["supermarket"] = {
["Essen"] = {
{ name = "coffee", label = "Coffee", price = 10, type = "item" },
-- ...
},
},
["weaponshop"] = {
["Waffen"] = {
{ name = "weapon_pistol", label = "Pistol", price = 1322, type = "weapon", ammoItem = "pistolammo" },
-- ...
},
},
["blackmarket"] = { ... },
}Items are grouped by shop type, then by category. The category name is the button shown in the supermarket and black market menus.
Prop
Type
Step by step guides for new items and their images are on Shops and items.
Store locations
STG.Positions = {
{coords = vector3(373.875, 325.896, 103.566), type = "supermarket", npcCoord = vector4(372.507, 326.479, 102.566, 252.06)},
-- ...
}The script ships with 17 supermarkets, 8 weapon shops and 1 black market.
Prop
Type
Weapon stats
STG.weaponStats = {
weapon_pistol = {
[1] = { name = "damage", label = "Damage", value = 10, tittle = "DS" },
[2] = { name = "magazine", label = "Magazine", value = 10, tittle = "DS" },
-- ...
},
}Stat bars shown on the right side of the weapon shop for the selected weapon. Weapons without an entry show no stats.
Prop
Type
Discord logs
Webhooks live in stg-shop/webhook.lua:
Settings.Webhook = {
avatarURL = "https://your-image-url/logo.png",
username = "STG",
color = 14552002,
Webhooks = {
market = "",
weaponshop = ""
}
}Prop
Type
Each log contains the player name, the cost, the items or weapon and the payment method.
Notifications
Notifications live in stg-shop/notify.lua. By default they use ESX.ShowNotification or QBCore.Functions.Notify. Replace the body of the stg-shop:notify handler to use your own notification system. The police alert is drawn in the same file.
Still having trouble?
Open a ticket on our Discord. Our team answers around 15 hours a day.