<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.teamspec.net/index.php?action=history&amp;feed=atom&amp;title=Level_Editor%2FScripting%2FMap_entities</id>
	<title>Level Editor/Scripting/Map entities - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.teamspec.net/index.php?action=history&amp;feed=atom&amp;title=Level_Editor%2FScripting%2FMap_entities"/>
	<link rel="alternate" type="text/html" href="https://wiki.teamspec.net/index.php?title=Level_Editor/Scripting/Map_entities&amp;action=history"/>
	<updated>2026-10-28T23:46:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.teamspec.net/index.php?title=Level_Editor/Scripting/Map_entities&amp;diff=477&amp;oldid=prev</id>
		<title>TeamSpecBot: American spelling</title>
		<link rel="alternate" type="text/html" href="https://wiki.teamspec.net/index.php?title=Level_Editor/Scripting/Map_entities&amp;diff=477&amp;oldid=prev"/>
		<updated>2026-10-20T04:44:46Z</updated>

		<summary type="html">&lt;p&gt;American spelling&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:44, 20 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l38&quot;&gt;Line 38:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 38:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Level Editor/Scripting/Reference/GamemodeServerApi#markers|api.markers()]]: every marker&amp;#039;s name, in map order.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Level Editor/Scripting/Reference/GamemodeServerApi#markers|api.markers()]]: every marker&amp;#039;s name, in map order.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Level Editor/Scripting/Reference/GamemodeServerApi#marker|api.marker(name)]]: where it stands (the origin, and a line in the log, for a name the map does not place).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Level Editor/Scripting/Reference/GamemodeServerApi#marker|api.marker(name)]]: where it stands (the origin, and a line in the log, for a name the map does not place).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Level Editor/Scripting/Reference/GamemodeServerApi#marker_facing|api.marker_facing(name)]]: the way it faces, level and one &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;metre &lt;/del&gt;long. A point it looks at is &amp;lt;code&amp;gt;api.marker(n) + api.marker_facing(n) * distance&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Level Editor/Scripting/Reference/GamemodeServerApi#marker_facing|api.marker_facing(name)]]: the way it faces, level and one &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;meter &lt;/ins&gt;long. A point it looks at is &amp;lt;code&amp;gt;api.marker(n) + api.marker_facing(n) * distance&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Switchable parts ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Switchable parts ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l61&quot;&gt;Line 61:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 61:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The map&amp;#039;s own bots ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== The map&amp;#039;s own bots ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Bots that belong to the map are fixtures such as training dummies, not stand-ins for players: nobody can kick them, and they take no player&amp;#039;s seat.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Bots that belong to the map are fixtures such as training dummies, not stand-ins for players: nobody can kick them, and they take no player&amp;#039;s seat.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Level Editor/Scripting/Reference/GamemodeServerApi#spawn_bot|api.spawn_bot]] spawns one with a name, loadout and team; [[Level Editor/Scripting/Reference/GamemodeServerApi#map_bots|api.map_bots()]] and [[Level Editor/Scripting/Reference/GamemodeServerApi#is_map_bot|api.is_map_bot]] list and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;recognise &lt;/del&gt;them.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Level Editor/Scripting/Reference/GamemodeServerApi#spawn_bot|api.spawn_bot]] spawns one with a name, loadout and team; [[Level Editor/Scripting/Reference/GamemodeServerApi#map_bots|api.map_bots()]] and [[Level Editor/Scripting/Reference/GamemodeServerApi#is_map_bot|api.is_map_bot]] list and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;recognize &lt;/ins&gt;them.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Training orders: [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_idle|api.bot_idle]] (stand still, never shoot), [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_dodge|api.bot_dodge]] (a moving target), [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_shoot|api.bot_shoot]] (fire at one player only).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Training orders: [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_idle|api.bot_idle]] (stand still, never shoot), [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_dodge|api.bot_dodge]] (a moving target), [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_shoot|api.bot_shoot]] (fire at one player only).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_build|api.bot_build]], [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_demolish|bot_demolish]] and [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_has_building|bot_has_building]]: buildings for a map bot that holds a building tool.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_build|api.bot_build]], [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_demolish|bot_demolish]] and [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_has_building|bot_has_building]]: buildings for a map bot that holds a building tool.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki:diff:1.41:old-58:rev-477:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>TeamSpecBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.teamspec.net/index.php?title=Level_Editor/Scripting/Map_entities&amp;diff=58&amp;oldid=prev</id>
		<title>TeamSpecBot: Level Editor: map entities in gamemode scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.teamspec.net/index.php?title=Level_Editor/Scripting/Map_entities&amp;diff=58&amp;oldid=prev"/>
		<updated>2026-10-20T03:46:19Z</updated>

		<summary type="html">&lt;p&gt;Level Editor: map entities in gamemode scripts&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Besides zones, pickups and payload tracks, a server script can read and drive the other things a map places: doors, logic entities, map markers, switchable parts and bosses. It can also put up buildings and spawn bots of the map&amp;#039;s own. Each of these is found by the &amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039; you give it in the editor. Everything here is on the server&amp;#039;s [[Level Editor/Scripting/Reference/GamemodeServerApi|GamemodeServerApi]].&lt;br /&gt;
