Entity- oder Pool-Limit erreicht
Dem Spiel ist der Platz für Fahrzeuge, Personen oder Objekte ausgegangen. Etwas erzeugt sie und räumt nie auf.
Mach das zuerst
Ein Neustart räumt es vorübergehend auf. Zu finden, welches Script leckt, ist der echte Fix.
Was es bedeutet
GTA hat harte Pools für Fahrzeuge, Peds und Objekte. Ist einer voll, gibt jede weitere Erzeugung dieser Art 0 zurück, bis etwas gelöscht wird. Die typische Konsolenform ist Ran out of object slots oder eine Pool-voll-Warnung.
In der Praxis sind Fahrzeuge am knappsten, und ein Server, der seit Tagen läuft, erreicht das eher als ein frisch neu gestarteter — das ist der Hinweis.
Was es auslöst
Sortiert danach, wie oft es die Antwort ist.
- 1
Erzeugte und nie gelöschte Entities
Die häufigste Ursache überhaupt. Ein Job-Script spawnt pro Einsatz ein Fahrzeug und löscht es nur auf dem guten Weg.
- 2
Props, die pro Interaktion erzeugt werden
Ein Prop, das während einer Animation angeheftet wird, dann bricht die Animation ab und das Prop bleibt verwaist.
- 3
Verwaiste Entities, nachdem ein Spieler gegangen ist
Alles, was sie erzeugt haben, bleibt, bis etwas es entfernt.
- 4
Ein Leck in einer Schleife
Ein Thread, der erzeugt, bevor er prüft, ob er schon eines hat.
Wie du erkennst, welcher deiner ist
-- Server print(#GetAllVehicles(), #GetAllPeds(), #GetAllObjects())
Beobachte es eine Stunde. Eine Zahl, die nur steigt, ist ein Leck, und die wachsende Art sagt dir, welches Script du ansehen musst.
Wo du nachsehen musst
Jeder Create*-Aufruf und ob jeder auf allen Wegen — auch den Fehlerwegen — ein DeleteEntity hat.
Wie du es behebst
Lösch auf jedem Ausstiegsweg und kehr auf, was geleckt ist:
local veh = spawnVehicle(...)
local ok = pcall(doTheJob, veh)
if DoesEntityExist(veh) then DeleteEntity(veh) end
-- und räum auf, wenn ein Spieler geht
AddEventHandler('playerDropped', function()
local src = source
for _, veh in ipairs(GetAllVehicles()) do
if NetworkGetEntityOwner(veh) == src then DeleteEntity(veh) end
end
end)Hängst du immer noch an deinem eigenen Code?
Diese Seite sagt, was dieser Fehler üblicherweise bedeutet. Füg deine Konsole in Server Fixer ein: es sortiert alles darin und sagt dir, was zuerst dran ist; und wenn du lieber nicht ranwillst, kann ORBIE das Script reparieren und dir die Resource fertig zum Einsetzen zurückgeben.
bug_reportServer Fixer öffnenFür diese Art Fehler Sicherheitsscanner markiert die Event-Behandlung, die hierher führt.