Documentation · En jeu

Économie, métiers et commerces

Banque, factures, salaires, entreprises, supérettes, bars, petits jobs.

SommaireÉconomie, métiers et commerces

Vue d'ensemble

L'argent circule par trois comptes : le liquide (money), la banque (bank) et l'argent sale (black_money). Les entreprises ont leur propre compte société, qui encaisse les ventes et les factures et paie les salaires.

BriqueCe qu'elle faitOù ça se règle
BanqueComptes, cartes et codes PIN, virements, DAB, compte d'entreprisePanel › Banque, F10 › Économie & braquages › Banque
FacturesFactures et amendes, payées depuis le portefeuillePanel › Menu F6 entreprises, page Factures du panel
SalairesPaie automatique selon le gradePanel › Salaires
EntreprisesMenu patron, coffre, vestiaire, recrutementPanel › Entreprises, F10 › Sociétés, F10 › Métiers & grades
Supérettes LTDCaisses tenues par des joueurs, stock, réassort, libre-servicePanel › Supérettes LTD, F10 › Commerces
Bars et restaurantsCommandes, préparation, retrait au comptoirPanel › Bars & restaurants, F10 › Commerces
Petits jobsTournées payées (livreur, bus, taxi…)Panel › Petits jobs, F10 › Petits jobs
Auto-école et documentsCode, examen de conduite, cartes d'identité et permisPanel › Auto-école, Panel › Documents
Garages d'entrepriseVéhicules de service par métier et par gradePanel › Garages d'entreprise, F10 › Métiers & grades

Les menus F10 cités ici sont dans F10 › Gestion du serveur et demandent d'être en service. Pour ce que vivent les joueurs au quotidien, voir aussi Vie quotidienne.

Banque

