Entity limit: Difference between revisions
m (added entdata warning.) |
TomEdwards (talk | contribs) |
||
Line 20: | Line 20: | ||
== Hammer limits == | == Hammer limits == | ||
Hammer itself has no entity limit, but [[VBSP]]'s is 8192. This is double the combined total accepted by the engine, {{confirm|which may be because it at first treats [[internal entity|internal entities]] (such as [[prop_static]] and [[env_cubemap]]) like normal entities, and/or possibly because it generates a lot of [[ | Hammer itself has no entity limit, but [[VBSP]]'s is 8192. This is double the combined total accepted by the engine, {{confirm|which may be because it at first treats [[internal entity|internal entities]] (such as [[prop_static]] and [[env_cubemap]]) like normal entities, and/or possibly because it generates a lot of [[detail props]].}} It also recommends an <code>[[The Source Engine BSP File Format#Entity|entdata]]</code> size limit of 384KB, but this is in no way enforced. | ||
{{note|When creating very large or detailed maps, remember that more entities will exist at runtime than were compiled in: things like weapons held by characters, projectiles and death ragdolls are all entities too. If you see "no free edicts" errors then you need to reign things in.}} | |||
[[Category:Level Design]] | [[Category:Level Design]] | ||
[[Category:Programming]] | [[Category:Programming]] | ||
[[Category:Glossary]] | [[Category:Glossary]] |
Revision as of 04:17, 29 May 2010
For reasons of memory allocation, there is a limit to the number of entities Source can manage at once.

Engine limits
There can be up to 4096 entities. This total is split into two groups of 2048:
- Non-networked entities, which exist only on the client or server.dll (e.g. death ragdolls, logicals).
- Entities with associated edicts, which can cross the client/server divide.
If the game tries to assign a 2049th edict it will exit with an error message, but if it tries to create a 2049th non-networked entity it will merely refuse and print a warning to the console. The logic behind this may be that an entity spawned dynamically (i.e. not present in the map) but not assigned an edict probably isn't too important.
The two entity lists are created by CBaseEntityList::CBaseEntityList()
using NUM_ENT_ENTRIES
and MAX_EDICTS
. Neither of those values can be changed without breaking compatibility with the engine.


Hammer limits
Hammer itself has no entity limit, but VBSP's is 8192. This is double the combined total accepted by the engine,

It also recommends an entdata
size limit of 384KB, but this is in no way enforced.
