Garry's Mod Wiki

Revision Difference

ents.Iterator#561026

<function name="Iterator" parent="ents" type="libraryfunc"> <description> Returns an iterator for all existing entities. See <page>player.Iterator</page> for the player-only alternative. ⤶ This will be quite a bit faster than <page>ents.GetAll</page>, especially when using the `break` keyword. Returns a [Stateless Iterator](https://www.lua.org/pil/7.3.html) for all entities. Intended for use in [Generic For Loops](https://www.lua.org/pil/4.3.5.html). See <page>player.Iterator</page> for a similar function for all players. ⤶ Internally, this function uses cached values that exist entirely within lua, as opposed to <page>ents.GetAll</page>, which is a C++ function.⤶ Because switching from lua to C++ (and vice versa) incurs a performance cost, this function will be somewhat more efficient than ⤶ </description> <added>2023.10.13</added> <realm>Shared</realm> <file line="L33-L39">lua/includes/extensions/ents.lua</file> <rets> <ret name="" type="function">Iterator function</ret>⤶ <ret name="" type="table">Table of all existing <page>Entity</page>s.</ret>⤶ <ret name="" type="number">Will always be `0`. Start index?</ret>⤶ <ret name="" type="function">The Iterator Function from <page text="ipairs">Global.ipairs</page></ret>⤶ <ret name="" type="table">Table of all existing <page text="Entities">Entity</page>. This is a cached copy of <page>ents.GetAll</page></ret>⤶ <ret name="" type="number">⤶ The starting index for the table of players. ⤶ This is always `0` and is returned for the benefit of [Generic For Loops](https://www.lua.org/pil/4.3.5.html)⤶ </ret>⤶ </rets> </function> <example> <description>Example usage of this function.</description> <code> for _, ent in ents.Iterator() do if ( ent:GetClass() == "prop_physics" ) then ent:Remove() end end </code> <output>All physics props will be deleted.</output> </example>