Documentation · Développeurs

Exports et API stables

Ce que ton code peut utiliser sans risque d'une mise à jour à l'autre, et ce qui est interne.

SommaireExports et API stables

Stable ou interne

Cette page sépare ce que tu peux utiliser dans tes ressources et modules de ce qui appartient au fonctionnement interne du Socle.

StatutCe que ça veut dire
StableDocumenté dans la référence de l'API : c'est l'interface publique prévue pour ton code. Base-toi dessus.
InterneExiste dans le code mais n'est pas documenté, ou sert de pont entre deux ressources livrées. Il peut changer ou disparaître à une mise à jour, sans être signalé.

Depuis une autre ressource, passe par les exports (exports.socle:…). Depuis un module dans socle/modules/<nom>/, utilise directement l'objet Core.

Exports stables : base et réglages

ExportCôtéRôle
getCoreObject(), getSharedObject()les deuxl'objet Core (coûteux à travers un export : réserve-le aux appels ponctuels)
getVariable(catégorie, clé)les deuxvaleur d'un réglage (côté client : attend le chargement)
getAccent()les deuxcouleur du serveur { r, g, b } (la première couleur, même en mode dégradé)
getAccentHex()les deuxcouleur du serveur "#rrggbb"
panelTheme()serveurthème d'interface reçu du panel ({ vars, css })
licenseStatus(), licenseShield()serveurétat de la licence
log(cat, titre, message, src, données), logPush(opts)serveurécrire un log
can(permission)clientle joueur local a-t-il cette permission (affichage seulement)

Exports stables : interface et interactions (client)

ExportRôle
addInteractionPoint(opts), removeInteractionPoint(id)point « appuie sur E »
addInteractionPointThisFrame(id, opts)point mobile, à rappeler régulièrement
isInteractionActive()un point est à portée de touche
Notify(message, type, durée, options), showNotification(...)notification
Decide(opts)décision Oui / Non : "yes", "no" ou "timeout"
StartProgress({ label, duration }), CancelProgress()barre de progression
ShowAdvancedServerInfo(objet, message, durée, titre)information serveur
HelpText(texte, durée), Subtitle(texte, durée)texte d'aide, sous-titre
KeyHints(liste), HideKeyHints()barre de touches
NewsBanner(data)bandeau d'antenne plein écran (false pour le retirer)
drawInfo(titre, éléments), hideInfo()panneau d'informations
createPrompt(titre, description, description2, fn), isPromptOpen()demande de confirmation avec curseur
requestTextInput({ title, default })saisie de texte (bloquant, dans un thread)
setWorldTag(id, data), removeWorldTag(id)étiquette flottante dans le monde
SetHudVisible(bool), ToggleVisible(bool)afficher / masquer le HUD
IsInSafeZone()le joueur est dans une zone protégée
licenseCard(item), showOwnedCard(nomObjet)afficher une carte de permis ou d'identité
kevlarUsePlates(data, slot)utilisation des plaques de kevlar (objet ox_inventory)

Exports stables : jeu (serveur)

ExportRôle
getSocietyAccount, addSocietyAccount, removeSocietyAccount, setSocietyAccountcomptes de société
getSocietyPoints, getSocietyState, setSocietyStatepoints et état des sociétés
businessOnDuty, businessItemExists, businessCanCarry, businessHasItems, businessGive, businessTake, businessTakeMoney, businessCredit, businessClaimSeedoutils des commerces de joueurs
hasLicense(src, type)le joueur possède-t-il ce permis
getCharacterLimit(license), addCharacterSlot(license, nombre)emplacements de personnages
getPlayerSkin, setPlayerSkin, getPlayerTattoos, getTattooCatalogueapparence
getVehicleKind, getCategoryKind, vehicleNativeType, getDefaultGaragegarages et types de véhicules
cardealerGetStock, cardealerConsumeStock, cardealerRestoreStockstock des concessions
deathscreenRespawnTime(src)délai de réapparition
drugMarketFactor(objet), drugMarketSold(objet, quantité)marché de la drogue
recordTreatment(type, patient, médecin, montant, facturé)dossier médical EMS
getPoliceArmoury(métier), getServiceJobPoints(type)armurerie et points des métiers de service

Les signatures complètes et des exemples sont dans Tous les exports du Socle.

Events publics stables

Events locaux, à écouter avec AddEventHandler depuis n'importe quelle ressource : socle:accentChanged, socle:inventorySkinChanged, socle:hud:refreshHeadshot, socle:me:said, socle:characterCreated, socle:tutorial:action, plus l'event réseau hud:advancedServerInfo. Détail : Events publics.

API Core stable (dans un module)

APICôtéPage
Core.Variable:defineCategory, :define, :get, :getOr, :getEntry, :watch, :versionserveur (définition), les deux (lecture)Réglages côté code
Core.Callback:register, :trigger, :awaitles deuxCallbacks
Core.Event:register, :registerRaw, :registerLocal, :send, :sendSegment, :broadcast, :callserveurEvents
Event:send, :sendSegment, :register, :registerLocal, :callclientEvents
Core.Hook.listen, .once, .call (hooks variable:changed, permissions:changed)les deuxHooks
Core.Keybind:add, :getControlLabelclientRaccourcis clavier
Core.Permission:can, :has, :add, :remove, :set ; Core.Group:isStaff, :getPlayerGroupserveurPermissions
Core.Command:registerles deuxPermissions
Core.Logs.push, Core.Logs.sendserveurLogs
Core.BanCode.format, .parseles deuxCodes de ban
Core.t, Core.getTranslationsles deuxTraductions
Core.onReady, Core.registerClass, Core.resolveClass, Core.getPlayer, Core.getIdentifier, Core.getPlayerName, Core.isFinite, Core.clamp, Core.round, Core.jsonDecode, Core.jsonEncode, Core.nui, Core.rnui, Core.Playervoir la pageCore, l'objet global

Exports internes

Ces exports existent mais ne sont pas à utiliser depuis ton code :

ExportPourquoi interne
OxInputDialog, OxAlertDialog, OxCloseInputDialog, OxCloseAlertDialog, OxSkillCheck, OxCancelSkillCheck, OxShowTextUI, OxHideTextUI, OxNuiRaw, OxFocus, OxReleasepont qui relaie les menus d'ox_lib dans l'interface unique. Utilise lib.* d'ox_lib, jamais ces exports.
getAccentFill() (client)dégradé CSS de la couleur du serveur, utilisé par l'inventaire. Non documenté : pour suivre la couleur, utilise getAccent() et socle:accentChanged.
event local socle:accentFillChanged (client)annonce le dégradé (css ou nil, deuxième couleur) à l'inventaire. Même remarque que getAccentFill().

Les exports des autres ressources livrées (core, banking, cardealer…) ne sont pas couverts par cette page : considère-les comme internes.