Configuration

Every option in config.lua, with its default and limits.

This is the out of the box config.lua. Times are in milliseconds, distances in metres.

Most values can be changed in game

Open /evgarage > Settings to change these values live for every player. A value saved in game overrides config.lua. Pressing Reset on it (or Reset everything to config.lua) puts the config.lua value back. A value you remove from config.lua falls back to its default.

Full config

config.lua
EvolentGarageConfig = {}

EvolentGarageConfig.Framework = 'auto' -- auto, qbox, qbcore, esx or oxcore. auto takes the one that runs
EvolentGarageConfig.Locale = 'en'
EvolentGarageConfig.Debug = false
EvolentGarageConfig.ErrorNotifications = false
EvolentGarageConfig.FailureHint = true

EvolentGarageConfig.Brand = {
    Accent = '#00BFFF', -- #RGB or #RRGGBB
    Logo = 'web/shared/evolent-logo.png', -- a file in this resource or an https:// link
    Name = 'Evolent Parking', -- **word** makes that word bold
    Light = '', -- cabin and terminal lights, empty = the same as Accent
}

local Garage = {}

-- add_ace group.admin evolent.garage.manage allow
Garage.ManageAce = 'evolent.garage.manage'

Garage.RaiseDuration = 8000
Garage.LowerDuration = 8000
Garage.PrepareDuration = 2000

Garage.Gate = { Duration = 2500 }

Garage.Movement = {
    BlockTimeout = 20000,
    PickupTimeout = 180000,
    ParkingTimeout = 180000,
    ClearDistance = 6.5, -- a collected car counts as gone at this distance
    AbandonedTimeout = 60000,
    ReturnCooldown = 10000,
}

-- 'impound' or 'last'. Vehicles your own impound script holds (state 2) are never touched
Garage.LostVehicles = { Enabled = true, Garage = 'impound' }

-- Pad values are half the size of the platform itself, which the store list leaves out
Garage.StoreNearby = {
    Lift = 18.0,
    PadHalfX = 0.9,
    PadHalfY = 1.35,
    BikePadHalfX = 0.45,
    BikePadHalfY = 0.7,
}

-- sprite and colour numbers: docs.fivem.net/docs/game-references/blips
Garage.Blips = {
    Enabled = true,
    Sprite = 357,
    Colour = 3,
    Scale = 0.6,
    ImpoundSprite = 67,
    ImpoundColour = 1,
}

Garage.CabinLighting = { Enabled = true, Range = 4.2, Intensity = 1.35, Radius = 95.0, Shadows = false }

Garage.SpawnProtection = { Enabled = true, Margin = 3.0, Range = 200.0 }

Garage.Audio = { Enabled = true, HearDistance = 35.0 }

Garage.MaxGroundDifference = 0.18
Garage.PlacementSurface = { MaxDifference = 0.05 }
Garage.GroundClearance = 0.18

Garage.UseMappedShaft = false

EvolentGarageConfig.Garage = Garage

local Terminal = {}

Terminal.InteractDistance = 4.5

Terminal.Interact = 'auto' -- 'auto', 'key' or 'target'
-- key ids: docs.fivem.net/docs/game-references/controls
Terminal.InteractKey = 38 -- 38 = E
Terminal.DrawDistance = 22.0
Terminal.OpenSettleMs = 350

Terminal.Lighting = { Enabled = true, Distance = 16.0, Range = 1.1, Intensity = 1.6 }

EvolentGarageConfig.Terminal = Terminal

Options

General

OptionDefaultDescription
Framework'auto'auto, qbox, qbcore, esx or oxcore. auto picks the framework that is running.
Locale'en'Language file from locales/ used for player texts. Takes effect after a restart.
DebugfalseExtra console output and the developer commands. Keep off on a live server.
ErrorNotificationsfalseShow error notifications to players. Off: errors only go to the server console.
FailureHinttrueShow a short try again line when a collect or store stops halfway.

Brand

The colour, logo and name shown on every terminal and in the Garage Manager. These can also be changed in game under /evgarage > Brand.

OptionDefaultDescription
Accent'#00BFFF'Brand colour, #RGB or #RRGGBB.
Logo'web/shared/evolent-logo.png'A file inside the resource or an https:// link.
Name'Evolent Parking'Text next to the logo. Wrap a word in ** to make it bold.
Light''Colour of the cabin and terminal lights. Empty uses the Accent colour.

Garage

OptionDefaultDescription
ManageAce'evolent.garage.manage'ACE permission required to open the Garage Manager.
RaiseDuration8000Time the lift takes to rise (2000 - 60000).
LowerDuration8000Time the lift takes to lower (2000 - 60000).
PrepareDuration2000Quiet moment after the shutters begin to move, before the lift starts (0 - 30000).
Gate.Duration2500Time the shutters take to open or close (500 - 30000).
MaxGroundDifference0.18How uneven the ground under a lift may be when placing it.
PlacementSurface.MaxDifference0.05Allowed surface difference when placing a lift.
GroundClearance0.18Ground clearance used when placing a lift.
UseMappedShaftfalseOnly for maps that have a real open shaft under the lift.