&lt;br /&gt;
== Doors ==&lt;br /&gt;
A [[Level Editor/Entities/Door|door]] is named by its name in the scene tree.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#doors|api.doors()]]: every door&amp;#039;s name.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#door_open|api.door_open(name)]], [[Level Editor/Scripting/Reference/GamemodeServerApi#door_close|api.door_close(name)]], [[Level Editor/Scripting/Reference/GamemodeServerApi#door_toggle|api.door_toggle(name)]]: move it. A locked door refuses to open.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#door_lock|api.door_lock(name)]] and [[Level Editor/Scripting/Reference/GamemodeServerApi#door_unlock|api.door_unlock(name)]].&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#door_state|api.door_state(name)]]: &amp;lt;code&amp;gt;api.DOOR_CLOSED&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;api.DOOR_OPENING&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;api.DOOR_OPEN&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;api.DOOR_CLOSING&amp;lt;/code&amp;gt;; [[Level Editor/Scripting/Reference/GamemodeServerApi#door_locked|api.door_locked(name)]].&lt;br /&gt;
* &amp;lt;code&amp;gt;_door_changed(door, state)&amp;lt;/code&amp;gt;: called whenever a door changes state, however it was moved (a player walking up, its wait running out, an output, or your script).&lt;br /&gt;
&lt;br /&gt;
A setup time that keeps the attackers&amp;#039; gate shut for the first 60 seconds:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const SETUP_SECONDS := 60.0&lt;br /&gt;
&lt;br /&gt;
var _clock: float = 0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
func _start() -&amp;gt; void:&lt;br /&gt;
	api.door_lock(&amp;amp;&amp;quot;Gate&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
func _tick(delta: float) -&amp;gt; void:&lt;br /&gt;
	_clock += delta&lt;br /&gt;
	if _clock &amp;gt;= SETUP_SECONDS and api.door_locked(&amp;amp;&amp;quot;Gate&amp;quot;):&lt;br /&gt;
		api.door_unlock(&amp;amp;&amp;quot;Gate&amp;quot;)&lt;br /&gt;
		api.door_open(&amp;amp;&amp;quot;Gate&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Outputs and logic ==&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#fire_input|api.fire_input(target, input, parameter, delay)]]: send an input to every entity named &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;, as an output would. &amp;lt;code&amp;gt;parameter&amp;lt;/code&amp;gt; is text (&amp;lt;code&amp;gt;&amp;quot;5&amp;quot;&amp;lt;/code&amp;gt;); &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; is in seconds. False, with a line in the log, for a name the map does not have.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#counter_value|api.counter_value(name)]]: a Logic Counter&amp;#039;s value.&lt;br /&gt;
* &amp;lt;code&amp;gt;_logic_event(entity, event, activator)&amp;lt;/code&amp;gt;: a relay, timer, counter or button raised an event (&amp;lt;code&amp;gt;&amp;quot;OnTrigger&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;OnTimer&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;OutValue&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;OnHitMin&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;OnHitMax&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;OnPressed&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;OnUseLocked&amp;quot;&amp;lt;/code&amp;gt;). &amp;lt;code&amp;gt;activator&amp;lt;/code&amp;gt; is the player who set it off, 0 for nobody. Its outputs fire either way; this is where a mode reacts to a button press or a counter filling up.&lt;br /&gt;
&lt;br /&gt;
See [[Level Editor/Workflows/Outputs and logic|Outputs and logic]].&lt;br /&gt;
&lt;br /&gt;
== Map markers ==&lt;br /&gt;
A [[Level Editor/Entities/Map Marker|Map Marker]] is a named spot and facing.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#markers|api.markers()]]: every marker&amp;#039;s name, in map order.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#marker|api.marker(name)]]: where it stands (the origin, and a line in the log, for a name the map does not place).&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#marker_facing|api.marker_facing(name)]]: the way it faces, level and one metre long. A point it looks at is &amp;lt;code&amp;gt;api.marker(n) + api.marker_facing(n) * distance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Switchable parts ==&lt;br /&gt;
A [[Level Editor/Entities/Group|group]] with &amp;#039;&amp;#039;&amp;#039;Switchable&amp;#039;&amp;#039;&amp;#039; ticked is a part: everything in it comes and goes together.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#parts|api.parts()]]: every part&amp;#039;s name.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#set_part_enabled|api.set_part_enabled(name, enabled)]]: put the part in the world, or take it out: it is seen and it blocks, or it is neither, for every player, including those who join later.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#part_enabled|api.part_enabled(name)]]: whether it is there now.&lt;br /&gt;
&lt;br /&gt;
== Bosses ==&lt;br /&gt;
A [[Level Editor/Entities/Boss Spawn|Boss Spawn]] places a boss. Bosses stand whether or not the mode mentions them.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#bosses|api.bosses()]]: every boss&amp;#039;s entity id, in map order.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#entity_name|api.entity_name]], [[Level Editor/Scripting/Reference/GamemodeServerApi#entity_team|entity_team]], [[Level Editor/Scripting/Reference/GamemodeServerApi#entity_health|entity_health]], [[Level Editor/Scripting/Reference/GamemodeServerApi#entity_max_health|entity_max_health]], [[Level Editor/Scripting/Reference/GamemodeServerApi#entity_alive|entity_alive]], [[Level Editor/Scripting/Reference/GamemodeServerApi#entity_position|entity_position]] and [[Level Editor/Scripting/Reference/GamemodeServerApi#entity_zone|entity_zone]] (its arena zone) read one.&lt;br /&gt;
* &amp;lt;code&amp;gt;_entity_damaged(entity, amount, attacker)&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_entity_died(entity, killer)&amp;lt;/code&amp;gt; report what happens to them. What a dead boss means for the match (killing the enemy&amp;#039;s boss wins, say) is the mode&amp;#039;s to decide.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#revive_boss|api.revive_boss]] brings a dead boss back, for a practice boss.&lt;br /&gt;
* On the HUD, the &amp;lt;code&amp;gt;boss_health&amp;lt;/code&amp;gt; widget shows both teams&amp;#039; bosses; see [[Level Editor/Scripting/Client HUD#boss_health|Client HUD]].&lt;br /&gt;
&lt;br /&gt;
== Buildings ==&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#place_building|api.place_building]]: put up a building of the map&amp;#039;s own (a sentry, dispenser or teleporter end), already built, at a level from 1 to 3, for a team, under a key you choose.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#remove_building|api.remove_building(key)]] and [[Level Editor/Scripting/Reference/GamemodeServerApi#has_building|api.has_building(key)]].&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#forbid_building|api.forbid_building(zone)]] stops players building in a zone (a spawn room).&lt;br /&gt;
&lt;br /&gt;
== The map&amp;#039;s own bots ==&lt;br /&gt;
Bots that belong to the map are fixtures such as training dummies, not stand-ins for players: nobody can kick them, and they take no player&amp;#039;s seat.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#spawn_bot|api.spawn_bot]] spawns one with a name, loadout and team; [[Level Editor/Scripting/Reference/GamemodeServerApi#map_bots|api.map_bots()]] and [[Level Editor/Scripting/Reference/GamemodeServerApi#is_map_bot|api.is_map_bot]] list and recognise them.&lt;br /&gt;
* Training orders: [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_idle|api.bot_idle]] (stand still, never shoot), [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_dodge|api.bot_dodge]] (a moving target), [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_shoot|api.bot_shoot]] (fire at one player only).&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_build|api.bot_build]], [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_demolish|bot_demolish]] and [[Level Editor/Scripting/Reference/GamemodeServerApi#bot_has_building|bot_has_building]]: buildings for a map bot that holds a building tool.&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi#edit_bot_loadout|api.edit_bot_loadout]] lets a player change the loadout of map bots (for example from a zone&amp;#039;s &amp;lt;code&amp;gt;_zone_used&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Tile maps ==&lt;br /&gt;
[[Level Editor/Scripting/Reference/GamemodeServerApi#open_tile_map|api.open_tile_map]] opens a grid plan on a player&amp;#039;s screen for them to fill in (where to put sentries or walls, say), and &amp;lt;code&amp;gt;_form_submitted(entity_id, form, values)&amp;lt;/code&amp;gt; hears what they applied. A player can apply the same map again, so make applying it twice harmless.&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
* [[Level Editor/Scripting/Server rules|Server rules]]&lt;br /&gt;
* [[Level Editor/Scripting/Reference/GamemodeServerApi|GamemodeServerApi reference]]&lt;br /&gt;
&lt;br /&gt;
{{Level Editor nav}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Level Editor]]&lt;br /&gt;
[[Category:Gamemode scripting]]&lt;/div&gt;</summary>
		<author><name>TeamSpecBot</name></author>
	</entry>
</feed>