From the reference libraryRedM

RedM (RDR3) client pool-size limits (increase_pool_size)

guides/pool_size_limits.md

RedM (RDR3) client pool-size limits (increase_pool_size)

Generated from the Cfx-published pool-size-limits list. Source: https://content.cfx.re/mirrors/client/pool-size-limits/redm.json (Last-Modified: Wed, 25 Feb 2026 12:08:09 GMT, ETag: "16b454c54abb2fa8ff299a474ef70a8a"). Regenerated by the server at boot and every 24h — do not hand-edit.

What these numbers mean

The game allocates fixed-capacity pools for engine objects (script objects, networked entities, texture dictionaries, doors, interior portals, …). When a pool is full, further allocations fail: entity-creating natives (CREATE_PED, CREATE_OBJECT, CREATE_VEHICLE, …) return 0, or the client crashes with a pool-full error. This is what "pool exhaustion" means.

A server owner can enlarge a pool for every connecting client from server.cfg:

increase_pool_size "Object" 1500

Cfx publishes the set of pools that may be enlarged and the maximum increase allowed per pool. Both the server and every client fetch that list at startup; an increase_pool_size for a pool not in the list, or above its cap, is rejected. The table below is that list. The values are the largest permitted increase argument — not the engine's default pool size and not the resulting total.

Pools and maximum increase (RedM (RDR3))

Pool Max increase
AttachmentExtension 430
CAnimalGroupMember 110
CAvoidanceComponent 1300
CCrimeObserver 150
CDoorExtension 160
CDoorSyncData 20
CLightEntity 2000
CMoveObject 100
CNetObjDoor 20
CNetObjObject 100
CNetObjPedBase 110
CNetObjVehicle 40
CompEntity 50
CPedAvoidanceComponent 256
CPedSyncData 50
CPropSetObjectExtension 950
DrawableStore 50000
FragmentStore 4000
GrassBatch 2000
InteriorProxy 450
NavMeshRoute 200
netGameEvent 400
Object 2000
OcclusionInteriorInfo 10
OcclusionPathNode 1500
OcclusionPortalEntity 140
OcclusionPortalInfo 140
PortalInst 150
ScaleformStore 100
StaticBounds 6500
TxdStore 26000

Guidance for scripters

  • Every ped, object, prop or vehicle a resource spawns takes a slot in a client-side pool shared with the game world and every other resource. Budget spawns and delete what you create (DELETE_PED, DELETE_OBJECT, DELETE_VEHICLE, DELETE_ENTITY, or SET_ENTITY_AS_NO_LONGER_NEEDED), including on resource stop.
  • Networked entities are the tightest budget: the CNetObj* pools (CNetObjPedBase, CNetObjVehicle, CNetObjObject, CNetObjDoor) cap how many network peds / vehicles / objects / doors a client can track beyond the engine default. Spawn local (non-networked) entities when they don't need to sync.
  • Measure before tuning: GET_GAME_POOL("CPed"), "CObject", "CVehicle", "CPickup" returns every handle currently in that client pool.
  • If a design genuinely needs more, the server owner adds increase_pool_size lines within the caps above — there is no per-resource override and no way to exceed the cap.
  • Streaming pools (TxdStore texture dictionaries, DrawableStore, FragmentStore, StaticBounds) and map-data pools (CDoorExtension, CPropSetObjectExtension, InteriorProxy, Occlusion*, PortalInst) are the ones to look at when custom maps, prop sets or many custom textures fail to load rather than when entities fail to spawn.
Back to documentation