Accueil › Documentation › Personnalisation · origen_masterjob
Le dossier custom/ gère l’intégration du framework, de l’inventaire, des vêtements, des véhicules, du carburant et des notifications sans toucher au cœur. Tous les fichiers sont escrow_ignore : ils survivent aux mises à jour.
custom/
├── client.lua — notifications, inventory, stash, clothing, garage, mechanic, keys, fuel
├── client_pay_bills.lua — bill payment NPC thread
├── blips.lua — business blip rendering
└── server/
├── command.lua — admin command definitions
├── main.lua — inventory helpers, vehicle queries, payment, keys, bill sending
└── menu/
└── phone.lua — phone number lookupCustom.canOpenMenu(job) → { success, message }Détermine si le joueur local peut ouvrir le menu de l’entreprise. Renvoie success = false avec un message pour bloquer l’accès.
Custom.canOpenMenu = function(job)
return { success = true, message = '' }
endCustom.ShowNotification(msg)Affiche une notification au joueur local. Utilisé quand Config.CustomNotify = true.
Custom.ShowNotification = function(msg)
-- Add your notification here
-- Example: exports["origen_notify"]:ShowNotification(msg, "business")
endCustom.ShowShopState(msg)Affiche une notification liée à la boutique (par exemple achat réussi ou échoué).
Custom.ShowShopState = function(msg)
-- Same as ShowNotification but can use a different style
endShowHelpNotification(key, msg)Affiche une aide d’interaction dans le monde. Utilisé quand Config.OrigenNotify = true.
function ShowHelpNotification(key, msg)
-- Default: uses origen_notify CreateHelp
-- Add your own implementation if not using origen_notify
endCustom.DrawText(key, msg) / Custom.HideText()Affiche l’aide d’interaction via l’interface de texte. Utilisé quand Config.customDrawText = true.
GetItemData(item) → table | nilRenvoie les données d’un objet depuis le système d’inventaire actif. Redirige selon Config.Inventory.
OpenStash(Sid, Sslots, label, preId)Ouvre l’inventaire d’un coffre. Redirige selon Config.Inventory :
ox_inventory → openInventory('stash', ...)codem-inventory → OpenStash(...)OpenOutfitMenu(canEdit)Ouvre le menu de sélection des tenues. Redirige selon Config.Clothing.
openPlayerInventory(pID)Ouvre l’inventaire d’un autre joueur (pour le métier de mécanicien). Redirige selon Config.Inventory.
Custom.ReapirVehicle(vehicle)Répare un véhicule. Implémente ici ta correction des déformations si nécessaire.
Custom.ReapirVehicle = function(vehicle)
-- exports['VehicleDeformation']:FixVehicleDeformation(vehicle)
endCustom.GetVehicleProperties(vehicle) / Custom.SetVehicleProperties(vehicle, mods)Récupère ou applique les modifications d’un véhicule. Redirige selon Config.Framework.
Custom.GetVehicleFuel(vehicle) / Custom.SetVehicleFuel(vehicle, fuel)Récupère ou applique le carburant d’un véhicule. Implémente ici ton système de carburant.
Custom.GetVehicleFuel = function(vehicle)
-- return exports['FuelSystem']:GetFuel(vehicle)
endCustom.OpenModificationMenu(vehicle)Ouvre le menu de tuning. Implémente ici ton système de tuning.
Custom.OpenModificationMenu = function(vehicle)
-- Used when Config.CustomMechanic = true
endCustom.GetClientVehicleKeys(vehicle)Donne au joueur les clés d’un véhicule côté client. Implémente ici ton système de clés.
Custom.GetClientVehicleKeys = function(vehicle)
local plate = GetVehicleNumberPlateText(vehicle)
TriggerEvent("vehiclekeys:client:SetOwner", plate)
endCustom.SpawnVehicle(model, cb, coords, isNetwork)Fait apparaître un véhicule. Redirige selon Config.Framework.
CustomGarage(PlayerData, coords) / CustomGarageBusiness(PlayerData, coords)Remplace le garage par défaut par ton propre système. N’est appelé que lorsque Config.CustomGarage = true.
Custom.RemoveMoney(Player, account, amount, log) → booleanRetire de l’argent du compte d’un joueur. Gère l’objet argent liquide d’ox_inventory et les comptes du framework.
Custom.GetVehicleKeys(source, plate)Donne les clés d’un véhicule côté serveur. Implémente ici ton système de clés.
Custom.GetVehicleKeys = function(source, plate)
TriggerClientEvent("vehiclekeys:client:SetOwner", source, plate)
endCustom.GetVehicleData(plate) → { owner } | falseRenvoie l’identifiant du propriétaire d’un véhicule à partir de sa plaque, depuis la table des véhicules du framework.
Custom.PlateGenerator() → stringGénère une plaque d’immatriculation personnalisée. Implémente ici ta propre logique.
Custom.PlateGenerator = function()
local plate = ''
-- your plate generation logic
return plate
endCustom.QueryGiveBusinesscar(values) / Custom.QueryRemoveBusinesscar(values)Insère ou supprime un véhicule dans la table des véhicules du framework quand un véhicule d’entreprise est attribué ou retiré.
Custom.SendBill → false | functionRemplace la logique de création de factures par défaut. Affecte-lui une fonction pour utiliser ton propre système de facturation :
Custom.SendBill = function(data, cb)
-- data: { senderSource, receiverSource, price, concept, business }
-- cb(true) on success, cb('error message') on failure
local success = MySQL.insert.await('INSERT INTO bills (...) VALUES (...)', {...})
cb(success or 'Failed to send bill')
end