Raise the placement values only if a spot you need is refused. Large values let lifts float or sink.

Movement

OptionDefaultDescription
BlockTimeout20000How long a blocked cabin waits before the cycle gives up. The car is always kept safe.
PickupTimeout180000Time to drive a collected car off the lift. After that it goes back into storage.
ParkingTimeout180000Time to drive onto the lift when storing. After that the lift lowers empty.
ClearDistance6.5Distance at which a collected car counts as gone from the lift.
AbandonedTimeout60000A raised lift nobody uses lowers after this time (15000 - 300000).
ReturnCooldown10000Cooldown after Return vehicle before the lift can be called again.

Lost Vehicles

OptionDefaultDescription
EnabledtrueBring back vehicles lost to a despawn, a crash or a restart. Off: such a car stays marked as out.
Garage'impound'impound sends lost cars to your impound garage. last returns them to the garage they were taken from.

See Lost vehicles for exactly when a car counts as lost.

Store Nearby

OptionDefaultDescription
Lift18.0Owned cars within this distance of the lift can be picked in the Store vehicle list.
PadHalfX / PadHalfY0.9 / 1.35Half size of the lift platform area for cars.
BikePadHalfX / BikePadHalfY0.45 / 0.7Half size of the lift platform area for motorbikes.

Blips

Sprite and colour numbers can be found in the FiveM blip list.

OptionDefaultDescription
EnabledtrueShow garages on the map. A single garage can still switch its own blip off.
Sprite / Colour357 / 3Blip for regular garages.
ImpoundSprite / ImpoundColour67 / 1Blip for impound garages.
Scale0.6Blip size.

Lighting, Audio & Traffic

OptionDefaultDescription
CabinLighting.EnabledtrueLights the car while it rides the lift.
CabinLighting.Range / Intensity4.2 / 1.35Range and strength of the cabin light.
CabinLighting.Radius95.0Spread of the cabin light.
CabinLighting.ShadowsfalseCast shadows from the cabin light. Costs frames.
Audio.EnabledtrueMotor sound for the lift and the shutters.
Audio.HearDistance35.0Distance the motor can be heard from.
SpawnProtection.EnabledtrueStops GTA spawning parked traffic on a lift platform.
SpawnProtection.Margin3.0Extra margin around the lift kept free of traffic.
SpawnProtection.Range200.0Distance from a lift at which the protection is active.

Terminal

OptionDefaultDescription
Interact'auto'auto uses ox_target when it runs and the key prompt when it does not. key or target forces one.
InteractKey38 (E)Control id for the key prompt.
InteractDistance4.5How close a player must stand to use the terminal.
DrawDistance22.0Further away the terminal screen is not rendered at all.
OpenSettleMs350Pause between the camera arriving and the menu showing.
Lighting.EnabledtrueLight strips on the terminal. They take the brand colour.
Lighting.Distance16.0Distance the strips are lit from.
Lighting.Range / Intensity1.1 / 1.6Range and strength of the terminal light.

Locales

Every text a player sees can be translated. The English text is the key, and locales/<Locale>.json maps it to your language. Texts you leave out stay in English.

Copy the English file

Copy locales/en.json to a new file named after your language code, e.g. locales/de.json.

Translate the values

Only change the text on the right side. Keep placeholders such as %d and %s in your translation.

locales/de.json
{
    "Move closer to your garage terminal.": "Geh näher an dein Garagenterminal.",
    "The lift is resetting. Try again in %d sec.": "Der Lift setzt sich zurück. Versuche es in %d Sek. erneut."
}

Select the language

Set EvolentGarageConfig.Locale = 'de' in config.lua, or pick it in /evgarage > Settings > Messages, then restart the resource.

Notifications

All notifications go through client/notify.lua, which is left open so you can point it at your own notification resource. By default it uses ox_lib.

client/notify.lua
-- data = { title, description, type = 'inform' | 'success' | 'error', duration = ms or nil }
function EvolentGarageNotify(data)
if type(data) ~= 'table' then
    return lib.notify(data)
end
data.title = EvolentGarageText(data.title)
data.description = EvolentGarageText(data.description)

-- your own resource instead of the line below, for example:
-- return TriggerEvent('myNotify', data.type, data.description, data.duration or 5000)
return lib.notify(data)
end

A few messages sent by the server (for example A vehicle of yours was recovered and taken to the impound) use the ox_lib:notify client event directly, so keep ox_lib installed even when you use your own notifications.

On this page