entdata parameter in compile log

UFOslava

L1: Registered
Oct 8, 2009
36
0
i was compiling a beta of my map, and came across some strange string...
"entdata [variable] 195642/393216 (49.8%)"
49.8%???
Is this entity data limit?
Does that means if i finish the second stage, there will be no room for stage 3? :O
 
Aug 19, 2008
1,011
1,158
many % of the entdata are the gamelogic , the rest are prop_static&dynamic, brush-based entities (func_door, areaportals, trigger.....), and a huge number (in my case) are lights, since you need 3 things for a good light (prop, lightsource, lightcone)

try to keep it under 100%, it might crash servers when it goes above

edit: though i´ve written to correct me, obviously i forgot :)
 
Last edited:

A Boojum Snark

Toraipoddodezain Mazahabado
aa
Nov 2, 2007
4,775
7,669
/me stabs eerie. Disseminating wrong information is bad :(

entdata is NOT a limit. You can go as high as you like. Meridian is around 200 and Panic is over 150. It was something valve put in for themselves as a guideline during HL2 development to keep under system requirements.

entdata is literally the amount of data (bytes) the entity lump takes up. the crashing limit (not displayed anywhere) is related to edicts (entity dictionaries) which are an engine resource in limited amounts.
 

drp

aa
Oct 25, 2007
2,273
2,628
/me stabs eerie. Disseminating wrong information is bad :(

entdata is NOT a limit. You can go as high as you like. Meridian is around 200 and Panic is over 150. It was something valve put in for themselves as a guideline during HL2 development to keep under system requirements.

entdata is literally the amount of data (bytes) the entity lump takes up. the crashing limit (not displayed anywhere) is related to edicts (entity dictionaries) which are an engine resource in limited amounts.


you never cease to amaze me with your humongous head of hammer knowledge.
 

MoonQuake

L3: Member
Jul 18, 2009
111
21
EDIT (*for the polycount update):
entdata % is a very inaccurate number roughly representing the entities found in your map and the resources they use and you can go above 100% as you like.

It's just that each entity as the potential to use more or less resources (edicts) from the game and few people know how to find this value.
(and yes this value can be found and displayed)
A lot of entities means your map takes up more resources, of course, but unless these entities are complex or create other entities themselves, you'll rarely bust the resource limit. (the edicts limit which is 2048) and crash the game or server.

What matters if you don't want to bust the resource limit is making sure you don't have too many of these complex entities or spawning entities existing at once or too many entities in large numbers:

- rain particles (can create a lot of stuff)
- many large breakable_surf (a large breakable surface of 1024x1024 can easily create 100 objects once broken)
- triggers of all types
- dynamic objects
- the players and their every explosions/particles/built objects or gibs when they die all count in the same limit
(as a rough example, 32 live players of randomly mixed classes, just standing there doing nothing use about 500 edicts, imagine how many if they're all running around shooting, building stuff...)

It's hard to know how many edicts any given entity as the potential of using, but you can use the following console command to help you:

The console command "report_entities" shows the total number of edicts you have at any time. So if you add more entities and you're not sure if they use a lot more "edict memory", use the command to see the difference before and after the change. It also shows how many edicts are used for each type of entities. Like all your rain particles use up 75 edicts...etc...

RULE OF THUMB: try to keep the number of edicts below 1200. That's what stock maps do because what's left is about 800 edicts, and a full 32 players server uses about 800 edicts just for the players resources.

I hope that helps determining the real entity limit of a map at its current state.

So to recap: if you are afraid your map will bust the limit of the engine and crash the game, edicts are what to keep an eye on, NOT entdata.

MQ
 
Last edited:

UKCS-Alias

Mann vs Machine... or... Mapper vs Meta?
aa
Sep 8, 2008
1,264
816
The limit came from hl2 and is a guideline. When HL2 was new many pcs did have quite low specs compared to now. If entdata reached 100% at that time it could already be a very laggy map. These days the value isnt anything usefull anymore.
You want to know if you're close to the limit (no free edict error message)? Just create a bunch of large func_breakable_surf and break them quickly one after the other. Using mat_wireframe 1 and host_timescale 0.1 in the console, check the glass pieces fall everytime you shoot one and count the number of pieces. If you can break 3 window panels that spawn 100 pieces each, you've got around 300 left, but you really shouldn't go below 200 left, just to be safe.
Funny but thats not the way it counts. The window breaking only adds 1 dynamic entity for the glass animation. There is a very diffirent check and limit on them.

To check turn on sv_cheats and type cl_showents in console. it will give a list with all active dynamic objects. The last one is the number you are at. (and note that its usualy models of your weapons). The actual limit you should go for is 1400 (pipeline and goldrush have 1480). This will ensure that your map will run fine in any situation. It can crash it if there are 32 demoman spamming 8 stickies and 3 grenades. but in any normal game youll never even reach that, you dont even get near it.

[ame="http://forums.tf2maps.net/showthread.php?t=3924"][INFO] Source engine entity limit & more - TF2Maps.net[/ame]

For more info about it.

[ame="http://forums.tf2maps.net/showthread.php?p=113359#post113359"][INFO] Source engine entity limit & more - Page 2 - TF2Maps.net[/ame] shows info about many used entities also.
 
Last edited:
Aug 19, 2008
1,011
1,158
no need to stab me, i asked to correct me if i´m wrong :)

i´m just saying, servers were crashing when cashworks had 112% entdata,
i went and deleted some entities, went under 100% and the crashing stopped

theory is one thing, but that´s how it worked for me in practice

thx for the correction :)
 

A Boojum Snark

Toraipoddodezain Mazahabado
aa
Nov 2, 2007
4,775
7,669
You ignore it. His issue was likely something else. Either coincidence or he was actually breaking the edict limit and thus removing entities helped. The edict limit is unrelated because how many edicts are used is different from entity to entity.
 

MoonQuake

L3: Member
Jul 18, 2009
111
21
Edited my previous post. Really wasn't clear, I agree. :)

Someone worried about if they got too many entities in his map should be aware of the reason why it can happen and how to prevent getting to that point. They can't just ignore the entdata%, they must understand why that number can be big and if it's dangerous or not when it is.

entdata is related to the number of edicts in a map, therefore it can give a general resources limit idea. It's just not precise enough to be considered as a mandatory entity limit, just an easy and safe way to scare people! :)

That's why I felt like giving out a more precise way of being careful to prevent "busting the resources limit" if we can say that.

Could be useful to a lot of people.

UKCS-Alias: yeah, I was wrong with the numbers but the method works wonderfully. I thought it really was just a hidden limit that couldn't be found like everybody was saying, but after looking into it myself, I found you could display this value. :)

MQ
 
Last edited: