THE ORB
Démarrage du studio

Limite d'entités ou de pool atteinte

Le jeu n'a plus de place pour les véhicules, personnes ou objets. Quelque chose en crée et ne nettoie jamais.

groupsPlus rien de nouveau ne peut apparaîtrecodeIl faut un développeur

Faites d'abord ceci

Un redémarrage règle le problème temporairement. Trouver le script qui fuit est le vrai correctif.

bug_reportCollez plutôt toute votre console

Ce que ça veut dire

GTA a des pools durs pour les véhicules, les peds et les objets. Quand l'un se remplit, toute création supplémentaire de ce type renvoie 0 jusqu'à ce que quelque chose soit supprimé. La forme typique en console est Ran out of object slots ou un avertissement de pool plein.

En pratique, les véhicules sont les plus serrés, et un serveur en ligne depuis des jours y arrive avant un serveur fraîchement redémarré : c'est l'indice.

Ce qui la provoque

Classé par fréquence : la cause la plus probable en premier.

  1. 1

    Des entités créées et jamais supprimées

    La cause la plus fréquente. Un script de métier fait apparaître un véhicule à chaque usage et ne le supprime que sur le chemin heureux.

  2. 2

    Des props créés à chaque interaction

    Un prop attaché pendant une animation, puis l'animation est annulée et le prop est orphelin.

  3. 3

    Des entités orphelines après le départ d'un joueur

    Tout ce qu'ils ont créé reste jusqu'à ce que quelque chose le retire.

  4. 4

    Une fuite dans une boucle

    Un thread qui crée avant de vérifier s'il en a déjà un.

Comment savoir laquelle est la vôtre

-- serveur
print(#GetAllVehicles(), #GetAllPeds(), #GetAllObjects())

Observez pendant une heure. Un nombre qui ne fait que monter est une fuite, et le type qui grossit vous dit quel script regarder.

Où regarder

Chaque appel Create*, et si chacun a son DeleteEntity sur tous les chemins, y compris ceux d'échec.

Comment la corriger

Supprimez sur tous les chemins de sortie, et balayez ce qui a fuité :

local veh = spawnVehicle(...)
local ok = pcall(doTheJob, veh)
if DoesEntityExist(veh) then DeleteEntity(veh) end

-- et nettoyez quand un joueur part
AddEventHandler('playerDropped', function()
    local src = source
    for _, veh in ipairs(GetAllVehicles()) do
        if NetworkGetEntityOwner(veh) == src then DeleteEntity(veh) end
    end
end)

Toujours bloqué sur votre propre code ?

Cette page explique ce que cette erreur signifie en général. Collez votre console dans Server Fixer : il classera tout ce qui s'y trouve et vous dira quoi faire en premier ; et si vous préférez ne pas y toucher, ORBIE peut réparer le script et vous rendre la ressource prête à déposer.

bug_reportOuvrir le Server Fixer

Pour ce type d'erreur, le Scanner de sécurité signale la gestion d'événements qui mène ici.

Les erreurs qui voyagent avec celle-ci