THE ORB
Arrancando el studio

Se alcanzó el límite de entidades o del pool

El juego se quedó sin sitio para vehículos, personas u objetos. Algo los crea y nunca limpia.

groupsNo puede aparecer nada nuevocodeNecesita un desarrollador

Haz esto primero

Reiniciar lo limpia por un rato. Encontrar qué script tiene la fuga es el arreglo de verdad.

bug_reportMejor pega tu consola entera

Qué significa

GTA tiene pools duros para vehículos, peds y objetos. Cuando uno se llena, toda creación posterior de ese tipo devuelve 0 hasta que se borre algo. La forma típica en la consola es Ran out of object slots o un aviso de pool lleno.

En la práctica los vehículos son el más ajustado, y un servidor que lleva días encendido suele llegar a esto antes que uno recién reiniciado: esa es la pista.

Qué lo provoca

Ordenado por la frecuencia con la que es la respuesta.

  1. 1

    Entidades creadas y nunca borradas

    La causa más común de todas. Un script de trabajo genera un vehículo por uso y sólo lo borra en el camino feliz.

  2. 2

    Props generados por interacción

    Un prop pegado durante una animación, y después la animación se cancela y el prop queda huérfano.

  3. 3

    Entidades huérfanas después de que un jugador se va

    Todo lo que hayan creado se queda hasta que algo lo saque.

  4. 4

    Una fuga dentro de un bucle

    Un hilo que crea antes de comprobar si ya tiene uno.

Cómo saber cuál es el tuyo

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

Miralo durante una hora. Un número que sólo sube es una fuga, y el tipo que crece te dice qué script mirar.

Dónde mirar

Cada llamada Create*, y si cada una tiene su DeleteEntity en todos los caminos, incluidos los de fallo.

Cómo arreglarlo

Borrá en todos los caminos de salida, y barré lo que se haya escapado:

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

-- y limpiá cuando un jugador se va
AddEventHandler('playerDropped', function()
    local src = source
    for _, veh in ipairs(GetAllVehicles()) do
        if NetworkGetEntityOwner(veh) == src then DeleteEntity(veh) end
    end
end)

¿Sigues atascado en tu propio código?

Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.

bug_reportAbrir el Server Fixer

Para este tipo de error, el Escáner de seguridad marca el manejo de eventos que lleva hasta acá.

Errores que viajan con este