Settings
Every setting in shared/config.lua.
Every setting in shared/config.lua, taken from the file itself. The comments in the
file and this page always say the same thing.
Config.Framework
Your framework: "esx", "qb-core", "qbox", "ox" or "custom". With "custom" the resource loads public/framework.lua instead.
| Setting | Default | What it does |
|---|---|---|
name | "esx" | |
esxMode | "legacy" | Only when name is "esx": "legacy" or "old". |
esxSharedObjectEvent | "esx:getSharedObject" | Only when name is "esx": the event the shared object is fetched with. Older forks renamed it. |
Config.UI
Notifications: "ox_lib" or "custom" (loads public/ui.lua).
| Setting | Default | What it does |
|---|---|---|
name | "ox_lib" |
Config.Language
Any file in languages/, without the extension.
Config.Language = "english"Config.Debug
Prints what the resource is doing to the console.
Config.Debug = falseConfig.PersistVehicles
Vehicles taken out of a garage stay in the world and survive a restart.
ox_core always does this itself and ignores the setting. QBox goes by its own convars instead: nothing is kept while qbx:enableVehiclePersistence is false, which is the default, and a vehicle only comes back after a restart when qbx:vehiclePersistenceType is "full".
Config.PersistVehicles = trueConfig.Impound
Where a vehicle ends up when it cannot be anywhere else: destroyed, left outside over a restart, or coming home to a full garage.
| Setting | Default | What it does |
|---|---|---|
enabled | true | Off, this resource leaves a wrecked vehicle exactly as it is: out, in no garage. That is what another impound script reads it as. |
fee | 500 | What it costs to release one vehicle. 0 is free. |
locations | a table | label is the blip name on the map and the place the release message names. What stands in front of the ped comes from the language file. spawns are the bays a released vehicle appears in. A free one wins, so give a lot more than one. |
ped | a table | |
tryGarageFirst | false | After a restart, try the last garage first and impound only what does not fit. Off, everything that was out goes straight to the impound. Only reached when nothing else brings the vehicles back, so not while Config.PersistVehicles is on and never on ox_core. On QBox the sweep runs unless both persistence convars are set. |
Config.ScreenBlur
Blur the screen behind the garage menus.
Config.ScreenBlur = trueConfig.DefaultVehicleModel
Stands in wherever no particular car is meant yet.
Config.DefaultVehicleModel = "adder"Config.Sellers
The NPCs who sell garages.
| Setting | Default | What it does |
|---|---|---|
enabled | true | |
npcs | a table |
Config.Builder
The in-game garage builder.
A garage priced at 0 belongs to every player from the start. Nobody buys it from a seller and nobody can sell it back.
| Setting | Default | What it does |
|---|---|---|
enabled | true | |
command | "garages" | |
allow | { "ktx_garages.builder", "admin", "superadmin" } | Aces and groups both work, one match is enough. Empty means everybody. |
defaultSalePercentage | 0.2 | What comes back when a garage is sold again, as a fraction of its price. |
defaultFriendlyFire | false |
Config.CoOwnership
Up to five more owners per garage, next to the one who bought it.
| Setting | Default | What it does |
|---|---|---|
maxCoOwners | 5 | |
requireOwnerPresent | false | Co-owners may only use the garage while the owner is there. On, they cannot enter without the owner online, and they leave with the owner. Off, a co-owner uses the garage like their own. |
allowCoOwnerInvites | false | Co-owners may invite others as well, not only the owner. |
Config.DebugMenu
Spawning vehicles and teleporting into garages, for testing.
| Setting | Default | What it does |
|---|---|---|
enabled | false |
Config.VehicleTypeGroups
The groups the builder offers when a garage is limited to certain kinds of vehicle. The numbers are GTA's own vehicle types.
| Setting | Default | What it does |
|---|---|---|
car | { label = "Cars", types = { 0, 5, 6 }, icon = "car" } | |
bike | { label = "Motorcycles", types = { 3, 7, 11 }, icon = "moto… | |
bicycle | { label = "Bicycles", types = { 12 }, icon = "bicycle" } | |
plane | { label = "Planes", types = { 1 }, icon = "plane" } | |
heli | { label = "Helicopters", types = { 8, 9 }, icon = "helicopt… | |
boat | { label = "Boats", types = { 13, 15 }, icon = "ship" } | |
train | { label = "Trains", types = { 14 }, icon = "train" } |
Config.Logging
The webhook comes from a convar because this file is unencrypted and also loaded on the client. A URL written here reaches every player.
set ktx_garages_webhook "https://discord.com/api/webhooks/..."| Setting | Default | What it does |
|---|---|---|
enable | true | Turns the webhook and the ox_lib logger off together. The activity log in the garage menu is a database table and is not affected. |
useOxLibLogger | false | |
discord | a table |
Config.Database
Only what your server does differently. Every stock install of the four supported frameworks already works, the names come from the preset for Config.Framework.name.
One renamed column is one line, the rest of the block stays untouched:
ownedVehicles = { vehicle = "vehicle_props" },| Setting | Default | What it does |
|---|---|---|
garages | "ktx_garages" | Tables the resource creates and owns. Renaming one is allowed and nothing else has to change. |
definitions | "ktx_garages_builder" | |
coowners | "ktx_garages_coowners" | |
impound | "ktx_garages_impound" | |
logs | "ktx_garages_logs" | |
ownedVehicles | a table | The two your framework owns. Empty because every name comes from the preset for Config.Framework.name. Write in only what your server renamed, one column at a time. |
users | a table | |
logRetentionDays | 14 | How long the activity log keeps a row. Swept once a day. The log is the only table here that grows on its own. |
Config.Interiors
The interiors the builder offers. Add your own with id, name, shortName, category and position.