Général
| Option | Type | Défaut | Description |
Config.Framework | string | 'esx' | Framework du serveur : 'esx', 'qbcore' ou 'standalone'. |
Config.TargetSystem | string | 'ox_target' | Système d'interaction PNJ : 'ox_target', 'qtarget' ou 'none'. |
Config.Locale | string | 'fr' | Langue de l'interface : 'fr' ou 'en'. |
Administration
| Option | Type | Défaut | Description |
Config.AdminGroups | table | {'admin','superadmin','god'} | Groupes autorisés à utiliser /rentaladmin. |
Config.AdminJobs | table | {} | 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 |
minutes | Durée en minutes réelles (1440 = 1 jour). |
label | Texte affiché dans l'UI. |
multiplier | Coefficient 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 |
label | Nom affiché dans l'interface. |
multiplier | Surcoût en % du prix de base. 0.15 = +15%. |
damageReduction | Ré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
| Identifiant | Fonctionnement |
full_to_full | Livré plein, doit être rendu plein. Pénalité de fuelCostPerPercent $/% manquant. |
flat_rate | Forfait fixe flatCost ajouté au prix. Pas de pénalité carburant. |
Pénalités
Config.Penalties — Montants calculés automatiquement à la restitution.
| Clé | Défaut | Description |
latePerMinute | 2 | $/minute de retard (après grâce). |
lateGracePeriod | 5 | Minutes de tolérance avant pénalité retard. |
damagePerPercent | 10 | $/% de dommage (réduit par assurance). |
fuelPerPercent | 5 | $/% carburant manquant (plein→plein). |
destroyedMultiplier | 2.0 | Si détruit : pénalité = caution × ce chiffre. |
Paiement & Véhicule
| Option | Défaut | Description |
Config.PaymentMethods | {'bank','cash'} | Méthodes de paiement disponibles. |
Config.DefaultPayment | 'bank' | Méthode sélectionnée par défaut. |
Config.DeliveryCost | 200 | Coût de livraison ($). |
Config.FuelLevel | 100.0 | Carburant du véhicule à la livraison (0-100). |
Config.PlatePrefix | 'RNT' | Préfixe des plaques (max 3 car.). Ex : RNT482XY. |
Config.SpawnDistance | 80.0 | Distance max (m) pour le spawn véhicule. |
Showroom
| Clé | Défaut | Description |
enabled | true | Active la prévisualisation 3D des véhicules. |
camDistance | 6.0 | Distance caméra → véhicule (m). |
camHeight | 1.5 | Hauteur de la caméra (m). |
rotateSpeed | 0.5 | Vitesse de rotation automatique. |
Rate-limiting
| Clé | Défaut | Description |
rentCooldown | 5000 | Délai min entre 2 locations (ms). |
returnCooldown | 5000 | Délai min entre 2 restitutions. |
extendCooldown | 5000 | Délai min entre 2 prolongations. |
Blips
| Clé | Défaut | Description |
sprite | 226 | ID du sprite GTA V. Référence. |
color | 3 | Couleur du blip. 3 = bleu clair. |
scale | 0.7 | Taille du blip sur la carte. |
label | 'Location de véhicules' | Nom dans la légende (groupé automatiquement). |
Interaction
| Option | Défaut | Description |
Config.InteractDistance | 2.5 | Distance d'interaction PNJ (m). |
Config.DrawDistance | 15.0 | Distance 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éfaut | Description |
accent | #6366f1 | Couleur principale (boutons, liens, éléments actifs). |
accentLight | #818cf8 | Variante claire (hover, titres, icônes). |
green | #34d399 | Succès (confirmations, stock dispo). |
red | #f87171 | Danger (erreurs, pénalités, suppression). |
orange | #fbbf24 | Avertissement (retard, alertes). |
bgPrimary | #0a0a12 | Fond principal. |
bgSecondary | #121220 | Fond secondaire (sidebar, sections). |
bgCard | #161628 | Fond des cartes et modales. |
textPrimary | #eef0f6 | Texte principal. |
textSecondary | #c8cddc | Texte 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éfaut | Description |
enabled | false | Active les notifications Discord. |
url | '' | URL complète du webhook Discord. |
botName | 'Perfect Rentals' | Nom du bot dans Discord. |
color | 3447003 | Couleur embed (décimal). 3447003 = bleu. |