Général

OptionTypeDéfautDescription
Config.Frameworkstring'esx'Framework du serveur : 'esx', 'qbcore' ou 'standalone'.
Config.TargetSystemstring'ox_target'Système d'interaction PNJ : 'ox_target', 'qtarget' ou 'none'.
Config.Localestring'fr'Langue de l'interface : 'fr' ou 'en'.

Administration

OptionTypeDéfautDescription
Config.AdminGroupstable{'admin','superadmin','god'}Groupes autorisés à utiliser /rentaladmin.
Config.AdminJobstable{}Jobs ayant accès au panel admin. Ex : {'mechanic'}.

Durées de location

Config.Durations — Durées proposées au joueur. Chaque entrée :

CléDescription
minutesDurée en minutes réelles (1440 = 1 jour).
labelTexte affiché dans l'UI.
multiplierCoefficient appliqué au price_per_day. 1.0 = 1 jour complet. Utilisez des valeurs inférieures à la durée réelle pour offrir des réductions longue durée.
Exemple
Config.Durations = {
    { minutes = 30,    label = '30 minutes',  multiplier = 0.02  },
    { minutes = 60,    label = '1 heure',     multiplier = 0.042 },
    { minutes = 360,   label = '6 heures',    multiplier = 0.25  },
    { minutes = 1440,  label = '1 jour',      multiplier = 1.0   },
    { minutes = 4320,  label = '3 jours',     multiplier = 2.8   },  -- 2.8 au lieu de 3 = -7% de réduction
    { minutes = 10080, label = '7 jours',     multiplier = 6.0   },  -- 6.0 au lieu de 7 = -14% de réduction
}

Prolongation rapide

Config.QuickExtend — Options affichées quand le joueur veut prolonger une location en cours.

Exemple
Config.QuickExtend = {
    { minutes = 30,   label = '+30 min' },
    { minutes = 60,   label = '+1h' },
    { minutes = 1440, label = '+1 jour' },
}

Assurances

Config.Insurance — Niveaux d'assurance au choix du joueur.

CléDescription
labelNom affiché dans l'interface.
multiplierSurcoût en % du prix de base. 0.15 = +15%.
damageReductionRéduction des pénalités dégâts. 0.50 = -50%, 0.90 = -90%.
Exemple
Config.Insurance = {
    none     = { label = 'Aucune',   multiplier = 0.00, damageReduction = 0.0  },
    standard = { label = 'Standard', multiplier = 0.15, damageReduction = 0.50 },
    premium  = { label = 'Premium',  multiplier = 0.30, damageReduction = 0.90 },
}

Politiques de carburant

Config.FuelPolicies

IdentifiantFonctionnement
full_to_fullLivré plein, doit être rendu plein. Pénalité de fuelCostPerPercent $/% manquant.
flat_rateForfait fixe flatCost ajouté au prix. Pas de pénalité carburant.

Pénalités

Config.Penalties — Montants calculés automatiquement à la restitution.

CléDéfautDescription
latePerMinute2$/minute de retard (après grâce).
lateGracePeriod5Minutes de tolérance avant pénalité retard.
damagePerPercent10$/% de dommage (réduit par assurance).
fuelPerPercent5$/% carburant manquant (plein→plein).
destroyedMultiplier2.0Si détruit : pénalité = caution × ce chiffre.

Paiement & Véhicule

OptionDéfautDescription
Config.PaymentMethods{'bank','cash'}Méthodes de paiement disponibles.
Config.DefaultPayment'bank'Méthode sélectionnée par défaut.
Config.DeliveryCost200Coût de livraison ($).
Config.FuelLevel100.0Carburant du véhicule à la livraison (0-100).
Config.PlatePrefix'RNT'Préfixe des plaques (max 3 car.). Ex : RNT482XY.
Config.SpawnDistance80.0Distance max (m) pour le spawn véhicule.

Showroom

CléDéfautDescription
enabledtrueActive la prévisualisation 3D des véhicules.
camDistance6.0Distance caméra → véhicule (m).
camHeight1.5Hauteur de la caméra (m).
rotateSpeed0.5Vitesse de rotation automatique.

Rate-limiting

CléDéfautDescription
rentCooldown5000Délai min entre 2 locations (ms).
returnCooldown5000Délai min entre 2 restitutions.
extendCooldown5000Délai min entre 2 prolongations.

Blips

CléDéfautDescription
sprite226ID du sprite GTA V. Référence.
color3Couleur du blip. 3 = bleu clair.
scale0.7Taille du blip sur la carte.
label'Location de véhicules'Nom dans la légende (groupé automatiquement).

Interaction

OptionDéfautDescription
Config.InteractDistance2.5Distance d'interaction PNJ (m).
Config.DrawDistance15.0Distance d'affichage markers/PNJ (mode sans target).

Thème UI

Config.Theme — Changez les couleurs de l'interface sans toucher au CSS. Format HEX #RRGGBB.

CléDéfautDescription
accent#6366f1Couleur principale (boutons, liens, éléments actifs).
accentLight#818cf8Variante claire (hover, titres, icônes).
green#34d399Succès (confirmations, stock dispo).
red#f87171Danger (erreurs, pénalités, suppression).
orange#fbbf24Avertissement (retard, alertes).
bgPrimary#0a0a12Fond principal.
bgSecondary#121220Fond secondaire (sidebar, sections).
bgCard#161628Fond des cartes et modales.
textPrimary#eef0f6Texte principal.
textSecondary#c8cddcTexte secondaire.
Les couleurs dérivées (glow, hover, muted) sont calculées automatiquement.
Exemples de thèmes
-- Thème Rouge
Config.Theme = {
    accent = '#ef4444', accentLight = '#f87171',
    green = '#34d399', red = '#f87171', orange = '#fbbf24',
    bgPrimary = '#0a0a12', bgSecondary = '#1a1014', bgCard = '#201418',
    textPrimary = '#eef0f6', textSecondary = '#c8cddc',
}

-- Thème Émeraude
Config.Theme = {
    accent = '#10b981', accentLight = '#34d399',
    green = '#34d399', red = '#f87171', orange = '#fbbf24',
    bgPrimary = '#060e0a', bgSecondary = '#0c1a12', bgCard = '#122018',
    textPrimary = '#eef0f6', textSecondary = '#c8cddc',
}

-- Thème Or / Luxe
Config.Theme = {
    accent = '#f59e0b', accentLight = '#fbbf24',
    green = '#34d399', red = '#f87171', orange = '#fbbf24',
    bgPrimary = '#0e0c06', bgSecondary = '#1a180c', bgCard = '#201e10',
    textPrimary = '#eef0f6', textSecondary = '#c8cddc',
}

Webhook Discord

Config.Webhook

CléDéfautDescription
enabledfalseActive les notifications Discord.
url''URL complète du webhook Discord.
botName'Perfect Rentals'Nom du bot dans Discord.
color3447003Couleur embed (décimal). 3447003 = bleu.