Ce que font les joueurs

  • Aux guichets de banque, touche E « Accéder à la banque » : solde, dépôt, retrait, virement vers un autre compte (IBAN), historique, contacts.
  • Aux distributeurs (DAB), avec le ciblage : mêmes opérations, protégées par le code PIN de la carte.
  • Au guichet entreprise (E « Banque d'entreprise ») : consultation du compte société, dépôt, retrait et versement des salaires, selon le grade.

Mise en place

Les montants et les droits se règlent dans Panel › Banque :

RéglageCléDéfaut
Dépôt minimum / maximumbanking.minDeposit, banking.maxDeposit1 $ / 999 999 $
Retrait minimum / maximumbanking.minWithdraw, banking.maxWithdraw1 $ / 999 999 $
Virement minimum / maximumbanking.minTransfer, banking.maxTransfer1 $ / 999 999 $
Transactions par pagebanking.transactionsPerPage7
Code PIN par défaut (privé)banking.defaultPin0000
Préfixe des IBANbanking.ibanPrefixLS
Grades : accès au compte sociétébanking.companyAccessGradesboss, sousboss
Grades : retrait sociétébanking.companyWithdrawGradesboss
Grades : versement des salairesbanking.companySalaryGradesboss, sousboss

Dans le jeu, F10 › Gestion du serveur › Économie & braquages › Banque (permission admin.economy) affiche les limites en vigueur, la liste des comptes d'entreprise avec leur IBAN et leur solde, et permet de réinitialiser un code PIN à partir de l'IBAN.

Pièges

  • Noms de grades. Les trois listes de grades comparent le nom technique du grade (pas son numéro ni son libellé). Les entreprises créées depuis le menu admin reçoivent par défaut les grades novice, employed, sous-boss et boss : avec le réglage livré (sousboss sans tiret), le Responsable n'a pas accès au compte société. Ajoute sous-boss aux listes si tu veux lui donner ce droit.
  • banking.maxTransfer est le garde-fou principal contre le vidage d'un compte volé : ne le monte pas sans raison.

Factures et amendes

Ce que font les joueurs

Un employé envoie une facture à un joueur proche (menu F6 de son entreprise, ou outil du métier : soins EMS, réparation mécano, amende police…). Le destinataire reçoit une notification avec Y pour payer et N pour refuser ; il retrouve ses factures en attente dans son portefeuille (F5). Une fois payée, la somme va sur le compte de la société émettrice.

Mise en place

Tout passe par la ressource esx_billing. Côté code, une seule fonction crée une facture :

-- cible, émetteur, société, type (« amende » = amende, sinon facture), libellé, montant
Core.createBill(targetSource, senderSource, "mecano", "mecano", "Réparation", 450)
-- depuis une autre ressource :
exports.core:createBill(targetSource, senderSource, "mecano", "mecano", "Réparation", 450)

Pour un joueur hors ligne (tablette police ou EMS), Core.createOfflineBill(identifier, société, type, libellé, montant) écrit la facture directement : il la voit à sa reconnexion. Si esx_billing est arrêté, les factures sont rangées dans une table de repli (core_bills). Détails techniques : API développeur.

Les règles de la facturation du menu F6 sont dans Panel › Menu F6 entreprises :

RéglageCléDéfaut
Montant max d'une facturebusinessmenu.maxBill1 000 000 $
Distance de facturationbusinessmenu.billDistance5 m
Service requis pour facturerbusinessmenu.requireServiceactivé

La page Factures du panel

Communauté › Factures montre, par société, le total encaissé, le total en attente et le nombre de factures, puis la liste détaillée (libellé, joueur, société ou émetteur, montant, état). Filtres : Tout / Factures / Amendes, et En attente / Payées. Un clic sur le joueur ouvre sa fiche.

Salaires et grades

Ce que font les joueurs

À chaque intervalle, chaque joueur connecté touche sur sa banque le salaire de son grade. Hors service, il ne touche qu'une partie du salaire. Un joueur sans emploi touche l'aide sociale.

Mise en place

Les grades et leurs salaires se règlent dans F10 › Gestion du serveur › Métiers & grades (permission admin.job) : créer un métier (nom interne, nom affiché, whitelist), puis Grades & salaires (nom interne, nom affiché, rang hiérarchique, salaire). Le patron d'une entreprise peut aussi modifier les salaires depuis son menu patron, dans la limite de society.maxSalary.

Panel › Salaires :

RéglageCléDéfaut
Paie automatiquepaycheck.enabledactivé
Intervalle de paiepaycheck.interval15 min
Salaire hors servicepaycheck.offDutyMultiplier50 %
Débiter le compte sociétépaycheck.fromSocietyactivé
Aide sociale (sans emploi)paycheck.welfare200 $
Métiers payés par l'Étatpaycheck.stateJobspolice, saspn, gouvernement, ambulance, ambulancesandy

Exemple : pour une paie toutes les 30 minutes, entièrement versée même hors service, mets paycheck.interval à 30 et paycheck.offDutyMultiplier à 100.

Pièges

  • Avec Débiter le compte société activé, une entreprise sans argent ne paie pas : l'employé reçoit « Votre entreprise n'a pas pu verser votre salaire ». Les métiers de paycheck.stateJobs ne sont jamais concernés.
  • Désactiver Débiter le compte société crée l'argent de rien : surveille l'inflation.
  • Les salaires automatiques n'apparaissent pas dans les logs d'argent (raison Paycheck ignorée par défaut, voir Logs).

Entreprises et coffres

Ce que font les joueurs

Chaque entreprise a trois points :

  • Menu patron : compte de la société (déposer, retirer, transactions), employés (recruter le joueur le plus proche, promouvoir, rétrograder, licencier), grades (créer, renommer, salaires, permissions), statut ouvert / fermé.
  • Coffre : un inventaire ox_inventory partagé.
  • Vestiaire : enregistrer la tenue portée, la réserver à certains grades, l'enfiler.

Le menu F6 générique donne la prise de service, le statut, la facturation et les annonces (le type « club » ajoute les annonces d'ouverture, de fermeture et de soirée).

Mise en place

  1. F10 › Gestion du serveur › Sociétés › Créer une société (permission admin.society) : nom interne (le métier), nom affiché, position du menu patron, du coffre, du vestiaire, blip et logo. Le métier et ses grades par défaut sont créés en même temps.
  2. Ou depuis Métiers & grades : fiche du métier › Créer l'entreprise ici.
  3. Pour le menu F6, ajoute le métier à Panel › Menu F6 entreprises › Entreprises du menu F6 (businessmenu.jobs) avec son type (basic, store, club ou restaurant).

Réglages utiles de Panel › Entreprises :

RéglageCléDéfaut
Emplacements du coffresociety.stashSlots60
Poids max du coffresociety.stashWeight1 000 000 g
Grades à la créationsociety.defaultGradesNovice, Employé, Responsable, Patron
Nombre max de gradessociety.maxGrades15
Salaire max d'un gradesociety.maxSalary5 000 $
Grades verrouillés (métiers)society.lockedGradeJobspolice
Métiers protégés du débauchagesociety.protectedJobspolice, saspn, ambulance, ambulancesandy, gouvernement
Grade minimum pour ouvrir/fermersociety.statusMinGrade1

Pièges

  • Un métier qui n'est pas dans businessmenu.jobs n'a pas de menu F6, donc pas de prise de service : ses employés ne peuvent ni facturer, ni vendre si le service est obligatoire.
  • La taille du coffre s'applique au prochain rechargement des entreprises.
  • Ne renomme pas le nom technique des grades d'un métier dont d'autres scripts dépendent : ajoute-le plutôt à society.lockedGradeJobs.

Supérettes LTD

Ce que font les joueurs

Avec un employé. L'employé, en service (F6), cible une caisse de son magasin : Ouvrir la caisse. Il compose le panier du client, qui reçoit une demande de paiement (espèces ou carte bancaire). Une fois accepté, le client reçoit les articles et la recette va sur le compte de l'entreprise. Un responsable peut aussi Commander du stock, payé par le compte de la société.

Sans employé : le libre-service. Quand aucun employé autorisé n'est en service, un PNJ de caisse apparaît derrière le comptoir. Le joueur s'approche, appuie sur E Faire ses courses, remplit son panier et paie lui-même (espèces ou banque). La recette va aussi sur le compte de l'entreprise. Dès qu'un employé prend son service, le PNJ disparaît (l'état est recalculé toutes les 5 secondes).

Créer une supérette

Tout se fait dans F10 › Gestion du serveur › Commerces (permission admin.business) :

  1. Magasins LTD › Créer un magasin (ta position) : identifiant interne (unique, sans espaces), nom affiché, métiers autorisés (séparés par des virgules). Une première caisse est posée à ta position.
  2. Si le métier n'existe pas encore, il est créé automatiquement avec les grades par défaut (society.defaultGrades), en métier whitelist. Gère ensuite ses grades dans Métiers & grades. Les magasins créés avant cette fonction récupèrent leur métier manquant au démarrage du serveur.
  3. Dans la fiche du magasin : Caisses (ajouter à ta position, déplacer, taille de la zone, supprimer), Stock (quantités en rayon), nom affiché, métiers autorisés.
  4. PNJ libre-service : placer ici : place-toi à la place du vendeur, tourné vers les clients, et valide. Modèle du PNJ change son apparence (vide = modèle par défaut du panel). Retirer le PNJ supprime le libre-service de ce magasin.
  5. Catalogue LTD : catégories (nom, icône), puis produits (identifiant de l'objet ox_inventory, nom affiché, prix, image). Le catalogue est commun à toutes les supérettes.
  6. Ajoute le métier à businessmenu.jobs (type store) pour que les employés aient le menu F6.

Recharger les commerces (ou /reloadbusiness) applique les changements sans redémarrer.

Réglages : Panel › Supérettes LTD

RéglageCléDéfaut
Service obligatoire pour vendre (Panel › Commerces)business.requireDutyactivé
Distance maximale de la caisseltd.registerDistance3 m
Distance employé ↔ clientltd.billDistance5 m
Quantité maximale par articleltd.maxQuantity50
Articles différents par panierltd.maxLines20
Délai de réponse du clientltd.requestTimeout60 s
Stock limité par magasinltd.useStockdésactivé (stock illimité)
Coût du réassortltd.restockCostPercent60 % du prix de vente
Grade minimum pour le réassortltd.restockMinGrade2
Réassort maximal par commandeltd.restockMax500
Stock maximal par articleltd.stockMax2 000
Libre-service sans employéltd.selfServiceactivé
Modèle du PNJ par défautltd.selfServicePedmp_m_shopkeep_01
Prix en libre-serviceltd.selfServicePercent100 %
Distance du PNJ de caisseltd.selfServiceDistance3 m

Exemple : pour rendre les courses sans vendeur 20 % plus chères et pousser au recrutement, mets Prix en libre-service (ltd.selfServicePercent) à 120. Les bornes vont de 50 % à 300 %.

Pièges

  • Pas de PNJ placé et personne en service = magasin fermé. Le libre-service n'existe que dans les magasins où un PNJ a été placé.
  • Un produit doit être un objet ox_inventory existant : sinon l'enregistrement est refusé (« Objet inconnu d'ox_inventory »). Voir Objets.
  • Avec le stock limité, un produit à 0 n'est plus proposé, y compris en libre-service. Le réassort n'est possible que si ltd.useStock est activé.
  • Le fichier config.lua de la ressource ltd ne sert qu'au tout premier démarrage : ensuite la base fait foi, modifie tout depuis le menu Commerces.

Bars et restaurants

Ce que font les joueurs

L'employé en service prend la commande au point de commande et envoie la note au client, qui la règle (avec un pourboire s'il le souhaite). Les plats se préparent aux postes de préparation (une animation par étape). Le client récupère sa commande au comptoir de retrait ; une commande payée et jamais retirée est annulée et remboursée.

Établissements livrés : Burgershot, Pops Diner, Pearls, Beach Club, Unicorn, Pacific et Tequila.

Mise en place

  • La carte (plats, prix, catégories, image) : F10 › Commerces › Bars & Restaurants, puis l'établissement. Chaque plat est un objet ox_inventory.
  • Les règles : Panel › Bars & restaurants.
  • Les positions des points de commande, postes et comptoirs, et les étapes de préparation, sont décrites dans le fichier config.lua de la ressource order-system.
RéglageCléDéfaut
Distance employé ↔ clientorders.billDistance5 m
Distance du point de commandeorders.counterDistance3,5 m
Distance des postes de préparationorders.craftDistance3,5 m
Distance du comptoir de retraitorders.pickupDistance3,5 m
Quantité maximale par platorders.maxQuantity20
Plats maximum par commandeorders.maxItems40
Délai de retraitorders.pickupTimeout30 min
Plats pris dans le coffreorders.useJobStockdésactivé
Consommer les ingrédientsorders.consumeIngredientsdésactivé
Recettes (ingrédients par plat)orders.recipesvide
Pourboires / Pourboire maximalorders.tipEnabled, orders.tipMaxactivé / 500 $

Exemple de recette : pour qu'un burger du Burgershot consomme un pain et un steak du coffre, active orders.consumeIngredients et ajoute deux lignes à orders.recipes : établissement restau_burgershot, plat <objet du burger>, ingrédient bread, quantité 1 ; puis la même ligne avec l'ingrédient steak.

Pièges

  • Avec orders.useJobStock ou orders.consumeIngredients, le paiement échoue si le coffre de la société ne contient pas de quoi servir : pense au réapprovisionnement.
  • Une étape de préparation validée trop vite est refusée (orders.stepTolerance, 80 % de la durée de l'animation par défaut).

Petits jobs

Ce que font les joueurs

Au Pôle emploi, un conseiller présente les petits jobs : livreur, éboueur, taxi, chauffeur de bus, livreur de pizzas, jardinier, agent de propreté. Le joueur choisit, le GPS le mène au dépôt. Il y paie une caution, reçoit son véhicule de travail et suit les arrêts tirés au sort. Chaque arrêt validé paie ; au retour au dépôt, véhicule rendu, il récupère sa caution et touche une prime de fin de tournée.

TypeDéroulement
À pied (onfoot)Descendre du véhicule et faire l'action (colis, pizza, poubelle, jardinage, nettoyage), véhicule à proximité
Taxi (taxi)Prendre un client puis le déposer, payé à la course et au kilomètre
Bus (bus)Suivre la ligne dans l'ordre, marquer chaque arrêt véhicule immobile

Mise en place

Chaque job est une ligne de Panel › Petits jobs › Jobs (starterjobs.jobs) : identifiant, type, animation, nom affiché, présentation, véhicule, icône du dépôt, caution, paie par arrêt, prime, $ par km (taxi), dépôt, sortie du véhicule.

Les positions se posent en jeu dans F10 › Gestion du serveur › Petits jobs (permission admin.job) : choisis le job, puis Dépôt ici, Sortie du véhicule ici, Ajouter un arrêt ici, Effacer les arrêts.

Le scanner d'abribus. Le bus n'a pas d'arrêt par défaut. Dans la fiche du job bus, Ajouter les abribus autour de moi repère les vrais abribus visibles autour de toi (environ 150 m) et les ajoute dans l'ordre du trajet ; un abribus déjà connu (à moins de 15 m) n'est pas ajouté deux fois. Roule en ville et recommence à plusieurs endroits pour construire la ligne.

RéglageCléDéfaut
Petits jobs actifsstarterjobs.enabledactivé
Réservés aux sans-emploistarterjobs.onlyUnemployeddésactivé
Arrêts par tournéestarterjobs.stopsPerRun6
Pause entre deux tournéesstarterjobs.cooldown2 min
Distance de validation d'un arrêtstarterjobs.stopDistance10 m
Vitesse de référence anti-trichestarterjobs.maxSpeed45 m/s
Pôle emploi : position du PNJstarterjobs.jobCenter-268.5, -956.4, 31.2
Recrutement obligatoirestarterjobs.jobCenterRequiredactivé
Bus : durée d'un arrêtstarterjobs.busWait6 s
Dépôts sur la cartestarterjobs.showBlipsactivé

Pièges

  • Un job n'est proposé qu'avec un dépôt, une sortie et au moins trois arrêts. Le menu admin indique « prêt » ou « incomplet » pour chaque job.
  • La caution est prélevée sur la banque ; si le véhicule n'est pas rendu, elle est perdue.
  • Un arrêt atteint plus vite que la vitesse de référence est refusé : ne la baisse pas trop pour le taxi.

Auto-école et documents

Ce que font les joueurs

  • Auto-école : au secrétariat (E), le joueur passe le code (questionnaire payant), puis l'examen de conduite du permis choisi sur un parcours, avec un véhicule de l'auto-école. Les fautes (excès de vitesse, collision, stop grillé) sont comptées ; au-delà du maximum, l'examen est échoué.
  • Documents : à la mairie, le PNJ « Administration » imprime les documents officiels (carte d'identité, permis de port d'arme…) sous forme d'objet license_card.

Mise en place

Panel › Auto-école : position et modèle du PNJ du secrétariat, plaque des véhicules, prix du code (driveschool.writtenPrice, 500 $), erreurs autorisées au code (driveschool.quizMaxErrors, 3), tolérance de vitesse, Permis disponibles (driveschool.licenses : voiture 2 500 $, moto 2 000 $, poids lourd 5 000 $), Parcours d'examen (driveschool.routes : permis, véhicule, prix, fautes max, rayon ; un prix renseigné ici remplace celui du permis) et Questions du code (driveschool.questions, 15 questions livrées).

Les points du parcours se posent en jeu dans F10 › Gestion du serveur › Auto-école (permission admin.job) : Départ ici (remet à zéro), Ajouter un passage ici, Ajouter un stop ici (le candidat doit s'y arrêter complètement), Limite des prochains points, Retirer le dernier point, Voir le parcours sur la carte.

Panel › Documents : position et modèle du PNJ (licenses.ped, licenses.pedModel), Documents disponibles (licenses.cards : clé, type identite / licence / job, libellé, prix, badge, métier, couleur) et objet carte (licenses.item, license_card). Les licences d'un joueur se voient et s'attribuent avec la permission admin.licenses.

Pièges

  • La clé d'un permis (key) doit être la même dans Permis disponibles et dans Parcours d'examen (license) : sinon pas d'examen pour ce permis.
  • Les questions du code sont privées (jamais envoyées aux joueurs) ; good est le numéro de la bonne réponse (1 à 4).

Garages d'entreprise

Ce que font les joueurs

Un employé (en service si le garage l'exige) ouvre le garage de son métier : les véhicules de service s'affichent par catégorie, présentés devant le garage (caméra fixe, rotation à la souris, barres de vitesse, freinage, accélération, adhérence). Seuls les véhicules autorisés à son grade sont proposés. Il le range au point de rangement.

Mise en place

Le plus simple : F10 › Gestion du serveur › Métiers & grades › fiche du métier › Garage (permission admin.job) :

  1. Créer un garage ici, puis Point d'ouverture ici, Exposition du véhicule ici (dans le sens voulu), Point de rangement ici, Ajouter une sortie ici (plusieurs possibles : la première libre est utilisée).
  2. Véhicules › Ajouter un véhicule : modèle, nom affiché, catégorie (onglet), grade minimum, livrée, couleurs principale et secondaire (index GTA).
  3. Prendre les photos des véhicules : chaque véhicule est photographié à l'emplacement d'exposition (pose-le d'abord).
  4. Options du garage : couleur, bannière, Service obligatoire.

Tout reste modifiable dans Panel › Garages d'entreprise (jobgarage.garages, jobgarage.spawns, jobgarage.vehicles), avec :

RéglageCléDéfaut
Véhicules sortis par employéjobgarage.maxOut1
Distance du point d'ouverturejobgarage.interactDistance2 m
Distance du point de rangementjobgarage.storeDistance6 m
Préfixe des plaquesjobgarage.platePrefixvide (4 premières lettres du métier)
Supprimer à la déconnexionjobgarage.deleteOnLeaveactivé

Exemple de ligne de Véhicules pour une voiture de patrouille réservée au grade 2 :

{ "garage": "police_mrpd", "model": "police3", "label": "Interceptor", "category": "Patrouille", "grade": 2, "livery": -1, "primary": -1, "secondary": -1 }

Pièges

  • Le champ garage d'une sortie ou d'un véhicule doit reprendre exactement l'identifiant du garage.
  • Sans sortie libre, le véhicule ne peut pas sortir : pose plusieurs sorties sur les parkings fréquentés.