<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Script%3AFiles%3Ascript%2Fmisc%2Fauto_respawn.script</id>
	<title>Script:Files:script/misc/auto respawn.script - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Script%3AFiles%3Ascript%2Fmisc%2Fauto_respawn.script"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/misc/auto_respawn.script&amp;action=history"/>
	<updated>2026-04-07T20:04:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.splashdamage.com/index.php?title=Script:Files:script/misc/auto_respawn.script&amp;diff=1872&amp;oldid=prev</id>
		<title>Wizz at 10:08, 5 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Script:Files:script/misc/auto_respawn.script&amp;diff=1872&amp;oldid=prev"/>
		<updated>2007-11-05T10:08:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;/*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;	auto_respawn.script&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;	handles the automatic repawning of vehicles around bases&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;*/&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;object&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]] {&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            preinit();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            init();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            destroy();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;            SpawnVehicle();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;            CheckSpawn();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            UpdateThread( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; initialWait );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            vOnVehicleDestroyed();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            vOnUnDeploy();&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            vOnDeploy();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            StartThread( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; delay );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            StopThread();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt;            KillVehicle();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            updateThreadHandle;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt;            vehicle;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            waitTime;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            delayTime;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt;            active;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            vehicleType;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt;            playerType;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::preinit() {&lt;br /&gt;
     waitTime = [[ScriptEvent:getFloatKey|getFloatKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;wait_time&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     delayTime = [[ScriptEvent:getFloatKeyWithDefault|getFloatKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;delay_time&amp;quot;&amp;lt;/span&amp;gt;, 0.5 );&lt;br /&gt;
 &lt;br /&gt;
     playerType    = sys.[[ScriptEvent:getTypeHandle|getTypeHandle]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;idPlayer&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
     vehicleType    = sys.[[ScriptEvent:getTypeHandle|getTypeHandle]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;sdTransport&amp;quot;&amp;lt;/span&amp;gt; );&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:setGameTeam|setGameTeam]]( sys.[[ScriptEvent:getTeam|getTeam]]( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;team&amp;quot;&amp;lt;/span&amp;gt; ) ) );&lt;br /&gt;
 &lt;br /&gt;
     updateThreadHandle = -1;&lt;br /&gt;
     active = [[ScriptEvent:getIntKeyWithDefault|getIntKeyWithDefault]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;start_active&amp;quot;&amp;lt;/span&amp;gt;, false );&lt;br /&gt;
 &lt;br /&gt;
     [[ScriptEvent:setContents|setContents]]( CONTENTS_TRIGGER );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::init() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( active ) {&lt;br /&gt;
         StartThread( delayTime );&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::KillVehicle() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( vehicle != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( vehicle.[[ScriptEvent:getNumOccupiedPositions|getNumOccupiedPositions]]() &amp;lt;= 0 ) {&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// get the distance away that it is&amp;lt;/span&amp;gt;&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; distSquared = sys.[[ScriptEvent:vecLengthSquared|vecLengthSquared]]( vehicle.[[ScriptEvent:getWorldOrigin|getWorldOrigin]]() - [[ScriptEvent:getWorldOrigin|getWorldOrigin]]() );&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( distSquared &amp;lt; 102400 ) {&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;// less than ~10m away&amp;lt;/span&amp;gt;&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;vector&amp;lt;/span&amp;gt; up;&lt;br /&gt;
                 up_z = 1.f;&lt;br /&gt;
                 vehicle.[[ScriptEvent:applyDamage|applyDamage]]( $null_entity, $null_entity, up, GetDamage( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;damage_magog_npc_collide&amp;quot;&amp;lt;/span&amp;gt; ), 10000.f, &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; );&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::destroy() {&lt;br /&gt;
     KillVehicle();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::UpdateThread( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; initialWait ) {&lt;br /&gt;
     sys.[[ScriptEvent:wait|wait]]( initialWait );&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;while&amp;lt;/span&amp;gt; ( true ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( SpawnVehicle() ) {&lt;br /&gt;
             break;&lt;br /&gt;
         }&lt;br /&gt;
         sys.[[ScriptEvent:waitFrame|waitFrame]]();&lt;br /&gt;
     }&lt;br /&gt;
     updateThreadHandle = -1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::SpawnVehicle() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( CheckSpawn() ) {&lt;br /&gt;
         vehicle = sys.[[ScriptEvent:spawn|spawn]]( [[ScriptEvent:getKey|getKey]]( &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;&amp;quot;def_construction&amp;quot;&amp;lt;/span&amp;gt; ) );&lt;br /&gt;
         vehicle.[[ScriptEvent:setGameTeam|setGameTeam]]( [[ScriptEvent:getGameTeam|getGameTeam]]() );&lt;br /&gt;
         vehicle.[[ScriptEvent:setOrigin|setOrigin]]( [[ScriptEvent:getOrigin|getOrigin]]() );&lt;br /&gt;
         vehicle.[[ScriptEvent:setAngles|setAngles]]( [[ScriptEvent:getAngles|getAngles]]() );&lt;br /&gt;
         vehicle.vSetDeployer( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;self&amp;lt;/span&amp;gt; );&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; true;&lt;br /&gt;
     }&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;boolean&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::CheckSpawn() {&lt;br /&gt;
     [[ScriptClass:team_base|team_base]] team = [[ScriptEvent:getGameTeam|getGameTeam]]();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( sys.[[ScriptEvent:getTime|getTime]]() &amp;lt; team.GetNextVehicleSpawnTime() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( g_disableVehicleSpawns.[[ScriptEvent:getBoolValue|getBoolValue]]() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; count = [[ScriptEvent:entitiesInBounds|entitiesInBounds]]( [[ScriptEvent:getMins|getMins]](), [[ScriptEvent:getMaxs|getMaxs]](), CONTENTS_VEHICLECLIP | CONTENTS_BODY | CONTENTS_SLIDEMOVER | CONTENTS_MONSTER | CONTENTS_SOLID, 0 );&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; index;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;entity&amp;lt;/span&amp;gt; other;&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( count ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;for&amp;lt;/span&amp;gt;( index = 0; index &amp;lt; count; index++ ) {&lt;br /&gt;
             other = [[ScriptEvent:getBoundsCacheEntity|getBoundsCacheEntity]]( index );&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( other == &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
                 continue;&lt;br /&gt;
             }&lt;br /&gt;
             &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( other.vBlockVehicleSpawn() ) {&lt;br /&gt;
                 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; false;&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; true;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::vOnVehicleDestroyed() {&lt;br /&gt;
     vehicle = &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
     StopThread();&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( active ) {&lt;br /&gt;
         StartThread( waitTime );&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::StartThread( &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;float&amp;lt;/span&amp;gt; delay ) {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( sys.[[ScriptEvent:isClient|isClient]]() ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt;;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( vehicle != &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;$null_entity&amp;lt;/span&amp;gt; ) {&lt;br /&gt;
         &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt;;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( updateThreadHandle == -1 ) {&lt;br /&gt;
         updateThreadHandle = &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;thread&amp;lt;/span&amp;gt; UpdateThread( delay );&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::StopThread() {&lt;br /&gt;
     &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; ( updateThreadHandle != -1 ) {&lt;br /&gt;
         sys.[[ScriptEvent:terminate|terminate]]( updateThreadHandle );&lt;br /&gt;
         updateThreadHandle = -1;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::vOnUnDeploy() {&lt;br /&gt;
     active = false;&lt;br /&gt;
     StopThread();&lt;br /&gt;
     KillVehicle();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;void&amp;lt;/span&amp;gt; [[ScriptClass:auto_respawn|auto_respawn]]::vOnDeploy() {&lt;br /&gt;
     active = true;&lt;br /&gt;
     StartThread( delayTime );&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Wizz</name></author>
		
	</entry>
</feed>