Skip to content

Retro Car Rental

Everything lives in config/config.lua.

  • Config.Framework = 'auto' - or 'qbcore', 'qbox', 'esx'
  • Config.Locale = 'en'
  • Config.CurrencySymbol = '$'
  • Config.CurrencyPosition = 'before' - $1,000 vs 1,000$

Config.VehicleImageSource - URL pattern. %s is replaced with the vehicle model name.

Default uses the FiveM docs CDN. Set to 'local' to load from web/dist/images/{model}.png.

  • Config.MaxRentals = 1 - simultaneous rentals per player
  • Config.MinRentalHours = 0.01
  • Config.MaxRentalHours = 24
  • Config.ReturnRefundPercent = 50 - early return refund percentage
  • Config.OverdueRatePerHour = 1.5 - fee multiplier per overdue hour
  • Config.DamageChargeEnabled = true
  • Config.DamageChargeMultiplier = 1.0
Config.PaymentMethods = {
{ id = 'cash', label = 'Cash', enabled = true },
{ id = 'bank', label = 'Bank Account', enabled = true },
{ id = 'crypto', label = 'Crypto', enabled = false },
}

Longer extensions get better discounts:

Config.ExtendOptions = {
{ hours = 1, discount = 0 },
{ hours = 2, discount = 10 },
{ hours = 5, discount = 20 },
}

VIP unlocks restricted categories and applies a flat discount to all rentals. Activation requires both an inventory item and a valid (non-expired) database entry.

  • Config.VipEnabled = true
  • Config.VipItemName = 'vip_rental_card'
  • Config.VipDiscountPercent = 15
Config.VipOptions = {
{ id = 'hour', label = '1 Hour', price = 5000, duration = 3600 },
{ id = 'day', label = '1 Day', price = 15000, duration = 86400 },
}
Config.Categories = {
{
id = 'super', label = 'Super', icon = 'fa-solid fa-gauge-high',
vehicles = {
{ model = 'zentorno', label = 'Zentorno', price = 2500, fuel = 90, engine = 100, brakes = 85 },
},
},
{
id = 'vip', label = 'VIP', icon = 'fa-solid fa-crown', requiresVip = true,
vehicles = { ... },
},
}

requiresVip = true restricts the entire category to VIP members.

Each location spawns an NPC and registers a blip:

Config.Locations = {
{
id = 'legion_square',
label = 'Legion Square Rental',
npc = {
model = 's_m_y_valet_01',
coords = vector4(45.96, -842.45, 29.89, 242.4),
scenario = 'WORLD_HUMAN_CLIPBOARD',
},
spawnPoint = vector4(53.77, -846.53, 30.42, 158.01),
blip = { enabled = true, sprite = 225, color = 5, scale = 0.8, label = 'Car Rental' },
},
}

Resources to hide/show when the rental UI opens:

Config.ExternalUIToggle = {
{ resource = 'nox-name', export = 'ToggleNameplate' },
{ resource = 'nc-hud', export = 'ToggleHUD' },
}
  • Config.Commands.openMenu = 'rental' - debug toggle
  • Config.Commands.adminReturn = 'rentalreturn' - /rentalreturn [id] force return from console