<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wolfwiki.anime.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rookie+One</id>
	<title>WolfWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wolfwiki.anime.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rookie+One"/>
	<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php/Special:Contributions/Rookie_One"/>
	<updated>2026-11-08T12:37:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:RoadKillPuppy&amp;diff=1951</id>
		<title>User talk:RoadKillPuppy</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:RoadKillPuppy&amp;diff=1951"/>
		<updated>2005-12-02T19:35:56Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nice mod Puppy, I shall come and spree some more on your server ^^ - [[User:Deej|deej]]&lt;br /&gt;
&lt;br /&gt;
Just FYI - this -1 is actually the client number the sound should be played to, and -1 means broadcasting to all. ;) --Rookie One 11:35, 2 December 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Talk:SendServerCommand&amp;diff=1900</id>
		<title>Talk:SendServerCommand</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Talk:SendServerCommand&amp;diff=1900"/>
		<updated>2005-11-25T13:54:33Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m not sure about the chat commands syntax here. Could someone confirm they are correct? I use the chat command and AFAIK it takes 2 parameters (integers) &#039;&#039;&#039;after&#039;&#039;&#039; the chat string itself. --Rookie One 13:25, 24 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
i didnt test them all but i used my qmm h4x to make the server print out any command it shows to the client&lt;br /&gt;
&lt;br /&gt;
and it showed up in this format so it should work + i loked at the code and it also took the same parameters (athoug i didnt see the etpro code)&lt;br /&gt;
&lt;br /&gt;
apart from that voice chat does use 2 addition interers the first witch is a 0 is &amp;quot;voice only&amp;quot; and 50 is the &amp;quot;color&amp;quot; i need to test those 2 when i get home [[User:=FF=im2good4u|=FF=Im2good4u]] 05:22, 25 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
I grepped cg_servercmds.c for cmd and this is what I&#039;ve got:&lt;br /&gt;
&amp;lt;pre&amp;gt;        if ( !strcmp( cmd, &amp;quot;tinfo&amp;quot; ) ) {&lt;br /&gt;
        if ( !strcmp( cmd, &amp;quot;sc0&amp;quot; ) ) {&lt;br /&gt;
        } else if ( !strcmp( cmd, &amp;quot;sc1&amp;quot; ) ) {&lt;br /&gt;
        if ( !strcmp( cmd, &amp;quot;WeaponStats&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;cpm&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;cp&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;reqforcespawn&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;sdbg&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;cs&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;print&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;entnfo&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;chat&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;tchat&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;vchat&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;vtchat&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;vbchat&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;complaint&amp;quot; ) &amp;amp;&amp;amp; cgs.gamestate == GS_PLAYING) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;map_restart&amp;quot; ) ) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;sc&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;ws&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;wws&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;gstats&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;astats&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;astatsb&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;bstats&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;bstatsb&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;wbstats&amp;quot;)) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;rws&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;portalcampos&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;startCam&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;SetInitialCamera&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;stopCam&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;setspawnpt&amp;quot; ) ) {&lt;br /&gt;
        if ( !strcmp( cmd, &amp;quot;rockandroll&amp;quot; ) ) {  // map loaded, game is ready to                            begin.&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;application&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;invitation&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;proposition&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;aft&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;aftc&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;aftj&amp;quot; ) ) {&lt;br /&gt;
        if ( Q_stricmp (cmd, &amp;quot;remapShader&amp;quot;) == 0 ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;mu_start&amp;quot; ) ) {  // has optional parameter for fa                           de-up time&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;mu_play&amp;quot; ) ) {   // has optional parameter for fa                           de-up time&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;mu_stop&amp;quot; ) ) {   // has optional parameter for fa                           de-down time&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;mu_fade&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;snd_fade&amp;quot; ) ) {&lt;br /&gt;
        if (!Q_stricmp(cmd, &amp;quot;ftCommands&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;addToBuild&amp;quot;)) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;spawnserver&amp;quot; ) )&amp;lt;/pre&amp;gt;&lt;br /&gt;
Maybe the ETPro server commands are different, but etmain does not seem to support these commands.&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Talk:SendServerCommand&amp;diff=1899</id>
		<title>Talk:SendServerCommand</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Talk:SendServerCommand&amp;diff=1899"/>
		<updated>2005-11-25T13:53:58Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m not sure about the chat commands syntax here. Could someone confirm they are correct? I use the chat command and AFAIK it takes 2 parameters (integers) &#039;&#039;&#039;after&#039;&#039;&#039; the chat string itself. --Rookie One 13:25, 24 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
i didnt test them all but i used my qmm h4x to make the server print out any command it shows to the client&lt;br /&gt;
&lt;br /&gt;
and it showed up in this format so it should work + i loked at the code and it also took the same parameters (athoug i didnt see the etpro code)&lt;br /&gt;
&lt;br /&gt;
apart from that voice chat does use 2 addition interers the first witch is a 0 is &amp;quot;voice only&amp;quot; and 50 is the &amp;quot;color&amp;quot; i need to test those 2 when i get home [[User:=FF=im2good4u|=FF=Im2good4u]] 05:22, 25 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
I grepped cg_servercmds.c for cmd and this is what I&#039;ve got:&lt;br /&gt;
&amp;lt;pre&amp;gt;        if ( !strcmp( cmd, &amp;quot;tinfo&amp;quot; ) ) {&lt;br /&gt;
        if ( !strcmp( cmd, &amp;quot;sc0&amp;quot; ) ) {&lt;br /&gt;
        } else if ( !strcmp( cmd, &amp;quot;sc1&amp;quot; ) ) {&lt;br /&gt;
        if ( !strcmp( cmd, &amp;quot;WeaponStats&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;cpm&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;cp&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;reqforcespawn&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;sdbg&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;cs&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;print&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;entnfo&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;chat&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;tchat&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;vchat&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;vtchat&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;vbchat&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;complaint&amp;quot; ) &amp;amp;&amp;amp; cgs.gamestate == GS_PLAYING) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;map_restart&amp;quot; ) ) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;sc&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;ws&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;wws&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;gstats&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;astats&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;astatsb&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;bstats&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;bstatsb&amp;quot;)) {&lt;br /&gt;
//      if(!strcmp(cmd, &amp;quot;wastats&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;wbstats&amp;quot;)) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;rws&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;portalcampos&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;startCam&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;SetInitialCamera&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;stopCam&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;setspawnpt&amp;quot; ) ) {&lt;br /&gt;
        if ( !strcmp( cmd, &amp;quot;rockandroll&amp;quot; ) ) {  // map loaded, game is ready to                            begin.&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;application&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;invitation&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;proposition&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;aft&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;aftc&amp;quot; ) ) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;aftj&amp;quot; ) ) {&lt;br /&gt;
        if ( Q_stricmp (cmd, &amp;quot;remapShader&amp;quot;) == 0 ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;mu_start&amp;quot; ) ) {  // has optional parameter for fa                           de-up time&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;mu_play&amp;quot; ) ) {   // has optional parameter for fa                           de-up time&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;mu_stop&amp;quot; ) ) {   // has optional parameter for fa                           de-down time&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;mu_fade&amp;quot; ) ) {&lt;br /&gt;
        if ( !Q_stricmp( cmd, &amp;quot;snd_fade&amp;quot; ) ) {&lt;br /&gt;
        if (!Q_stricmp(cmd, &amp;quot;ftCommands&amp;quot;)) {&lt;br /&gt;
        if(!Q_stricmp(cmd, &amp;quot;addToBuild&amp;quot;)) {&lt;br /&gt;
        if( !Q_stricmp( cmd, &amp;quot;spawnserver&amp;quot; ) )&amp;lt;pre&amp;gt;&lt;br /&gt;
Maybe the ETPro server commands are different, but etmain does not seem to support these commands.&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Talk:SendServerCommand&amp;diff=1888</id>
		<title>Talk:SendServerCommand</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Talk:SendServerCommand&amp;diff=1888"/>
		<updated>2005-11-24T21:25:13Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m not sure about the chat commands syntax here. Could someone confirm they are correct? I use the chat command and AFAIK it takes 2 parameters (integers) &#039;&#039;&#039;after&#039;&#039;&#039; the chat string itself. --Rookie One 13:25, 24 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=SendServerCommand&amp;diff=1887</id>
		<title>SendServerCommand</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=SendServerCommand&amp;diff=1887"/>
		<updated>2005-11-24T21:23:41Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: Nice article. :) Added a brief description + some minor fixes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;et.trap_SendServerCommand() is used to send a command from the server to one or more clients. The first argument is the slot number of the client the command will be sent to. If it&#039;s equal to -1, the command will be broadcasted to all clients.&lt;br /&gt;
&lt;br /&gt;
The following commands can be issued with this function:&lt;br /&gt;
&lt;br /&gt;
==Prining==&lt;br /&gt;
===Print===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;print&#039;&#039;&#039; \&amp;quot;&#039;&#039;Message&#039;&#039;\n\&amp;quot;&amp;quot;&lt;br /&gt;
:&#039;&#039;&#039;print&#039;&#039;&#039; prints &#039;&#039;Message&#039;&#039; to the client&#039;s console.&lt;br /&gt;
&lt;br /&gt;
===Center Print MoO=== &lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;cpm&#039;&#039;&#039; \&amp;quot;&#039;&#039;Message&#039;&#039;\n\&amp;quot;&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;cpm&#039;&#039;&#039; prints &#039;&#039;Message&#039;&#039; to the client&#039;s annoucement area and console.&lt;br /&gt;
&lt;br /&gt;
===Center Print===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;cp&#039;&#039;&#039; \&amp;quot;&#039;&#039;Message&#039;&#039;\n\&amp;quot;&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;cp&#039;&#039;&#039; prints &#039;&#039;Message&#039;&#039; to the center of the client&#039;s screen.&lt;br /&gt;
&lt;br /&gt;
===Scores Print===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;sc&#039;&#039;&#039; \&amp;quot;&#039;&#039;Message&#039;&#039;\n\&amp;quot;&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;sc&#039;&#039;&#039; prints &#039;&#039;Message&#039;&#039; to the client&#039;s console and writes it to the statsdump file.&lt;br /&gt;
&lt;br /&gt;
==Chatting==&lt;br /&gt;
===Chat===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;c&#039;&#039;&#039; &#039;&#039;ClientNum&#039;&#039; \&amp;quot;&#039;&#039;Message&#039;&#039;\&amp;quot;&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;c&#039;&#039;&#039; prints &#039;&#039;Message&#039;&#039; as a global chat message on behalf of client &#039;&#039;ClientNum&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Team Chat===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;tc&#039;&#039;&#039; &#039;&#039;ClientNum&#039;&#039; \&amp;quot;&#039;&#039;Message&#039;&#039;\&amp;quot; &#039;&#039;X-Location&#039;&#039; &#039;&#039;Y-Location&#039;&#039; &#039;&#039;Z-Location&#039;&#039;&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;tc&#039;&#039;&#039; prints &#039;&#039;Message&#039;&#039; as a team chat message on behalf of client &#039;&#039;ClientNum&#039;&#039;,&amp;lt;br&amp;gt;&lt;br /&gt;
:the &#039;&#039;X,Y,Z-Location&#039;s&#039;&#039; are optional parematers that represent the client&#039;s location,&amp;lt;br&amp;gt;&lt;br /&gt;
:if the &#039;&#039;X,Y,Z-Location&#039;s&#039;&#039; are left out then the message will be printed without a location.&lt;br /&gt;
&lt;br /&gt;
===Fireteam Chat===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;bc&#039;&#039;&#039; &#039;&#039;ClientNum&#039;&#039; \&amp;quot;&#039;&#039;Message&#039;&#039;\&amp;quot; &#039;&#039;X-Location&#039;&#039; &#039;&#039;Y-Location&#039;&#039; &#039;&#039;Z-Location&#039;&#039;&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;bc&#039;&#039;&#039; prints &#039;&#039;Message&#039;&#039; as a fireteam chat message on behalf of client &#039;&#039;ClientNum&#039;&#039;,&amp;lt;br&amp;gt;&lt;br /&gt;
:the &#039;&#039;X,Y,Z-Location&#039;s&#039;&#039; are parematers that represent the client&#039;s location.&lt;br /&gt;
&lt;br /&gt;
==Voice Chat==&lt;br /&gt;
===Global Voice Chat===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;vchat&#039;&#039;&#039; 0 &#039;&#039;ClientNum&#039;&#039; 50 &#039;&#039;Vsay-String&#039;&#039; &#039;&#039;Vsay-Number&#039;&#039; \&amp;quot;&#039;&#039;Custom-Message&#039;&#039;\&amp;quot;&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;vchat&#039;&#039;&#039; sends a global voice chat &#039;&#039;Vsay-String&#039;&#039; on behalf of client &#039;&#039;ClientNum&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;Vsay-Number&#039;&#039; is by default random, however, it can be set by the player by passing parameters to the vsay command (/vsay &amp;lt;&#039;&#039;Vsay-Number&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;Vsay-String&#039;&#039;&amp;gt;),&amp;lt;br&amp;gt; &#039;&#039;Vsay-Number&#039;&#039; represents the vsay number of Vsay as listed in the .voice files.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;Custom-Message&#039;&#039; is by default \&amp;quot;\&amp;quot; (empty), otherwise it&#039;s the message that gets printed in the chat area.&lt;br /&gt;
&lt;br /&gt;
===Team Voice Chat===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;vtchat&#039;&#039;&#039; 0 &#039;&#039;ClientNum&#039;&#039; 50 &#039;&#039;Vsay-String&#039;&#039; &#039;&#039;Vsay-Number&#039;&#039; &#039;&#039;Y-Location&#039;&#039; &#039;&#039;Z-Location&#039;&#039; \&amp;quot;&#039;&#039;Custom-Message&#039;&#039;\&amp;quot;&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;vchat&#039;&#039;&#039; sends a team voice chat &#039;&#039;Vsay-String&#039;&#039; a on behalf of client &#039;&#039;ClienNtum&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;Vsay-Number&#039;&#039; is by default random, however, it can be set by the player by passing parameters to the vsay command (/vsay &amp;lt;&#039;&#039;Vsay-Number&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;Vsay-String&#039;&#039;&amp;gt;),&amp;lt;br&amp;gt; &#039;&#039;Vsay-Number&#039;&#039; represents the vsay number of Vsay as listed in the .voice files.&amp;lt;br&amp;gt;&lt;br /&gt;
:the &#039;&#039;X,Y,Z-Location&#039;s&#039;&#039; parematers the represent the clients location.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;Custom-Message&#039;&#039; is by default \&amp;quot;\&amp;quot; (empty), otherwise it&#039;s the message that gets printed in the chat area.&lt;br /&gt;
&lt;br /&gt;
===Fireteam Voice Chat===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;vtchat&#039;&#039;&#039; 0 &#039;&#039;ClientNum&#039;&#039; 50 &#039;&#039;Fireteam-String&#039;&#039; &#039;&#039;Vsay-Number&#039;&#039; &#039;&#039;Y-Location&#039;&#039; &#039;&#039;Z-Location&#039;&#039; \&amp;quot;&#039;&#039;Custom-Message&#039;&#039;\&amp;quot;&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;vchat&#039;&#039;&#039; will team voice chat &#039;&#039;Vsay-String&#039;&#039; on behalf of client &#039;&#039;ClienNum&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;Vsay-Number&#039;&#039; is by default random, however, it can be set by the player by passing parameters to the vsay command (/vsay &amp;lt;&#039;&#039;Vsay-Number&#039;&#039;&amp;gt; &amp;lt;&#039;&#039;Vsay-String&#039;&#039;&amp;gt;),&amp;lt;br&amp;gt; &#039;&#039;Vsay-Number&#039;&#039; represents the vsay number of Vsay as listed in the .voice files.&amp;lt;br&amp;gt;&lt;br /&gt;
:the &#039;&#039;X,Y,Z-Location&#039;s&#039;&#039; parematers the represent the clients location.&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;Custom-Message&#039;&#039; is by default \&amp;quot;\&amp;quot; (empty), otherwise it&#039;s the message that gets printed in the chat area.&lt;br /&gt;
&lt;br /&gt;
==Fireteam==&lt;br /&gt;
===Application===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;application&#039;&#039;&#039; &#039;&#039;Number&#039;&#039;&amp;quot;&lt;br /&gt;
:&#039;&#039;&#039;application&#039;&#039;&#039; shows a fireteam invation message to the client.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; &amp;gt; -1 - the &amp;quot;accept ... application to join your fireteam&amp;quot; message shows up. In this case &#039;&#039;Number&#039;&#039; is the ClientNum of the applying client.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -1 - the &amp;quot;your aplication has been submitted&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -2 - the &amp;quot;your aplication failed&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -3 - the &amp;quot;your aplication has been approved&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -4 - the &amp;quot;your aplication reply has been sent&amp;quot; message shows up.&lt;br /&gt;
&lt;br /&gt;
===Proposition===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;proposition&#039;&#039;&#039; &#039;&#039;Number&#039;&#039; &#039;&#039;Number2&#039;&#039;&amp;quot;&lt;br /&gt;
:&#039;&#039;&#039;proposition&#039;&#039;&#039; shows a fireteam proposition message to the client.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; &amp;gt; -1 - the &amp;quot;accept ... proposition to invite ... to your fireteam&amp;quot; message shows up. In this case &#039;&#039;Number&#039;&#039; is the ClientNum of the proposed client, and &#039;&#039;Number2&#039;&#039; is the ClientNum of the proposing player.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -1 - the &amp;quot;your proposition has been submitted&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -2 - the &amp;quot;your proposition was rejected&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -3 - the &amp;quot;your proposition was accepted&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -4 - the &amp;quot;your proposition reply has been sent&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Number2&#039;&#039; is an optional paramater only used when &#039;&#039;Number&#039;&#039; &amp;gt; -1.&lt;br /&gt;
&lt;br /&gt;
===Invitation===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;invitation&#039;&#039;&#039; &#039;&#039;Number&#039;&#039;&amp;quot;&lt;br /&gt;
:&#039;&#039;&#039;invitation&#039;&#039;&#039; shows the fireteam invation message to the client.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; &amp;gt; -1 - the &amp;quot;accept .. invitation to join your fireteam&amp;quot; message shows up. In this case &#039;&#039;Number&#039;&#039; is the ClientNum of the applying client.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -1 - the &amp;quot;your invitation has been submitted&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -2 - the &amp;quot;your invitation rejected&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -3 - the &amp;quot;your invitation was accepted&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -4 - the &amp;quot;your invitation reply has been sent&amp;quot; message shows up.&lt;br /&gt;
&lt;br /&gt;
==Others== &lt;br /&gt;
===Complaining===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;complaint&#039;&#039;&#039; &#039;&#039;Number&#039;&#039;&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;complaint&#039;&#039;&#039; shows the complaint vote message to the client.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; &amp;gt; 1 - the vote shows up. In this case &#039;&#039;Number&#039;&#039; is the ClientNum of the teamkilling player.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -1 - the &amp;quot;complaint filed&amp;quot; message shows up.&amp;lt;br&amp;gt;&lt;br /&gt;
:if &#039;&#039;Number&#039;&#039; == -2 - the &amp;quot;complaint dismissed&amp;quot; message shows up.&lt;br /&gt;
&lt;br /&gt;
===Spawning===&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;setspawnpt&#039;&#039;&#039; &#039;&#039;number&#039;&#039;&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;quot;&#039;&#039;&#039;setspawnpt&#039;&#039;&#039; sets the client game selected spawnpoint to number &#039;&#039;number&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Easter_egg&amp;diff=1886</id>
		<title>Easter egg</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Easter_egg&amp;diff=1886"/>
		<updated>2005-11-24T21:07:48Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Huh?==&lt;br /&gt;
According to various rumours, there seem to be some easter eggs in [[ETPro]].&lt;br /&gt;
In the last months there occured single hints for them, which are collected here.&lt;br /&gt;
If you found one (or more) don&#039;t spoil them by posting it here.&lt;br /&gt;
&lt;br /&gt;
==Eggs==&lt;br /&gt;
===Egg 1===&lt;br /&gt;
Hint 1:&amp;lt;br&amp;gt;http://etpro.poohunter.de/img/eggs/easteregg1.gif&lt;br /&gt;
*This easter egg isn&#039;t a rumour any longer. It was abused by few players excessively.&lt;br /&gt;
Therefor it can be disabled by a serverside cvar.&lt;br /&gt;
&lt;br /&gt;
===Egg 2===&lt;br /&gt;
Hint 1:&amp;lt;br&amp;gt;http://etpro.poohunter.de/img/eggs/easteregg2.1.png&amp;lt;br&amp;gt;&lt;br /&gt;
Hint 2:&amp;lt;br&amp;gt;http://etpro.poohunter.de/img/eggs/easteregg2.2.jpg&lt;br /&gt;
&lt;br /&gt;
===Egg 3===&lt;br /&gt;
*Hint 1: Move like the leet and the leet will be with you ...&lt;br /&gt;
*Hint 2: OMFG U R 2 [[31337]] 4 THIS GAEM!1!!1&lt;br /&gt;
&lt;br /&gt;
===Egg 4===&lt;br /&gt;
*Hint 1: rain is on fire ...&lt;br /&gt;
&lt;br /&gt;
===Egg 5===&lt;br /&gt;
* there was about to be a 5th egg, but the rumours about this are too weak to mention it.&lt;br /&gt;
there is a fifth egg, but I&#039;m not sure if it still works in the latest etpro versions, one cookie for he who finds it&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1877</id>
		<title>Fieldname</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1877"/>
		<updated>2005-11-23T15:49:43Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of fields supported by [[ETPro:Lua Mod API#entities|et.gentity_get() and et.gentity_set()]] functions&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pitatable columns=3 headlines=&amp;quot;field;type;access&amp;quot; widths=&amp;quot;180;80;60&amp;quot; headerfontcolor=&amp;quot;#FFFFFF&amp;quot;&amp;gt;&lt;br /&gt;
activator;entity;RO;&lt;br /&gt;
chain;entity;RW;&lt;br /&gt;
classname;string;RW;&lt;br /&gt;
closespeed;float;RW;&lt;br /&gt;
count;integer;RW;&lt;br /&gt;
count2;integer;RW;&lt;br /&gt;
damage;integer;RW;&lt;br /&gt;
deathType;integer;RW;&lt;br /&gt;
delay;float;RW;&lt;br /&gt;
dl_atten;integer;RW;&lt;br /&gt;
dl_color;vec3;RW;&lt;br /&gt;
dl_shader;string;RO;&lt;br /&gt;
dl_stylestring;string;RO;&lt;br /&gt;
duration;float;RW;&lt;br /&gt;
end_size;integer;RW;&lt;br /&gt;
enemy;entity;RW;&lt;br /&gt;
flags;integer;RO;&lt;br /&gt;
harc;float;RW;&lt;br /&gt;
health;integer;RW;&lt;br /&gt;
inuse;boolean;RO;&lt;br /&gt;
isProp;boolean;RO;&lt;br /&gt;
item;string;RW;&lt;br /&gt;
key;integer;RW;&lt;br /&gt;
message;string;RW;&lt;br /&gt;
methodOfDeath;integer;RW;&lt;br /&gt;
mg42BaseEnt;integer;RW;&lt;br /&gt;
missionLevel;integer;RW;&lt;br /&gt;
model;string;RO;&lt;br /&gt;
model2;string;RO;&lt;br /&gt;
nextTrain;entity;RW;&lt;br /&gt;
noise_index;integer;RW;&lt;br /&gt;
origin;vec3;RW;&lt;br /&gt;
prevTrain;entity;RW;&lt;br /&gt;
props_frame_state;integer;RO;&lt;br /&gt;
r.absmax;vec3;RO;&lt;br /&gt;
r.absmin;vec3;RO;&lt;br /&gt;
r.bmodel;boolean;RO;&lt;br /&gt;
r.contents;integer;RW;&lt;br /&gt;
r.currentAngles;vec3;RW;&lt;br /&gt;
r.currentOrigin;vec3;RW;&lt;br /&gt;
r.eventTime;integer;RW;&lt;br /&gt;
r.linkcount;integer;RO;&lt;br /&gt;
r.linked;boolean;RO;&lt;br /&gt;
r.maxs;vec3;RW;&lt;br /&gt;
r.mins;vec3;RW;&lt;br /&gt;
r.ownerNum;integer;RW;&lt;br /&gt;
r.singleClient;integer;RW;&lt;br /&gt;
r.svFlags;integer;RW;&lt;br /&gt;
r.worldflags;integer;RO;&lt;br /&gt;
radius;integer;RW;&lt;br /&gt;
random;float;RW;&lt;br /&gt;
rotate;vec3;RW;&lt;br /&gt;
s.angles;vec3;RW;&lt;br /&gt;
s.angles2;vec3;RW;&lt;br /&gt;
s.apos;trajectory;RW;&lt;br /&gt;
s.clientNum;integer;RW;&lt;br /&gt;
s.constantLight;integer;RW;&lt;br /&gt;
s.density;integer;RW;&lt;br /&gt;
s.dl_intensity;integer;RW;&lt;br /&gt;
s.dmgFlags;integer;RW;&lt;br /&gt;
s.eFlags;integer;RW;&lt;br /&gt;
s.effect1Time;integer;RW;&lt;br /&gt;
s.effect2Time;integer;RW;&lt;br /&gt;
s.effect3Time;integer;RW;&lt;br /&gt;
s.frame;integer;RW;&lt;br /&gt;
s.groundEntityNum;integer;RO;&lt;br /&gt;
s.loopSound;integer;RW;&lt;br /&gt;
s.modelindex;integer;RW;&lt;br /&gt;
s.modelindex2;integer;RW;&lt;br /&gt;
s.number;integer;RO;&lt;br /&gt;
s.onFireEnd;integer;RW;&lt;br /&gt;
s.onFireStart;integer;RW;&lt;br /&gt;
s.pos;trajectory;RW;&lt;br /&gt;
s.powerups;integer;RO;&lt;br /&gt;
s.solid;integer;RW;&lt;br /&gt;
s.teamNum;integer;RW;&lt;br /&gt;
s.time;integer;RW;&lt;br /&gt;
s.time2;integer;RW;&lt;br /&gt;
s.weapon;integer;RO;&lt;br /&gt;
scriptName;string;RO;&lt;br /&gt;
sess.sessionTeam;integer;RW;&lt;br /&gt;
sess.spectatorTime;integer;RW;&lt;br /&gt;
sess.spectatorState;integer;RW;&lt;br /&gt;
sess.spectatorClient;integer;RW;&lt;br /&gt;
sess.latchSpectatorClient;integer;RW;&lt;br /&gt;
sess.playerType;integer;RW;&lt;br /&gt;
sess.playerWeapon;integer;RW;&lt;br /&gt;
sess.playerWeapon2;integer;RW;&lt;br /&gt;
sess.spawnObjectiveIndex;integer;RW;&lt;br /&gt;
sess.latchPlayerType;integer;RW;&lt;br /&gt;
sess.latchPlayerWeapon;integer;RW;&lt;br /&gt;
sess.latchPlayerWeapon2;integer;RW;&lt;br /&gt;
sess.damage_given;integer;RW;&lt;br /&gt;
sess.damage_received;integer;RW;&lt;br /&gt;
sess.deaths;integer;RW;&lt;br /&gt;
sess.game_points;integer;RW;&lt;br /&gt;
sess.gibs;integer;RW;&lt;br /&gt;
sess.kills;integer;RW;&lt;br /&gt;
sess.muted;integer;RW;&lt;br /&gt;
sess.referee;integer;RW;&lt;br /&gt;
sess.rounds;integer;RW;&lt;br /&gt;
sess.semiadmin;integer;RW;&lt;br /&gt;
sess.spec_invite;integer;RW;&lt;br /&gt;
sess.spec_team;integer;RW;&lt;br /&gt;
sess.suicides;integer;RW;&lt;br /&gt;
sess.team_damage;integer;RW;&lt;br /&gt;
sess.team_kills;integer;RW;&lt;br /&gt;
sess.team_received;integer;RW;&lt;br /&gt;
spawnflags;integer;RO;&lt;br /&gt;
spawnitem;string;RO;&lt;br /&gt;
speed;float;RW;&lt;br /&gt;
splashDamage;integer;RW;&lt;br /&gt;
splashMethodOfDeath;integer;RW;&lt;br /&gt;
splashRadius;integer;RW;&lt;br /&gt;
start_size;integer;RW;&lt;br /&gt;
tagName;string;RO;&lt;br /&gt;
tagParent;entity;RW;&lt;br /&gt;
takedamage;boolean;RW;&lt;br /&gt;
tankLink;entity;RW;&lt;br /&gt;
target;string;RW;&lt;br /&gt;
TargetAngles;vec3;RW;&lt;br /&gt;
TargetFlag;integer;RO;&lt;br /&gt;
targetname;string;RO;&lt;br /&gt;
teamchain;entity;RW;&lt;br /&gt;
teammaster;entity;RW;&lt;br /&gt;
track;string;RO;&lt;br /&gt;
varc;float;RW;&lt;br /&gt;
wait;float;RW;&lt;br /&gt;
waterlevel;integer;RO;&lt;br /&gt;
watertype;integer;RO;&lt;br /&gt;
&amp;lt;/pitatable&amp;gt;&lt;br /&gt;
:&#039;&#039;note&#039;&#039;: all the sess.* fields will return nil unless the entity is associated with client slot &amp;lt; sv_maxclients.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ET variable types&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vec3&#039;&#039;&#039;: a &#039;&#039;&#039;vec3&#039;&#039;&#039; is a 3-element array of numbers (C definition: &amp;lt;tt&amp;gt;typedef float vec3_t[3];&lt;br /&gt;
&amp;lt;/tt&amp;gt;). It is usually used to store and process coordinates in 3D space.&amp;lt;br&amp;gt;&lt;br /&gt;
In etpro-lua a vector is an array (table indexed by integers) containing 3 numbers. It can be accessed by&lt;br /&gt;
doing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
origin = et.gentity_get(entNum,&amp;quot;r.currentOrigin&amp;quot;) --a vec3 value&lt;br /&gt;
x,y,z = origin[1],origin[2],origin[3]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;trajectory&#039;&#039;&#039;: a &#039;&#039;&#039;trajectory&#039;&#039;&#039; is returned as a lua table described below&lt;br /&gt;
 {&lt;br /&gt;
  trDuration = &amp;lt;number&amp;gt;, --- int&lt;br /&gt;
  trTime = &amp;lt;number&amp;gt;, -- int&lt;br /&gt;
  trType = &amp;lt;number&amp;gt;, -- see below for allowed values&lt;br /&gt;
  trBase { -- this is a vec3, as described above&lt;br /&gt;
    [1] = &amp;lt;number&amp;gt;&lt;br /&gt;
    [2] = &amp;lt;number&amp;gt;&lt;br /&gt;
    [3] = &amp;lt;number&amp;gt;&lt;br /&gt;
  },&lt;br /&gt;
  trDelta { -- also a vec3&lt;br /&gt;
   [1] = &amp;lt;number&amp;gt;&lt;br /&gt;
   [2] = &amp;lt;number&amp;gt;&lt;br /&gt;
   [3] = &amp;lt;number&amp;gt;&lt;br /&gt;
  },&lt;br /&gt;
 }&lt;br /&gt;
: the allowed values for trType (along with the enum names and original comments from the ET source), are as follows. Note &lt;br /&gt;
: that not all values make sense for all entity types &amp;lt;tt&amp;gt;&lt;br /&gt;
&amp;lt;ol start=0&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_STATIONARY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_INTERPOLATE	// non-parametric, but interpolate between snapshots&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; TR_LINEAR&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_STOP&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_STOP_BACK //----(SA) added.  so reverse movement can be different than forward&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_SINE // value = base + sin( time / duration ) * delta&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_LOW&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_FLOAT // super low grav with no gravity acceleration (floating feathers/fabric/leaves/...)&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_PAUSED //----(SA) has stopped, but will still do a short trace to see if it should be switched back to TR_GRAVITY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_ACCELERATE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_DECCELERATE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_SPLINE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;entity&#039;&#039;&#039;: The fields listed as having type &#039;&#039;&#039;enitity&#039;&#039;&#039; return an entity number or nil. Entity numbers are integers from 0 through 1023. Some of the entity numbers have special meanings:&lt;br /&gt;
** 0 - (sv_privateclients - 1) are reserved for clients who connect with the private slot password&lt;br /&gt;
** 0 - 63 are reserved for clients. A client&#039;s entity number is also its client number (as shown by /players for example)&lt;br /&gt;
** 1022 is the &#039;&#039;&#039;worldspawn&#039;&#039;&#039; entity&lt;br /&gt;
** 1023 is &#039;&#039;&#039;ENTITYNUM_NONE&#039;&#039;&#039; which is used instead of null in C under some circumstances to indicate no entity. This is needed where an entity number will be passed over the network.&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: Some other fields not listed as type &#039;entity&#039; may take an entity number value. &#039;&#039;&#039;mg42BaseEnt&#039;&#039;&#039; and &#039;&#039;&#039;s.number&#039;&#039;&#039; are examples.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1869</id>
		<title>User talk:=FF=im2good4u</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1869"/>
		<updated>2005-11-22T21:35:40Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The links lead to 404 errors. --Rookie One 10:42, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
:I think that&#039;s about normal for im2good4u. --[[User:Bani|Bani]] 12:59, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t think clans should have wiki-pages on here, even links to non-existant ones. --[[User:WeblionX|WeblionX]] 14:49, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
i stole my userpage from [[User:Deus|Deus]] so blame him :d btw i fixed it i was never seposed tobe a wiki link it was seposed to link to the =FF=Clan site&lt;br /&gt;
&lt;br /&gt;
/me hits =FF=im2good4u with the previewStick --[[User:Deus|Deus]] 09:52, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
You might want to know that Lua converts variable types at runtime, so your varPrint script is not really necessary. ;) --Rookie One 10:45, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
it is since et.G_Printf gives an error while priniting a nil or funtion variable. au trues to convert variables yes but if it cant my scriot will try to avoud errors. its specialy hnady for debuging if u expect a variale tobe something wile it is stil nil or something --2good&lt;br /&gt;
&lt;br /&gt;
One more thing, DebugLib and ETProStuffPlug still don&#039;t work.&lt;br /&gt;
&lt;br /&gt;
i Know im still finishing them --2good&lt;br /&gt;
&lt;br /&gt;
Have you tried using et_ClientCommand? I had some [http://bani.anime.net/banimod/forums/viewtopic.php?p=60586#60586 problems]. --Rookie One 12:51, 16 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
the builtin function &#039;&#039;&#039;tostring&#039;&#039;&#039; can also be used if you think a var is going to be something like nil or another non-printable value. I tend to print things as &amp;lt;tt&amp;gt;G_Printf(&amp;quot;%s[%s]&amp;quot;,type(somevar),tostring(somevar))&amp;lt;/tt&amp;gt; [[User:ReyalP|ReyalP]] 13:33, 16 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
OMG, it just hurts my eyes to read your user page... Please, please, work on you spelling! --Rookie One 06:24, 18 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
/me slaps im2good4u around with a big smelly preview fish --Rookie One 13:35, 22 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1863</id>
		<title>Fieldname</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1863"/>
		<updated>2005-11-22T18:38:53Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of fields supported by [[ETPro:Lua Mod API#entities|et.gentity_get() and et.gentity_set()]] functions&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;table border=0&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=#555555&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;field&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;type&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;access&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;activator&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;chain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;classname&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;closespeed&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;count&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;count2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;damage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;deathType&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;delay&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_atten&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_color&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_shader&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_stylestring&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;duration&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;end_size&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;enemy&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;flags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;harc&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;health&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;inuse&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;isProp&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;item&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;key&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;message&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;methodOfDeath&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;mg42BaseEnt&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;missionLevel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;model&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;model2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;nextTrain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;noise_index&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;origin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;prevTrain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;props_frame_state&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.absmax&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.absmin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.bmodel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.contents&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.currentAngles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.currentOrigin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.eventTime&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.linkcount&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.linked&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.maxs&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.mins&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.ownerNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.singleClient&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.svFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.worldflags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;radius&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;random&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;rotate&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.angles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.angles2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.apos&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;trajectory&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.clientNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.constantLight&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.density&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.dl_intensity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.dmgFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.eFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect1Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect2Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect3Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.frame&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.groundEntityNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.loopSound&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.modelindex&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.modelindex2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.number&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.onFireEnd&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.onFireStart&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.pos&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;trajectory&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.powerups&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.solid&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.teamNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.time2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.weapon&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;scriptName&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.sessionTeam&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spectatorTime&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spectatorState&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spectatorClient&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.latchSpectatorClient&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.playerType&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.playerWeapon&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.playerWeapon2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spawnObjectiveIndex&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.latchPlayerType&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.latchPlayerWeapon&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.latchPlayerWeapon2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.damage_given&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.damage_received&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.deaths&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.game_points&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.gibs&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.kills&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.muted&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.referee&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.rounds&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.semiadmin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spec_invite&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spec_team&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.suicides&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_damage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_kills&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_received&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;spawnflags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;spawnitem&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;speed&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashDamage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashMethodOfDeath&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashRadius&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;start_size&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tagName&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tagParent&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;takedamage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tankLink&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;target&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;TargetAngles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;TargetFlag&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;targetname&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;teamchain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;teammaster&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;track&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;varc&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;wait&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;waterlevel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;watertype&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;note&#039;&#039;: all the sess.* fields will return nil unless the entity is associated with client slot &amp;lt; sv_maxclients.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ET variable types&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;vec3&#039;&#039;&#039;: a &#039;&#039;&#039;vec3&#039;&#039;&#039; is a 3-element array of numbers (C definition: &amp;lt;tt&amp;gt;typedef float vec3_t[3];&lt;br /&gt;
&amp;lt;/tt&amp;gt;). It is usually used to store and process coordinates in 3D space.&amp;lt;br&amp;gt;&lt;br /&gt;
In etpro-lua a vector is an array (table indexed by integers) containing 3 numbers. It can be accessed by&lt;br /&gt;
doing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
origin = et.gentity_get(entNum,&amp;quot;r.currentOrigin&amp;quot;) --a vec3 value&lt;br /&gt;
x,y,z = origin[1],origin[2],origin[3]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;trajectory&#039;&#039;&#039;: a &#039;&#039;&#039;trajectory&#039;&#039;&#039; is returned as a lua table described below&lt;br /&gt;
 {&lt;br /&gt;
  trDuration = &amp;lt;number&amp;gt;, --- int&lt;br /&gt;
  trTime = &amp;lt;number&amp;gt;, -- int&lt;br /&gt;
  trType = &amp;lt;number&amp;gt;, -- see below for allowed values&lt;br /&gt;
  trBase { -- this is a vec3, as described above&lt;br /&gt;
    [1] = &amp;lt;number&amp;gt;&lt;br /&gt;
    [2] = &amp;lt;number&amp;gt;&lt;br /&gt;
    [3] = &amp;lt;number&amp;gt;&lt;br /&gt;
  },&lt;br /&gt;
  trDelta { -- also a vec3&lt;br /&gt;
   [1] = &amp;lt;number&amp;gt;&lt;br /&gt;
   [2] = &amp;lt;number&amp;gt;&lt;br /&gt;
   [3] = &amp;lt;number&amp;gt;&lt;br /&gt;
  },&lt;br /&gt;
 }&lt;br /&gt;
: the allowed values for trType (along with the enum names and original comments from the ET source), are as follows. Note &lt;br /&gt;
: that not all values make sense for all entity types &amp;lt;tt&amp;gt;&lt;br /&gt;
&amp;lt;ol start=0&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_STATIONARY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_INTERPOLATE	// non-parametric, but interpolate between snapshots&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; TR_LINEAR&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_STOP&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_STOP_BACK //----(SA) added.  so reverse movement can be different than forward&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_SINE // value = base + sin( time / duration ) * delta&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_LOW&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_FLOAT // super low grav with no gravity acceleration (floating feathers/fabric/leaves/...)&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_PAUSED //----(SA) has stopped, but will still do a short trace to see if it should be switched back to TR_GRAVITY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_ACCELERATE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_DECCELERATE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_SPLINE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;entity&#039;&#039;&#039;: The fields listed as having type &#039;&#039;&#039;enitity&#039;&#039;&#039; return an entity number or nil. Entity numbers are integers from 0 through 1023. Some of the entity numbers have special meanings:&lt;br /&gt;
** 0 - (sv_privateclients - 1) are reserved for clients who connect with the private slot password&lt;br /&gt;
** 0 - 63 are reserved for clients. A client&#039;s entity number is also its client number (as shown by /players for example)&lt;br /&gt;
** 1022 is the &#039;&#039;&#039;worldspawn&#039;&#039;&#039; entity&lt;br /&gt;
** 1023 is &#039;&#039;&#039;ENTITYNUM_NONE&#039;&#039;&#039; which is used instead of null in C under some circumstances to indicate no entity. This is needed where an entity number will be passed over the network.&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: Some other fields not listed as type &#039;entity&#039; may take an entity number value. &#039;&#039;&#039;mg42BaseEnt&#039;&#039;&#039; and &#039;&#039;&#039;s.number&#039;&#039;&#039; are examples.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1849</id>
		<title>Fieldname</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1849"/>
		<updated>2005-11-20T09:47:58Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of fields supported by [[ETPro:Lua Mod API#entities|et.gentity_get() and et.gentity_set()]] functions&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;table border=0&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=#555555&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;field&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;type&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;access&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;activator&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;chain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;classname&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;closespeed&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;count&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;count2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;damage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;deathType&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;delay&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_atten&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_color&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_shader&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_stylestring&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;duration&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;end_size&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;enemy&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;flags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;harc&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;health&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;inuse&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;isProp&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;item&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;key&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;message&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;methodOfDeath&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;mg42BaseEnt&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;missionLevel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;model&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;model2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;nextTrain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;noise_index&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;origin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;prevTrain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;props_frame_state&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.absmax&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.absmin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.bmodel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.contents&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.currentAngles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.currentOrigin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.eventTime&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.linkcount&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.linked&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.maxs&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.mins&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.ownerNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.singleClient&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.svFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.worldflags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;radius&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;random&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;rotate&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.angles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.angles2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.apos&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;trajectory&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.clientNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.constantLight&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.density&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.dl_intensity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.dmgFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.eFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect1Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect2Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect3Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.frame&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.groundEntityNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.loopSound&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.modelindex&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.modelindex2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.number&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.onFireEnd&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.onFireStart&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.pos&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;trajectory&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.powerups&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.solid&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.teamNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.time2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.weapon&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;scriptName&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.damage_given&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.damage_received&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.deaths&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.game_points&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.gibs&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.kills&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.muted&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.referee&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.rounds&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.semiadmin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spec_invite&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spec_team&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.suicides&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_damage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_kills&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_received&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;spawnflags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;spawnitem&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;speed&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashDamage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashMethodOfDeath&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashRadius&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;start_size&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tagName&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tagParent&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;takedamage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tankLink&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;target&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;TargetAngles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;TargetFlag&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;targetname&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;teamchain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;teammaster&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;track&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;varc&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;wait&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;waterlevel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;watertype&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;note&#039;&#039;: all the sess.* fields will return nil unless the entity is associated with client slot &amp;lt; sv_maxclients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ET variable types&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vec3&#039;&#039;&#039; : a &#039;&#039;&#039;vec3&#039;&#039;&#039; is a 3-element array of numbers (C definition: &amp;lt;tt&amp;gt;typedef float vec3_t[3];&lt;br /&gt;
&amp;lt;/tt&amp;gt;). It is usually used to store and process coordinates in 3D space.&amp;lt;br&amp;gt;&lt;br /&gt;
In etpro-lua a vector is an array (table indexed by integers) containing 3 numbers. It can be accessed by&lt;br /&gt;
doing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
origin = et.gentity_get(entNum,&amp;quot;r.currentOrigin&amp;quot;) --a vec3 value&lt;br /&gt;
x,y,z = origin[1],origin[2],origin[3]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;trajectory&#039;&#039;&#039;: a &#039;&#039;&#039;trajectory&#039;&#039;&#039; is returned as a lua table described below&lt;br /&gt;
 {&lt;br /&gt;
  trDuration = &amp;lt;number&amp;gt;, --- int&lt;br /&gt;
  trTime = &amp;lt;number&amp;gt;, -- int&lt;br /&gt;
  trType = &amp;lt;number&amp;gt;, -- see below for allowed values&lt;br /&gt;
  trBase { -- this is a vec3, as described above&lt;br /&gt;
    [1] = &amp;lt;number&amp;gt;&lt;br /&gt;
    [2] = &amp;lt;number&amp;gt;&lt;br /&gt;
    [3] = &amp;lt;number&amp;gt;&lt;br /&gt;
  },&lt;br /&gt;
  trDelta { -- also a vec3&lt;br /&gt;
   [1] = &amp;lt;number&amp;gt;&lt;br /&gt;
   [2] = &amp;lt;number&amp;gt;&lt;br /&gt;
   [3] = &amp;lt;number&amp;gt;&lt;br /&gt;
  },&lt;br /&gt;
 }&lt;br /&gt;
: the allowed values for trType (along with the enum names and original comments from the ET source), are as follows. Note &lt;br /&gt;
: that not all values make sense for all entity types &amp;lt;tt&amp;gt;&lt;br /&gt;
&amp;lt;ol start=0&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_STATIONARY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_INTERPOLATE	// non-parametric, but interpolate between snapshots&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; TR_LINEAR&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_STOP&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_STOP_BACK //----(SA) added.  so reverse movement can be different than forward&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_SINE // value = base + sin( time / duration ) * delta&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_LOW&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_FLOAT // super low grav with no gravity acceleration (floating feathers/fabric/leaves/...)&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_PAUSED //----(SA) has stopped, but will still do a short trace to see if it should be switched back to TR_GRAVITY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_ACCELERATE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_DECCELERATE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_SPLINE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;entity&#039;&#039;&#039;: The fields listed as having type &#039;&#039;&#039;enitity&#039;&#039;&#039; return an entity number or nil. Entity numbers are integers from 0 through 1023. Some of the entity numbers have special meanings:&lt;br /&gt;
* 0 - (sv_privateclients - 1) are reserved for clients who connect with the private slot password&lt;br /&gt;
* 0 - 63 are reserved for clients. A client&#039;s entity number is also its client number (as shown by /players for example)&lt;br /&gt;
* 1022 is the &#039;&#039;&#039;worldspawn&#039;&#039;&#039; entity&lt;br /&gt;
* 1023 is &#039;&#039;&#039;ENTITYNUM_NONE&#039;&#039;&#039; which is used instead of null in C under some circumstances to indicate no entity. This is needed where an entity number will be passed over the network.&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: Some other fields not listed as type &#039;entity&#039; may take an entity number value. &#039;&#039;&#039;mg42BaseEnt&#039;&#039;&#039; and &#039;&#039;&#039;s.number&#039;&#039;&#039; are examples.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1848</id>
		<title>Fieldname</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1848"/>
		<updated>2005-11-20T09:40:59Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of fields supported by et.gentity_get() and et.gentity_set()&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;table border=0&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=#555555&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;field&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;type&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;access&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;activator&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;chain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;classname&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;closespeed&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;count&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;count2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;damage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;deathType&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;delay&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_atten&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_color&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_shader&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_stylestring&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;duration&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;end_size&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;enemy&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;flags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;harc&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;health&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;inuse&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;isProp&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;item&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;key&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;message&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;methodOfDeath&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;mg42BaseEnt&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;missionLevel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;model&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;model2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;nextTrain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;noise_index&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;origin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;prevTrain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;props_frame_state&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.absmax&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.absmin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.bmodel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.contents&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.currentAngles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.currentOrigin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.eventTime&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.linkcount&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.linked&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.maxs&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.mins&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.ownerNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.singleClient&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.svFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.worldflags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;radius&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;random&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;rotate&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.angles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.angles2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.apos&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;trajectory&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.clientNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.constantLight&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.density&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.dl_intensity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.dmgFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.eFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect1Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect2Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect3Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.frame&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.groundEntityNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.loopSound&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.modelindex&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.modelindex2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.number&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.onFireEnd&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.onFireStart&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.pos&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;trajectory&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.powerups&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.solid&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.teamNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.time2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.weapon&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;scriptName&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.damage_given&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.damage_received&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.deaths&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.game_points&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.gibs&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.kills&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.muted&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.referee&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.rounds&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.semiadmin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spec_invite&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spec_team&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.suicides&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_damage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_kills&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_received&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;spawnflags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;spawnitem&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;speed&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashDamage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashMethodOfDeath&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashRadius&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;start_size&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tagName&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tagParent&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;takedamage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tankLink&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;target&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;TargetAngles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;TargetFlag&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;targetname&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;teamchain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;teammaster&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;track&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;varc&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;wait&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;waterlevel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;watertype&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;note&#039;&#039;: all the sess.* fields will return nil unless the entity is associated with client slot &amp;lt; sv_maxclients.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ET variable types&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vec3&#039;&#039;&#039; : a &#039;&#039;&#039;vec3&#039;&#039;&#039; is a 3-element array of numbers (C definition: &amp;lt;tt&amp;gt;typedef float vec3_t[3];&lt;br /&gt;
&amp;lt;/tt&amp;gt;). It is usually used to store and process coordinates in 3D space.&amp;lt;br&amp;gt;&lt;br /&gt;
In etpro-lua a vector is an array (table indexed by integers) containing 3 numbers. It can be accessed by&lt;br /&gt;
doing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
origin = et.gentity_get(entNum,&amp;quot;r.currentOrigin&amp;quot;) --a vec3 value&lt;br /&gt;
x,y,z = origin[1],origin[2],origin[3]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;trajectory&#039;&#039;&#039;: a &#039;&#039;&#039;trajectory&#039;&#039;&#039; is returned as a lua table described below&lt;br /&gt;
 {&lt;br /&gt;
  trDuration = &amp;lt;number&amp;gt;, --- int&lt;br /&gt;
  trTime = &amp;lt;number&amp;gt;, -- int&lt;br /&gt;
  trType = &amp;lt;number&amp;gt;, -- see below for allowed values&lt;br /&gt;
  trBase { -- this is a vec3, as described above&lt;br /&gt;
    [1] = &amp;lt;number&amp;gt;&lt;br /&gt;
    [2] = &amp;lt;number&amp;gt;&lt;br /&gt;
    [3] = &amp;lt;number&amp;gt;&lt;br /&gt;
  },&lt;br /&gt;
  trDelta { -- also a vec3&lt;br /&gt;
   [1] = &amp;lt;number&amp;gt;&lt;br /&gt;
   [2] = &amp;lt;number&amp;gt;&lt;br /&gt;
   [3] = &amp;lt;number&amp;gt;&lt;br /&gt;
  },&lt;br /&gt;
 }&lt;br /&gt;
: the allowed values for trType (along with the enum names and original comments from the ET source), are as follows. Note &lt;br /&gt;
: that not all values make sense for all entity types &amp;lt;tt&amp;gt;&lt;br /&gt;
&amp;lt;ol start=0&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_STATIONARY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_INTERPOLATE	// non-parametric, but interpolate between snapshots&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt; TR_LINEAR&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_STOP&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_STOP_BACK //----(SA) added.  so reverse movement can be different than forward&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_SINE // value = base + sin( time / duration ) * delta&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_LOW&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_FLOAT // super low grav with no gravity acceleration (floating feathers/fabric/leaves/...)&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_GRAVITY_PAUSED //----(SA) has stopped, but will still do a short trace to see if it should be switched back to TR_GRAVITY&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_ACCELERATE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_DECCELERATE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_SPLINE&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;TR_LINEAR_PATH&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;entity&#039;&#039;&#039;: The fields listed as having type &#039;&#039;&#039;enitity&#039;&#039;&#039; return an entity number or nil. Entity numbers are integers from 0 through 1023. Some of the entity numbers have special meanings:&lt;br /&gt;
* 0 - (sv_privateclients - 1) are reserved for clients who connect with the private slot password&lt;br /&gt;
* 0 - 63 are reserved for clients. A client&#039;s entity number is also its client number (as shown by /players for example)&lt;br /&gt;
* 1022 is the &#039;&#039;&#039;worldspawn&#039;&#039;&#039; entity&lt;br /&gt;
* 1023 is &#039;&#039;&#039;ENTITYNUM_NONE&#039;&#039;&#039; which is used instead of null in C under some circumstances to indicate no entity. This is needed where an entity number will be passed over the network.&lt;br /&gt;
&#039;&#039;Note&#039;&#039;: Some other fields not listed as type &#039;entity&#039; may take an entity number value. &#039;&#039;&#039;mg42BaseEnt&#039;&#039;&#039; and &#039;&#039;&#039;s.number&#039;&#039;&#039; are examples.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1818</id>
		<title>Lua Mod API</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1818"/>
		<updated>2005-11-18T20:28:03Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: et.ConcatArgs in the latest FAQ entry, just in case&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;background: #FFFFCC; padding: 2px; border: 2px solid #000000;&amp;quot;&amp;gt;The latest version of the lua-enabled ETPro qagame is etpro-lua-5 and can be downloaded [http://etpro.anime.net/etpro-lua-5.zip here].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ETPro now supports serverside mods via the [http://www.lua.org/ lua] scripting language.&lt;br /&gt;
&lt;br /&gt;
ETPro has an embedded lua 5.0.2 interpreter, and if present will load user-defined scripts from the etpro directory. ETPro also provides an &amp;quot;et&amp;quot; library of function calls for lua to access the server engine, and provides callbacks so a serverside mod may trigger on specific server events.&lt;br /&gt;
&lt;br /&gt;
The following standard lua libraries are initialized by default and available to ETPro lua scripts:&lt;br /&gt;
[http://www.lua.org/manual/5.0/manual.html#5.1 basic], [http://www.lua.org/manual/5.0/manual.html#5.4 table], [http://www.lua.org/manual/5.0/manual.html#5.6 i/o], [http://www.lua.org/manual/5.0/manual.html#5.3 string], [http://www.lua.org/manual/5.0/manual.html#5.5 math].&lt;br /&gt;
&lt;br /&gt;
A list of [[ETPro]] mods can be found [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
==server commands==&lt;br /&gt;
===lua_status===&lt;br /&gt;
:lists all currently loaded lua modules.&lt;br /&gt;
&lt;br /&gt;
==cvars==&lt;br /&gt;
===lua_modules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:space separated list of lua modules for ETPro to load. modules will be run in the order listed.&lt;br /&gt;
&lt;br /&gt;
===lua_allowedmodules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:if set, only lua modules with the matching sha1 signatures listed in this cvar will be allowed to load.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
changing either cvar will cause all currently loaded modules to quit and be unloaded until the next map_restart.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==et library calls==&lt;br /&gt;
&lt;br /&gt;
===modules===&lt;br /&gt;
et.RegisterModname( &#039;&#039;&#039;modname&#039;&#039;&#039; )&lt;br /&gt;
:Registers a descriptive string &#039;&#039;&#039;modname&#039;&#039;&#039; for this mod.&lt;br /&gt;
&#039;&#039;&#039;vmnumber&#039;&#039;&#039; = et.FindSelf()&lt;br /&gt;
:Returns a number indicating the VM slot the current mod is loaded into.&lt;br /&gt;
&#039;&#039;&#039;modname&#039;&#039;&#039;, &#039;&#039;&#039;signature&#039;&#039;&#039; = et.FindMod( &#039;&#039;&#039;vmnumber&#039;&#039;&#039; )&lt;br /&gt;
:Returns the &#039;&#039;&#039;modname&#039;&#039;&#039; and sha1 &#039;&#039;&#039;signature&#039;&#039;&#039; for the mod loaded in the VM slot &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. Returns nil, nil if the VM slot is invalid.&lt;br /&gt;
&#039;&#039;&#039;success&#039;&#039;&#039; = et.IPCSend( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Sends the string &#039;&#039;&#039;message&#039;&#039;&#039; to the mod in the VM slot indicated by &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. The mod receiving &#039;&#039;&#039;message&#039;&#039;&#039; must have an &#039;&#039;et_IPCReceive()&#039;&#039; callback. If the message is successfully sent, &#039;&#039;&#039;success&#039;&#039;&#039; will be 1. On failure it will be 0.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===printing===&lt;br /&gt;
et.G_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console.&lt;br /&gt;
et.G_LogPrint( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console and writes it to the server log.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===argument handling===&lt;br /&gt;
These functions are to be used within the [[#commands|command callback functions]].&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;args&#039;&#039;&#039; = et.ConcatArgs( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns all arguments beginning from &#039;&#039;&#039;index&#039;&#039;&#039; concatenated into a single string &#039;&#039;&#039;args&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;argcount&#039;&#039;&#039; = et.trap_Argc()&lt;br /&gt;
:Returns a number indicating the number of command line arguments in the command buffer.&lt;br /&gt;
&#039;&#039;&#039;arg&#039;&#039;&#039; = et.trap_Argv( &#039;&#039;&#039;argnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the command line argument &#039;&#039;&#039;argnum&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===cvars===&lt;br /&gt;
&#039;&#039;&#039;cvarvalue&#039;&#039;&#039; = et.trap_Cvar_Get( &#039;&#039;&#039;cvarname&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039;&lt;br /&gt;
et.trap_Cvar_Set( &#039;&#039;&#039;cvarname&#039;&#039;&#039;, &#039;&#039;&#039;cvarvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039; to &#039;&#039;&#039;cvarvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===configstrings===&lt;br /&gt;
&#039;&#039;&#039;configstringvalue&#039;&#039;&#039; = et.trap_GetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; containing the contents of the configstring &#039;&#039;&#039;index&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039;, &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the configstring &#039;&#039;&#039;index&#039;&#039;&#039; to the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
et.trap_SendConsoleCommand( &#039;&#039;&#039;when&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the server console, to be executed &#039;&#039;&#039;when&#039;&#039;&#039; (see et.EXEC_* constants)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===clients===&lt;br /&gt;
et.trap_DropClient( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;reason&#039;&#039;&#039;, &#039;&#039;&#039;ban_time&#039;&#039;&#039; )&lt;br /&gt;
:Disconnects &#039;&#039;&#039;clientnum&#039;&#039;&#039; from the server, with descriptive string &#039;&#039;&#039;reason&#039;&#039;&#039; reported to clients. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is the time in seconds to ban the client from the server. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is optional and may be entirely omitted, in which case the ban time defaults to the cvar &#039;&#039;b_defaultbantime&#039;&#039;&lt;br /&gt;
et.trap_SendServerCommand( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;. If &#039;&#039;&#039;clientnum&#039;&#039;&#039; is -1, the &#039;&#039;&#039;command&#039;&#039;&#039; is broadcast to all connected clients.&lt;br /&gt;
et.G_Say( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Sends a chat command on behalf of client &#039;&#039;&#039;clientNum&#039;&#039;&#039; with the mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.SAY_* constants) and chat text &#039;&#039;&#039;text&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===userinfo===&lt;br /&gt;
&#039;&#039;&#039;userinfo&#039;&#039;&#039; = et.trap_GetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;userinfo&#039;&#039;&#039; )&lt;br /&gt;
:Sets the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039; to &#039;&#039;&#039;userinfo&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===string utility functions===&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_RemoveKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Removes key &#039;&#039;&#039;key&#039;&#039;&#039; from infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_SetValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;keyvalue&#039;&#039;&#039; = et.Info_ValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;cleanstring&#039;&#039;&#039; = et.Q_CleanStr( &#039;&#039;&#039;string&#039;&#039;&#039; )&lt;br /&gt;
:Returns &#039;&#039;&#039;string&#039;&#039;&#039; stripped of all color codes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ET filesystem===&lt;br /&gt;
&#039;&#039;&#039;fd&#039;&#039;&#039;, &#039;&#039;&#039;len&#039;&#039;&#039; = et.trap_FS_FOpenFile( &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to open the file &#039;&#039;&#039;filename&#039;&#039;&#039; with the access mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.FS_ constants). Returns the filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039; and file length &#039;&#039;&#039;len&#039;&#039;&#039;. On error, &#039;&#039;&#039;len&#039;&#039;&#039; returns -1.&lt;br /&gt;
&#039;&#039;&#039;filedata&#039;&#039;&#039; = et.trap_FS_Read( fd, count )&lt;br /&gt;
:Reads &#039;&#039;&#039;count&#039;&#039;&#039; bytes from filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;.&lt;br /&gt;
&#039;&#039;&#039;count&#039;&#039;&#039; = et.trap_FS_Write( &#039;&#039;&#039;filedata&#039;&#039;&#039;, &#039;&#039;&#039;count&#039;&#039;&#039;, &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to write &#039;&#039;&#039;count&#039;&#039;&#039; bytes of &#039;&#039;&#039;filedata&#039;&#039;&#039; to filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;. Returns number of bytes successfully written.&lt;br /&gt;
et.trap_FS_Rename( &#039;&#039;&#039;oldname&#039;&#039;&#039;, &#039;&#039;&#039;newname&#039;&#039;&#039; )&lt;br /&gt;
:Renames file &#039;&#039;&#039;oldname&#039;&#039;&#039; to &#039;&#039;&#039;newname&#039;&#039;&#039;.&lt;br /&gt;
et.trap_FS_FCloseFile( &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Closes filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===indexes===&lt;br /&gt;
&#039;&#039;&#039;soundindex&#039;&#039;&#039; = et.G_SoundIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the soundfile indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;modelindex&#039;&#039;&#039; = et.G_ModelIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the model indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===sound===&lt;br /&gt;
et.G_globalSound( &#039;&#039;&#039;sound&#039;&#039;&#039; )&lt;br /&gt;
:Plays the global sound indicated by the filename &#039;&#039;&#039;sound&#039;&#039;&#039;.&lt;br /&gt;
et.G_Sound( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;soundindex&#039;&#039;&#039; )&lt;br /&gt;
:Plays the sound &#039;&#039;&#039;soundindex&#039;&#039;&#039; at the location of entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
&#039;&#039;&#039;milliseconds&#039;&#039;&#039; = et.trap_Milliseconds()&lt;br /&gt;
:Returns a number indicating the current server time in milliseconds.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===entities===&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_Spawn()&lt;br /&gt;
:Spawns a new entity and returns the new entity number.&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_TempEntity( &#039;&#039;&#039;origin&#039;&#039;&#039;, &#039;&#039;&#039;event&#039;&#039;&#039; )&lt;br /&gt;
:Spawns a new TempEntity of event type &#039;&#039;&#039;event&#039;&#039;&#039; and places it at &#039;&#039;&#039;origin&#039;&#039;&#039; in the world.&lt;br /&gt;
et.G_FreeEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Frees the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;spawnval&#039;&#039;&#039; = et.G_GetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.G_SetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;integer entnum&#039;&#039;&#039; = et.G_SpawnGEntityFromSpawnVars( string spawnvar, string spawnvalue, ... )&lt;br /&gt;
:This function can only be called inside the &#039;&#039;&#039;et_InitGame&#039;&#039;&#039; callback&lt;br /&gt;
et.trap_LinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Links the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_UnlinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Unlinks the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;(variable)&#039;&#039;&#039; = et.gentity_get ( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; )&lt;br /&gt;
:Gets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; out of the g_entity struct. For NULL entities or clients, &#039;&#039;nil&#039;&#039; is returned.&amp;lt;br&amp;gt;&lt;br /&gt;
et.gentity_set( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039;, &#039;&#039;&#039;(variable)&#039;&#039;&#039; )&lt;br /&gt;
:Sets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; in the g_entity struct to &#039;&#039;&#039;(variable)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==callbacks==&lt;br /&gt;
&lt;br /&gt;
===qagame execution===&lt;br /&gt;
et_InitGame( &#039;&#039;&#039;levelTime&#039;&#039;&#039;, &#039;&#039;&#039;randomSeed&#039;&#039;&#039;, &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame initializes. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds. &#039;&#039;&#039;randomSeed&#039;&#039;&#039; is a number that can be used to seed random number generators. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if et_InitGame() is being called due to a map restart (1) or not (0).&lt;br /&gt;
et_ShutdownGame( &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame shuts down. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if the shutdown is being called due to a map_restart (1) or not (0).&lt;br /&gt;
et_RunFrame( &#039;&#039;&#039;levelTime&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame runs a server frame. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds.&lt;br /&gt;
et_Quit()&lt;br /&gt;
:Called when ETPro unloads the mod. The mod should close all open filedescriptors and perform all cleanup.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===client management===&lt;br /&gt;
&#039;&#039;&#039;rejectreason&#039;&#039;&#039; = et_ClientConnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;firstTime&#039;&#039;&#039;, &#039;&#039;&#039;isBot&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client attempts to connect to the server. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id, &#039;&#039;&#039;firstTime&#039;&#039;&#039; indicates if this is a new connection (1) or a reconnection (0). &#039;&#039;&#039;isBot&#039;&#039;&#039; indicates if the client is a bot (1) or not (0). If the mod accepts the connection, it should return nil. Otherwise, the mod should return a string describing the reason the client connection was rejected.&lt;br /&gt;
et_ClientDisconnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client disconnects. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientBegin( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client begins (becomes active, and enters the gameworld). &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientUserinfoChanged( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client&#039;s Userinfo string has changed. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===commands===&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientCommand( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Called when a command is received from a client. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;command&#039;&#039;&#039; is the command. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
:The actual command can be accessed through the [[#argument_handling|argument handling]] functions, as seen in the [[ETPro:Lua Sample Code]].&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ConsoleCommand()&lt;br /&gt;
:Called when a command is entered on the server console. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
:The actual command can be accessed through the [[#argument_handling|argument handling]] functions, as seen in the [[ETPro:Lua Sample Code]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
et_IPCReceive( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Called when another mod sends an et.IPCSend() message to this mod. &#039;&#039;&#039;vmnumber&#039;&#039;&#039; is the VM slot number of the sender, and &#039;&#039;&#039;message&#039;&#039;&#039; is the message.&lt;br /&gt;
et_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called whenever the server or qagame prints a string to the console.&lt;br /&gt;
et_Obituary( &#039;&#039;&#039;victim&#039;&#039;&#039;, &#039;&#039;&#039;killer&#039;&#039;&#039;, &#039;&#039;&#039;meansOfDeath&#039;&#039;&#039; )&lt;br /&gt;
:Called whenever a player is killed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==predefined constants==&lt;br /&gt;
et.EXEC_NOW&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_INSERT&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_READ&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_WRITE&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND_SYNC&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_ALL&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAM&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_BUDDY&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAMNL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
et.HOSTARCH&lt;br /&gt;
:set to WIN32 or UNIX depending on the host architecture qagame is running on.&lt;br /&gt;
LUA_PATH&lt;br /&gt;
:set to fs_homepath/fs_game/?.lua in order to ease use of the [http://www.lua.org/pil/8.1.html require] function.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==configs==&lt;br /&gt;
If a config is loaded, all modules are shutdown and reloaded. If a &#039;&#039;certified&#039;&#039; config is loaded, all modules are shutdown and reloaded, and additionally the following functions are disabled: &#039;&#039;&#039;require()&#039;&#039;&#039;, &#039;&#039;&#039;loadfile()&#039;&#039;&#039;, &#039;&#039;&#039;loadlib()&#039;&#039;&#039;, &#039;&#039;&#039;loadstring()&#039;&#039;&#039;, &#039;&#039;&#039;dofile()&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==caveats==&lt;br /&gt;
Like qagame, lua modules are unloaded and reloaded on map_restart and map changes. This means that all global variables and other information is lost. Mods may choose to store persistent data in cvars or external files.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
Q: OMG I hate the libary prefix et.* on everything!!11!1oneone&amp;lt;br&amp;gt;&lt;br /&gt;
A: table.foreach(et, function (func, value) _G[func] = value; end)&lt;br /&gt;
&lt;br /&gt;
Q: How do a re-load my lua file without restarting the whole server ?&amp;lt;br&amp;gt;&lt;br /&gt;
A: change maps or map_restart&lt;br /&gt;
&lt;br /&gt;
Q: Can I see some sample code?&amp;lt;br&amp;gt;&lt;br /&gt;
A: [[ETPro:Lua Sample Code]]&lt;br /&gt;
&lt;br /&gt;
Q: Is there a list of [[ETPro]] mods?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Yes, [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
Q: OMG my mod doesn&#039;t work!&amp;lt;br&amp;gt;&lt;br /&gt;
A: Make sure you added your mod&#039;s filename to the lua_modules cvar (e.g. set lua_modules mymod.lua).&lt;br /&gt;
&lt;br /&gt;
Q: OMG why has et_ClientSay been removed?&amp;lt;br&amp;gt;&lt;br /&gt;
A: In order to keep the function as it was, just add the following code to your et_ClientCommand() function&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;	-- et_ClientSay had to be removed in order to intercept all commands &lt;br /&gt;
	-- so here&#039;s a wrapper for that&lt;br /&gt;
		arg0 = et.trap_Argv(0) -- get the main command&lt;br /&gt;
		&lt;br /&gt;
		if arg0 == &amp;quot;say&amp;quot; then&lt;br /&gt;
			return et_ClientSay( clientNum, et.SAY_ALL, et.ConcatArgs(1))&lt;br /&gt;
		elseif arg0 == &amp;quot;say_team&amp;quot; then&lt;br /&gt;
			return et_ClientSay( clientNum, et.SAY_TEAM, et.ConcatArgs(1))&lt;br /&gt;
		elseif arg0 == &amp;quot;say_buddy&amp;quot; then&lt;br /&gt;
			return et_ClientSay( clientNum, et.SAY_BUDDY, et.ConcatArgs(1))&lt;br /&gt;
		elseif arg0 == &amp;quot;say_teamnl&amp;quot; then&lt;br /&gt;
			return et_ClientSay( clientNum, et.SAY_TEAMNL, et.ConcatArgs(1))&lt;br /&gt;
		end&lt;br /&gt;
	-- et_ClientSay wrapper end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:Rookie_One&amp;diff=1817</id>
		<title>User talk:Rookie One</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:Rookie_One&amp;diff=1817"/>
		<updated>2005-11-18T18:16:45Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;sorry i saved the lua page to late it was after u did your stuff im2good4u&lt;br /&gt;
&lt;br /&gt;
Don&#039;t worry. ;)&lt;br /&gt;
How do I get rid of this damn &amp;quot;you have new messages&amp;quot; headline??? --Rookie One 10:47, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
VarPrint is usefull since et.G_Printf gives an error while priniting a nil or funtion variable. lau trues to convert variables yes but if it cant my script will try to aviud errors. its specialy handy for debuging if u expect a variale tobe something while it is still nil or something else --2good&lt;br /&gt;
&lt;br /&gt;
You get rid of this message by reading the new talk on your talk page --[[User:Deus|Deus]] 11:29, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
@Deus: I do, but it keeps appearing on every page. :S&amp;lt;br&amp;gt;&lt;br /&gt;
@2good: I prefer getting an error and getting rid of its source. ;) --Rookie One 12:03, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
client command works just fine here .... i use about the same way (also i got secret lua-4 maybe a bug was fixed in this one) --- 2good&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to try lua-4 in a moment, let&#039;s see if it helps. --Rookie One 13:12, 16 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
That&#039;s true, etpro-lua-4 handles it perfectly correctly. Thanks! :) --Rookie One 13:21, 16 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
then dont read it [[User:=FF=im2good4u|=FF=Im2good4u]] 08:28, 18 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
0_o --Rookie One 10:16, 18 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1815</id>
		<title>User talk:=FF=im2good4u</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1815"/>
		<updated>2005-11-18T14:24:39Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The links lead to 404 errors. --Rookie One 10:42, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
:I think that&#039;s about normal for im2good4u. --[[User:Bani|Bani]] 12:59, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t think clans should have wiki-pages on here, even links to non-existant ones. --[[User:WeblionX|WeblionX]] 14:49, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
i stole my userpage from [[User:Deus|Deus]] so blame him :d btw i fixed it i was never seposed tobe a wiki link it was seposed to link to the =FF=Clan site&lt;br /&gt;
&lt;br /&gt;
/me hits =FF=im2good4u with the previewStick --[[User:Deus|Deus]] 09:52, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
You might want to know that Lua converts variable types at runtime, so your varPrint script is not really necessary. ;) --Rookie One 10:45, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
it is since et.G_Printf gives an error while priniting a nil or funtion variable. au trues to convert variables yes but if it cant my scriot will try to avoud errors. its specialy hnady for debuging if u expect a variale tobe something wile it is stil nil or something --2good&lt;br /&gt;
&lt;br /&gt;
One more thing, DebugLib and ETProStuffPlug still don&#039;t work.&lt;br /&gt;
&lt;br /&gt;
i Know im still finishing them --2good&lt;br /&gt;
&lt;br /&gt;
Have you tried using et_ClientCommand? I had some [http://bani.anime.net/banimod/forums/viewtopic.php?p=60586#60586 problems]. --Rookie One 12:51, 16 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
the builtin function &#039;&#039;&#039;tostring&#039;&#039;&#039; can also be used if you think a var is going to be something like nil or another non-printable value. I tend to print things as &amp;lt;tt&amp;gt;G_Printf(&amp;quot;%s[%s]&amp;quot;,type(somevar),tostring(somevar))&amp;lt;/tt&amp;gt; [[User:ReyalP|ReyalP]] 13:33, 16 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
OMG, it just hurts my eyes to read your user page... Please, please, work on you spelling! --Rookie One 06:24, 18 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:ReyalP&amp;diff=1804</id>
		<title>User talk:ReyalP</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:ReyalP&amp;diff=1804"/>
		<updated>2005-11-17T14:29:14Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: OMG OMG OMG im2good4u SPELLING!!!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;in your etconst it says at top :&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;-- [23:10] &amp;lt;|Rain|&amp;gt; 2 became CS_ETPRO_INFO instead of CS_MUSIC, because I needed the version info before any more configstrings were parsed&lt;br /&gt;
-- [23:10] &amp;lt;|Rain|&amp;gt; and CS_MUSIC moved up to 53&amp;lt;code&amp;gt;&amp;lt;br&amp;gt;but u still got CS_MUSIC at 2 --2good&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:yup. Since I had no idea what you&#039;d do with either of those config strings, I just left things as I got them found them in the etmain sdk. [[User:ReyalP|ReyalP]]&lt;br /&gt;
&lt;br /&gt;
three [[User:ReyalP|ReyalP]] or [[User:ReyalP|ReyalP]] 13:25, 16 November 2005 (PST) four ?&lt;br /&gt;
&lt;br /&gt;
thats nice but oh well ok i dont care i dont use it myself its a lityle this i made out of my debuglib that was a print function that works like a printf you add variables and dont care but it is since it will check each variable first [[User:=FF=im2good4u|=FF=Im2good4u]] 13:45, 16 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Talk:Fieldname&amp;diff=1803</id>
		<title>Talk:Fieldname</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Talk:Fieldname&amp;diff=1803"/>
		<updated>2005-11-17T14:26:30Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;someone feel free to make this table pretty.&lt;br /&gt;
&lt;br /&gt;
Roger that. --Rookie One 03:31, 13 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
// Comment by Deus 13:22, 13 November 2005 (CET)&lt;br /&gt;
I liked the former one more.&lt;br /&gt;
I thought about some colorisation like red for readonly and green for r/w. maybe some mouseover stuff, or just the one tr light the next darker, to have a better viewability ?&lt;br /&gt;
// End of Deus Comment&lt;br /&gt;
&lt;br /&gt;
Alright, I&#039;ll restore the previous borders and add some colour. --Rookie One 04:33, 13 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
That was just my suggestion. Maybe this differs from banis view of beautification :) --Deus 04:46, 13 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
== use of color...bad! ==&lt;br /&gt;
&lt;br /&gt;
use of color to convey specific data (ro/rw) is bad. red/green is the worst possible choice too :)&amp;lt;br&amp;gt;&lt;br /&gt;
consider someone who is colorblind. check the article via http://colorfilter.wickline.org/ to see how bad this is.&lt;br /&gt;
but it looks bad even for those who aren&#039;t color blind :P&lt;br /&gt;
&lt;br /&gt;
Yeah, reyalP, I also thought it&#039;s weird to initialize the table like that, but wasn&#039;t sure. ;) --Rookie One 06:26, 17 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1796</id>
		<title>Lua Mod API</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1796"/>
		<updated>2005-11-16T21:22:41Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: Corrected misleading info. ;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;background: #FFFFCC; padding: 2px; border: 2px solid #000000;&amp;quot;&amp;gt;The latest version of the lua-enabled ETPro qagame is etpro-lua-4 and can be downloaded [http://etpro.anime.net/etpro-lua-4.zip here].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ETPro now supports serverside mods via the [http://www.lua.org/ lua] scripting language.&lt;br /&gt;
&lt;br /&gt;
ETPro has an embedded lua 5.0.2 interpreter, and if present will load user-defined scripts from the etpro directory. ETPro also provides an &amp;quot;et&amp;quot; library of function calls for lua to access the server engine, and provides callbacks so a serverside mod may trigger on specific server events.&lt;br /&gt;
&lt;br /&gt;
The following standard lua libraries are initialized by default and available to ETPro lua scripts:&lt;br /&gt;
[http://www.lua.org/manual/5.0/manual.html#5.1 basic], [http://www.lua.org/manual/5.0/manual.html#5.4 table], [http://www.lua.org/manual/5.0/manual.html#5.6 i/o], [http://www.lua.org/manual/5.0/manual.html#5.3 string], [http://www.lua.org/manual/5.0/manual.html#5.5 math].&lt;br /&gt;
&lt;br /&gt;
A list of [[ETPro]] mods can be found [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
==server commands==&lt;br /&gt;
===lua_status===&lt;br /&gt;
:lists all currently loaded lua modules.&lt;br /&gt;
&lt;br /&gt;
==cvars==&lt;br /&gt;
===lua_modules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:space separated list of lua modules for ETPro to load. modules will be run in the order listed.&lt;br /&gt;
&lt;br /&gt;
===lua_allowedmodules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:if set, only lua modules with the matching sha1 signatures listed in this cvar will be allowed to load.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
changing either cvar will cause all currently loaded modules to quit and be unloaded until the next map_restart.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==et library calls==&lt;br /&gt;
&lt;br /&gt;
===modules===&lt;br /&gt;
et.RegisterModname( &#039;&#039;&#039;modname&#039;&#039;&#039; )&lt;br /&gt;
:Registers a descriptive string &#039;&#039;&#039;modname&#039;&#039;&#039; for this mod.&lt;br /&gt;
&#039;&#039;&#039;vmnumber&#039;&#039;&#039; = et.FindSelf()&lt;br /&gt;
:Returns a number indicating the VM slot the current mod is loaded into.&lt;br /&gt;
&#039;&#039;&#039;modname&#039;&#039;&#039;, &#039;&#039;&#039;signature&#039;&#039;&#039; = et.FindMod( &#039;&#039;&#039;vmnumber&#039;&#039;&#039; )&lt;br /&gt;
:Returns the &#039;&#039;&#039;modname&#039;&#039;&#039; and sha1 &#039;&#039;&#039;signature&#039;&#039;&#039; for the mod loaded in the VM slot &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. Returns nil, nil if the VM slot is invalid.&lt;br /&gt;
&#039;&#039;&#039;success&#039;&#039;&#039; = et.IPCSend( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Sends the string &#039;&#039;&#039;message&#039;&#039;&#039; to the mod in the VM slot indicated by &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. The mod receiving &#039;&#039;&#039;message&#039;&#039;&#039; must have an &#039;&#039;et_IPCReceive()&#039;&#039; callback. If the message is successfully sent, &#039;&#039;&#039;success&#039;&#039;&#039; will be 1. On failure it will be 0.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===printing===&lt;br /&gt;
et.G_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console.&lt;br /&gt;
et.G_LogPrint( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console and writes it to the server log.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===argument handling===&lt;br /&gt;
These functions are to be used within the [[#commands|et_ConsoleCommand function]].&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;args&#039;&#039;&#039; = et.ConcatArgs( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns all arguments beginning from &#039;&#039;&#039;index&#039;&#039;&#039; concatenated into a single string &#039;&#039;&#039;args&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;argcount&#039;&#039;&#039; = et.trap_Argc()&lt;br /&gt;
:Returns a number indicating the number of command line arguments in the command buffer.&lt;br /&gt;
&#039;&#039;&#039;arg&#039;&#039;&#039; = et.trap_Argv( &#039;&#039;&#039;argnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the command line argument &#039;&#039;&#039;argnum&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===cvars===&lt;br /&gt;
&#039;&#039;&#039;cvarvalue&#039;&#039;&#039; = et.trap_Cvar_Get( &#039;&#039;&#039;cvarname&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039;&lt;br /&gt;
et.trap_Cvar_Set( &#039;&#039;&#039;cvarname&#039;&#039;&#039;, &#039;&#039;&#039;cvarvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039; to &#039;&#039;&#039;cvarvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===configstrings===&lt;br /&gt;
&#039;&#039;&#039;configstringvalue&#039;&#039;&#039; = et.trap_GetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; containing the contents of the configstring &#039;&#039;&#039;index&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039;, &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the configstring &#039;&#039;&#039;index&#039;&#039;&#039; to the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
et.trap_SendConsoleCommand( &#039;&#039;&#039;when&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the server console, to be executed &#039;&#039;&#039;when&#039;&#039;&#039; (see et.EXEC_* constants)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===clients===&lt;br /&gt;
et.trap_DropClient( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;reason&#039;&#039;&#039;, &#039;&#039;&#039;ban_time&#039;&#039;&#039; )&lt;br /&gt;
:Disconnects &#039;&#039;&#039;clientnum&#039;&#039;&#039; from the server, with descriptive string &#039;&#039;&#039;reason&#039;&#039;&#039; reported to clients. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is the time in seconds to ban the client from the server. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is optional and may be entirely omitted, in which case the ban time defaults to the cvar &#039;&#039;b_defaultbantime&#039;&#039;&lt;br /&gt;
et.trap_SendServerCommand( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;. If &#039;&#039;&#039;clientnum&#039;&#039;&#039; is -1, the &#039;&#039;&#039;command&#039;&#039;&#039; is broadcast to all connected clients.&lt;br /&gt;
et.G_Say( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Sends a chat command on behalf of client &#039;&#039;&#039;clientNum&#039;&#039;&#039; with the mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.SAY_* constants) and chat text &#039;&#039;&#039;text&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===userinfo===&lt;br /&gt;
&#039;&#039;&#039;userinfo&#039;&#039;&#039; = et.trap_GetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;userinfo&#039;&#039;&#039; )&lt;br /&gt;
:Sets the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039; to &#039;&#039;&#039;userinfo&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===string utility functions===&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_RemoveKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Removes key &#039;&#039;&#039;key&#039;&#039;&#039; from infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_SetValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;keyvalue&#039;&#039;&#039; = et.Info_ValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;cleanstring&#039;&#039;&#039; = et.Q_CleanStr( &#039;&#039;&#039;string&#039;&#039;&#039; )&lt;br /&gt;
:Returns &#039;&#039;&#039;string&#039;&#039;&#039; stripped of all color codes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ET filesystem===&lt;br /&gt;
&#039;&#039;&#039;fd&#039;&#039;&#039;, &#039;&#039;&#039;len&#039;&#039;&#039; = et.trap_FS_FOpenFile( &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to open the file &#039;&#039;&#039;filename&#039;&#039;&#039; with the access mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.FS_ constants). Returns the filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039; and file length &#039;&#039;&#039;len&#039;&#039;&#039;. On error, &#039;&#039;&#039;len&#039;&#039;&#039; returns -1.&lt;br /&gt;
&#039;&#039;&#039;filedata&#039;&#039;&#039; = et.trap_FS_Read( fd, count )&lt;br /&gt;
:Reads &#039;&#039;&#039;count&#039;&#039;&#039; bytes from filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;.&lt;br /&gt;
&#039;&#039;&#039;count&#039;&#039;&#039; = et.trap_FS_Write( &#039;&#039;&#039;filedata&#039;&#039;&#039;, &#039;&#039;&#039;count&#039;&#039;&#039;, &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to write &#039;&#039;&#039;count&#039;&#039;&#039; bytes of &#039;&#039;&#039;filedata&#039;&#039;&#039; to filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;. Returns number of bytes successfully written.&lt;br /&gt;
et.trap_FS_Rename( &#039;&#039;&#039;oldname&#039;&#039;&#039;, &#039;&#039;&#039;newname&#039;&#039;&#039; )&lt;br /&gt;
:Renames file &#039;&#039;&#039;oldname&#039;&#039;&#039; to &#039;&#039;&#039;newname&#039;&#039;&#039;.&lt;br /&gt;
et.trap_FS_FCloseFile( &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Closes filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===indexes===&lt;br /&gt;
&#039;&#039;&#039;soundindex&#039;&#039;&#039; = et.G_SoundIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the soundfile indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;modelindex&#039;&#039;&#039; = et.G_ModelIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the model indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===sound===&lt;br /&gt;
et.G_globalSound( &#039;&#039;&#039;sound&#039;&#039;&#039; )&lt;br /&gt;
:Plays the global sound indicated by the filename &#039;&#039;&#039;sound&#039;&#039;&#039;.&lt;br /&gt;
et.G_Sound( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;soundindex&#039;&#039;&#039; )&lt;br /&gt;
:Plays the sound &#039;&#039;&#039;soundindex&#039;&#039;&#039; at the location of entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
&#039;&#039;&#039;milliseconds&#039;&#039;&#039; = et.trap_Milliseconds()&lt;br /&gt;
:Returns a number indicating the current server time in milliseconds.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===entities===&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_Spawn()&lt;br /&gt;
:Spawns a new entity and returns the new entity number.&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_TempEntity( &#039;&#039;&#039;origin&#039;&#039;&#039;, &#039;&#039;&#039;event&#039;&#039;&#039; )&lt;br /&gt;
:Spawns a new TempEntity of event type &#039;&#039;&#039;event&#039;&#039;&#039; and places it at &#039;&#039;&#039;origin&#039;&#039;&#039; in the world.&lt;br /&gt;
et.G_FreeEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Frees the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;spawnval&#039;&#039;&#039; = et.G_GetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.G_SetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;integer entnum&#039;&#039;&#039; = et.G_SpawnGEntityFromSpawnVars( string spawnvar, string spawnvalue, ... )&lt;br /&gt;
:This function can only be called inside the &#039;&#039;&#039;et_InitGame&#039;&#039;&#039; callback&lt;br /&gt;
et.trap_LinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Links the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_UnlinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Unlinks the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;(variable)&#039;&#039;&#039; = et.gentity_get ( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; )&lt;br /&gt;
:Gets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; out of the g_entity struct&amp;lt;br&amp;gt;&lt;br /&gt;
et.gentity_set( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039;, &#039;&#039;&#039;(variable)&#039;&#039;&#039; )&lt;br /&gt;
:Sets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; in the g_entity struct to &#039;&#039;&#039;(variable)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==callbacks==&lt;br /&gt;
&lt;br /&gt;
===qagame execution===&lt;br /&gt;
et_InitGame( &#039;&#039;&#039;levelTime&#039;&#039;&#039;, &#039;&#039;&#039;randomSeed&#039;&#039;&#039;, &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame initializes. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds. &#039;&#039;&#039;randomSeed&#039;&#039;&#039; is a number that can be used to seed random number generators. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if et_InitGame() is being called due to a map restart (1) or not (0).&lt;br /&gt;
et_ShutdownGame( &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame shuts down. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if the shutdown is being called due to a map_restart (1) or not (0).&lt;br /&gt;
et_RunFrame( &#039;&#039;&#039;levelTime&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame runs a server frame. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds.&lt;br /&gt;
et_Quit()&lt;br /&gt;
:Called when ETPro unloads the mod. The mod should close all open filedescriptors and perform all cleanup.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===client management===&lt;br /&gt;
&#039;&#039;&#039;rejectreason&#039;&#039;&#039; = et_ClientConnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;firstTime&#039;&#039;&#039;, &#039;&#039;&#039;isBot&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client attempts to connect to the server. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id, &#039;&#039;&#039;firstTime&#039;&#039;&#039; indicates if this is a new connection (1) or a reconnection (0). &#039;&#039;&#039;isBot&#039;&#039;&#039; indicates if the client is a bot (1) or not (0). If the mod accepts the connection, it should return nil. Otherwise, the mod should return a string describing the reason the client connection was rejected.&lt;br /&gt;
et_ClientDisconnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client disconnects. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientBegin( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client begins (becomes active, and enters the gameworld). &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientUserinfoChanged( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client&#039;s Userinfo string has changed. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===commands===&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientCommand( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Called when a command is received from a client. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;command&#039;&#039;&#039; is the command. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ConsoleCommand()&lt;br /&gt;
:Called when a command is entered on the server console. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
:The actual command can be accessed through the [[#argument_handling|argument handling]] functions, as seen in the [[ETPro:Lua Sample Code]].&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientSay( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client sends a chat command. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;mode&#039;&#039;&#039; is the chat mode (see et.SAY_* constants). &#039;&#039;&#039;text&#039;&#039;&#039; is the chat text. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
et_IPCReceive( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Called when another mod sends an et.IPCSend() message to this mod. &#039;&#039;&#039;vmnumber&#039;&#039;&#039; is the VM slot number of the sender, and &#039;&#039;&#039;message&#039;&#039;&#039; is the message.&lt;br /&gt;
et_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called whenever the server or qagame prints a string to the console.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==predefined constants==&lt;br /&gt;
et.EXEC_NOW&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_INSERT&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_READ&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_WRITE&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND_SYNC&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_ALL&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAM&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_BUDDY&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAMNL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
et.HOSTARCH&lt;br /&gt;
:set to WIN32 or UNIX depending on the host architecture qagame is running on.&lt;br /&gt;
LUA_PATH&lt;br /&gt;
:set to fs_homepath/fs_game/?.lua in order to ease use of the [http://www.lua.org/pil/8.1.html require] function.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==configs==&lt;br /&gt;
If a config is loaded, all modules are shutdown and reloaded. If a &#039;&#039;certified&#039;&#039; config is loaded, all modules are shutdown and reloaded, and additionally the following functions are disabled: &#039;&#039;&#039;require()&#039;&#039;&#039;, &#039;&#039;&#039;loadfile()&#039;&#039;&#039;, &#039;&#039;&#039;loadlib()&#039;&#039;&#039;, &#039;&#039;&#039;loadstring()&#039;&#039;&#039;, &#039;&#039;&#039;dofile()&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==caveats==&lt;br /&gt;
Like qagame, lua modules are unloaded and reloaded on map_restart and map changes. This means that all global variables and other information is lost. Mods may choose to store persistent data in cvars or external files.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
Q: OMG I hate the libary prefix et.* on everything!!11!1oneone&amp;lt;br&amp;gt;&lt;br /&gt;
A: table.foreach(et, function (func, value) _G[func] = value; end)&lt;br /&gt;
&lt;br /&gt;
Q: How do a re-load my lua file without restarting the whole server ?&amp;lt;br&amp;gt;&lt;br /&gt;
A: change maps or map_restart&lt;br /&gt;
&lt;br /&gt;
Q: Can I see some sample code?&amp;lt;br&amp;gt;&lt;br /&gt;
A: [[ETPro:Lua Sample Code]]&lt;br /&gt;
&lt;br /&gt;
Q: Is there a list of [[ETPro]] mods?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Yes, [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
Q: OMG my mod doesn&#039;t work!&amp;lt;br&amp;gt;&lt;br /&gt;
A: Make sure you added your mod&#039;s filename to the lua_modules cvar (e.g. set lua_modules mymod.lua).&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:Rookie_One&amp;diff=1795</id>
		<title>User talk:Rookie One</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:Rookie_One&amp;diff=1795"/>
		<updated>2005-11-16T21:21:19Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;sorry i saved the lua page to late it was after u did your stuff im2good4u&lt;br /&gt;
&lt;br /&gt;
Don&#039;t worry. ;)&lt;br /&gt;
How do I get rid of this damn &amp;quot;you have new messages&amp;quot; headline??? --Rookie One 10:47, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
VarPrint is usefull since et.G_Printf gives an error while priniting a nil or funtion variable. lau trues to convert variables yes but if it cant my script will try to aviud errors. its specialy handy for debuging if u expect a variale tobe something while it is still nil or something else --2good&lt;br /&gt;
&lt;br /&gt;
You get rid of this message by reading the new talk on your talk page --[[User:Deus|Deus]] 11:29, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
@Deus: I do, but it keeps appearing on every page. :S&amp;lt;br&amp;gt;&lt;br /&gt;
@2good: I prefer getting an error and getting rid of its source. ;) --Rookie One 12:03, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
client command works just fine here .... i use about the same way (also i got secret lua-4 maybe a bug was fixed in this one) --- 2good&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to try lua-4 in a moment, let&#039;s see if it helps. --Rookie One 13:12, 16 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
That&#039;s true, etpro-lua-4 handles it perfectly correctly. Thanks! :) --Rookie One 13:21, 16 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:Rookie_One&amp;diff=1792</id>
		<title>User talk:Rookie One</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:Rookie_One&amp;diff=1792"/>
		<updated>2005-11-16T21:12:26Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;sorry i saved the lua page to late it was after u did your stuff im2good4u&lt;br /&gt;
&lt;br /&gt;
Don&#039;t worry. ;)&lt;br /&gt;
How do I get rid of this damn &amp;quot;you have new messages&amp;quot; headline??? --Rookie One 10:47, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
VarPrint is usefull since et.G_Printf gives an error while priniting a nil or funtion variable. lau trues to convert variables yes but if it cant my script will try to aviud errors. its specialy handy for debuging if u expect a variale tobe something while it is still nil or something else --2good&lt;br /&gt;
&lt;br /&gt;
You get rid of this message by reading the new talk on your talk page --[[User:Deus|Deus]] 11:29, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
@Deus: I do, but it keeps appearing on every page. :S&amp;lt;br&amp;gt;&lt;br /&gt;
@2good: I prefer getting an error and getting rid of its source. ;) --Rookie One 12:03, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
client command works just fine here .... i use about the same way (also i got secret lua-4 maybe a bug was fixed in this one) --- 2good&lt;br /&gt;
&lt;br /&gt;
I&#039;m going to try lua-4 in a moment, let&#039;s see if it helps. --Rookie One 13:12, 16 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1788</id>
		<title>User talk:=FF=im2good4u</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1788"/>
		<updated>2005-11-16T20:51:03Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The links lead to 404 errors. --Rookie One 10:42, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
:I think that&#039;s about normal for im2good4u. --[[User:Bani|Bani]] 12:59, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t think clans should have wiki-pages on here, even links to non-existant ones. --[[User:WeblionX|WeblionX]] 14:49, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
i stole my userpage from [[User:Deus|Deus]] so blame him :d btw i fixed it i was never seposed tobe a wiki link it was seposed to link to the =FF=Clan site&lt;br /&gt;
&lt;br /&gt;
/me hits =FF=im2good4u with the previewStick --[[User:Deus|Deus]] 09:52, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
You might want to know that Lua converts variable types at runtime, so your varPrint script is not really necessary. ;) --Rookie One 10:45, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
it is since et.G_Printf gives an error while priniting a nil or funtion variable. au trues to convert variables yes but if it cant my scriot will try to avoud errors. its specialy hnady for debuging if u expect a variale tobe something wile it is stil nil or something --2good&lt;br /&gt;
&lt;br /&gt;
One more thing, DebugLib and ETProStuffPlug still don&#039;t work.&lt;br /&gt;
&lt;br /&gt;
i Know im still finishing them --2good&lt;br /&gt;
&lt;br /&gt;
Have you tried using et_ClientCommand? I had some [http://bani.anime.net/banimod/forums/viewtopic.php?p=60586#60586 problems]. --Rookie One 12:51, 16 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1786</id>
		<title>Lua Mod API</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1786"/>
		<updated>2005-11-16T20:41:50Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;background: #FFFFCC; padding: 2px; border: 2px solid #000000;&amp;quot;&amp;gt;The latest version of the lua-enabled ETPro qagame is etpro-lua-3 and can be downloaded [http://etpro.anime.net/etpro-lua-3.zip here].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ETPro now supports serverside mods via the [http://www.lua.org/ lua] scripting language.&lt;br /&gt;
&lt;br /&gt;
ETPro has an embedded lua 5.0.2 interpreter, and if present will load user-defined scripts from the etpro directory. ETPro also provides an &amp;quot;et&amp;quot; library of function calls for lua to access the server engine, and provides callbacks so a serverside mod may trigger on specific server events.&lt;br /&gt;
&lt;br /&gt;
The following standard lua libraries are initialized by default and available to ETPro lua scripts:&lt;br /&gt;
[http://www.lua.org/manual/5.0/manual.html#5.1 basic], [http://www.lua.org/manual/5.0/manual.html#5.4 table], [http://www.lua.org/manual/5.0/manual.html#5.6 i/o], [http://www.lua.org/manual/5.0/manual.html#5.3 string], [http://www.lua.org/manual/5.0/manual.html#5.5 math].&lt;br /&gt;
&lt;br /&gt;
A list of [[ETPro]] mods can be found [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
==server commands==&lt;br /&gt;
===lua_status===&lt;br /&gt;
:lists all currently loaded lua modules.&lt;br /&gt;
&lt;br /&gt;
==cvars==&lt;br /&gt;
===lua_modules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:space separated list of lua modules for ETPro to load. modules will be run in the order listed.&lt;br /&gt;
&lt;br /&gt;
===lua_allowedmodules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:if set, only lua modules with the matching sha1 signatures listed in this cvar will be allowed to load.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
changing either cvar will cause all currently loaded modules to quit and be unloaded until the next map_restart.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==et library calls==&lt;br /&gt;
&lt;br /&gt;
===modules===&lt;br /&gt;
et.RegisterModname( &#039;&#039;&#039;modname&#039;&#039;&#039; )&lt;br /&gt;
:Registers a descriptive string &#039;&#039;&#039;modname&#039;&#039;&#039; for this mod.&lt;br /&gt;
&#039;&#039;&#039;vmnumber&#039;&#039;&#039; = et.FindSelf()&lt;br /&gt;
:Returns a number indicating the VM slot the current mod is loaded into.&lt;br /&gt;
&#039;&#039;&#039;modname&#039;&#039;&#039;, &#039;&#039;&#039;signature&#039;&#039;&#039; = et.FindMod( &#039;&#039;&#039;vmnumber&#039;&#039;&#039; )&lt;br /&gt;
:Returns the &#039;&#039;&#039;modname&#039;&#039;&#039; and sha1 &#039;&#039;&#039;signature&#039;&#039;&#039; for the mod loaded in the VM slot &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. Returns nil, nil if the VM slot is invalid.&lt;br /&gt;
&#039;&#039;&#039;success&#039;&#039;&#039; = et.IPCSend( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Sends the string &#039;&#039;&#039;message&#039;&#039;&#039; to the mod in the VM slot indicated by &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. The mod receiving &#039;&#039;&#039;message&#039;&#039;&#039; must have an &#039;&#039;et_IPCReceive()&#039;&#039; callback. If the message is successfully sent, &#039;&#039;&#039;success&#039;&#039;&#039; will be 1. On failure it will be 0.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===printing===&lt;br /&gt;
et.G_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console.&lt;br /&gt;
et.G_LogPrint( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console and writes it to the server log.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===argument handling===&lt;br /&gt;
These functions are to be used within the [[#commands|command callback functions]].&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;args&#039;&#039;&#039; = et.ConcatArgs( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns all arguments beginning from &#039;&#039;&#039;index&#039;&#039;&#039; concatenated into a single string &#039;&#039;&#039;args&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;argcount&#039;&#039;&#039; = et.trap_Argc()&lt;br /&gt;
:Returns a number indicating the number of command line arguments in the command buffer.&lt;br /&gt;
&#039;&#039;&#039;arg&#039;&#039;&#039; = et.trap_Argv( &#039;&#039;&#039;argnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the command line argument &#039;&#039;&#039;argnum&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===cvars===&lt;br /&gt;
&#039;&#039;&#039;cvarvalue&#039;&#039;&#039; = et.trap_Cvar_Get( &#039;&#039;&#039;cvarname&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039;&lt;br /&gt;
et.trap_Cvar_Set( &#039;&#039;&#039;cvarname&#039;&#039;&#039;, &#039;&#039;&#039;cvarvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039; to &#039;&#039;&#039;cvarvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===configstrings===&lt;br /&gt;
&#039;&#039;&#039;configstringvalue&#039;&#039;&#039; = et.trap_GetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; containing the contents of the configstring &#039;&#039;&#039;index&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039;, &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the configstring &#039;&#039;&#039;index&#039;&#039;&#039; to the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
et.trap_SendConsoleCommand( &#039;&#039;&#039;when&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the server console, to be executed &#039;&#039;&#039;when&#039;&#039;&#039; (see et.EXEC_* constants)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===clients===&lt;br /&gt;
et.trap_DropClient( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;reason&#039;&#039;&#039;, &#039;&#039;&#039;ban_time&#039;&#039;&#039; )&lt;br /&gt;
:Disconnects &#039;&#039;&#039;clientnum&#039;&#039;&#039; from the server, with descriptive string &#039;&#039;&#039;reason&#039;&#039;&#039; reported to clients. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is the time in seconds to ban the client from the server. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is optional and may be entirely omitted, in which case the ban time defaults to the cvar &#039;&#039;b_defaultbantime&#039;&#039;&lt;br /&gt;
et.trap_SendServerCommand( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;. If &#039;&#039;&#039;clientnum&#039;&#039;&#039; is -1, the &#039;&#039;&#039;command&#039;&#039;&#039; is broadcast to all connected clients.&lt;br /&gt;
et.G_Say( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Sends a chat command on behalf of client &#039;&#039;&#039;clientNum&#039;&#039;&#039; with the mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.SAY_* constants) and chat text &#039;&#039;&#039;text&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===userinfo===&lt;br /&gt;
&#039;&#039;&#039;userinfo&#039;&#039;&#039; = et.trap_GetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;userinfo&#039;&#039;&#039; )&lt;br /&gt;
:Sets the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039; to &#039;&#039;&#039;userinfo&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===string utility functions===&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_RemoveKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Removes key &#039;&#039;&#039;key&#039;&#039;&#039; from infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_SetValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;keyvalue&#039;&#039;&#039; = et.Info_ValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;cleanstring&#039;&#039;&#039; = et.Q_CleanStr( &#039;&#039;&#039;string&#039;&#039;&#039; )&lt;br /&gt;
:Returns &#039;&#039;&#039;string&#039;&#039;&#039; stripped of all color codes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ET filesystem===&lt;br /&gt;
&#039;&#039;&#039;fd&#039;&#039;&#039;, &#039;&#039;&#039;len&#039;&#039;&#039; = et.trap_FS_FOpenFile( &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to open the file &#039;&#039;&#039;filename&#039;&#039;&#039; with the access mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.FS_ constants). Returns the filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039; and file length &#039;&#039;&#039;len&#039;&#039;&#039;. On error, &#039;&#039;&#039;len&#039;&#039;&#039; returns -1.&lt;br /&gt;
&#039;&#039;&#039;filedata&#039;&#039;&#039; = et.trap_FS_Read( fd, count )&lt;br /&gt;
:Reads &#039;&#039;&#039;count&#039;&#039;&#039; bytes from filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;.&lt;br /&gt;
&#039;&#039;&#039;count&#039;&#039;&#039; = et.trap_FS_Write( &#039;&#039;&#039;filedata&#039;&#039;&#039;, &#039;&#039;&#039;count&#039;&#039;&#039;, &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to write &#039;&#039;&#039;count&#039;&#039;&#039; bytes of &#039;&#039;&#039;filedata&#039;&#039;&#039; to filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;. Returns number of bytes successfully written.&lt;br /&gt;
et.trap_FS_Rename( &#039;&#039;&#039;oldname&#039;&#039;&#039;, &#039;&#039;&#039;newname&#039;&#039;&#039; )&lt;br /&gt;
:Renames file &#039;&#039;&#039;oldname&#039;&#039;&#039; to &#039;&#039;&#039;newname&#039;&#039;&#039;.&lt;br /&gt;
et.trap_FS_FCloseFile( &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Closes filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===indexes===&lt;br /&gt;
&#039;&#039;&#039;soundindex&#039;&#039;&#039; = et.G_SoundIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the soundfile indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;modelindex&#039;&#039;&#039; = et.G_ModelIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the model indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===sound===&lt;br /&gt;
et.G_globalSound( &#039;&#039;&#039;sound&#039;&#039;&#039; )&lt;br /&gt;
:Plays the global sound indicated by the filename &#039;&#039;&#039;sound&#039;&#039;&#039;.&lt;br /&gt;
et.G_Sound( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;soundindex&#039;&#039;&#039; )&lt;br /&gt;
:Plays the sound &#039;&#039;&#039;soundindex&#039;&#039;&#039; at the location of entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
&#039;&#039;&#039;milliseconds&#039;&#039;&#039; = et.trap_Milliseconds()&lt;br /&gt;
:Returns a number indicating the current server time in milliseconds.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===entities===&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_Spawn()&lt;br /&gt;
:Spawns a new entity and returns the new entity number.&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_TempEntity( &#039;&#039;&#039;origin&#039;&#039;&#039;, &#039;&#039;&#039;event&#039;&#039;&#039; )&lt;br /&gt;
:Spawns a new TempEntity of event type &#039;&#039;&#039;event&#039;&#039;&#039; and places it at &#039;&#039;&#039;origin&#039;&#039;&#039; in the world.&lt;br /&gt;
et.G_FreeEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Frees the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;spawnval&#039;&#039;&#039; = et.G_GetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.G_SetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;integer entnum&#039;&#039;&#039; = et.G_SpawnGEntityFromSpawnVars( string spawnvar, string spawnvalue, ... )&lt;br /&gt;
:This function can only be called inside the &#039;&#039;&#039;et_InitGame&#039;&#039;&#039; callback&lt;br /&gt;
et.trap_LinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Links the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_UnlinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Unlinks the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;(variable)&#039;&#039;&#039; = et.gentity_get ( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; )&lt;br /&gt;
:Gets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; out of the g_entity struct&amp;lt;br&amp;gt;&lt;br /&gt;
et.gentity_set( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039;, &#039;&#039;&#039;(variable)&#039;&#039;&#039; )&lt;br /&gt;
:Sets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; in the g_entity struct to &#039;&#039;&#039;(variable)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==callbacks==&lt;br /&gt;
&lt;br /&gt;
===qagame execution===&lt;br /&gt;
et_InitGame( &#039;&#039;&#039;levelTime&#039;&#039;&#039;, &#039;&#039;&#039;randomSeed&#039;&#039;&#039;, &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame initializes. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds. &#039;&#039;&#039;randomSeed&#039;&#039;&#039; is a number that can be used to seed random number generators. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if et_InitGame() is being called due to a map restart (1) or not (0).&lt;br /&gt;
et_ShutdownGame( &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame shuts down. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if the shutdown is being called due to a map_restart (1) or not (0).&lt;br /&gt;
et_RunFrame( &#039;&#039;&#039;levelTime&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame runs a server frame. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds.&lt;br /&gt;
et_Quit()&lt;br /&gt;
:Called when ETPro unloads the mod. The mod should close all open filedescriptors and perform all cleanup.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===client management===&lt;br /&gt;
&#039;&#039;&#039;rejectreason&#039;&#039;&#039; = et_ClientConnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;firstTime&#039;&#039;&#039;, &#039;&#039;&#039;isBot&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client attempts to connect to the server. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id, &#039;&#039;&#039;firstTime&#039;&#039;&#039; indicates if this is a new connection (1) or a reconnection (0). &#039;&#039;&#039;isBot&#039;&#039;&#039; indicates if the client is a bot (1) or not (0). If the mod accepts the connection, it should return nil. Otherwise, the mod should return a string describing the reason the client connection was rejected.&lt;br /&gt;
et_ClientDisconnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client disconnects. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientBegin( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client begins (becomes active, and enters the gameworld). &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientUserinfoChanged( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client&#039;s Userinfo string has changed. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===commands===&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientCommand( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a command is received from a client. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;command&#039;&#039;&#039; is the command. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
:The actual command can be accessed through the [[#argument_handling|argument handling]] functions, as seen in the [[ETPro:Lua Sample Code]].&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ConsoleCommand()&lt;br /&gt;
:Called when a command is entered on the server console. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
:The actual command can be accessed through the [[#argument_handling|argument handling]] functions, as seen in the [[ETPro:Lua Sample Code]].&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientSay( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client sends a chat command. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;mode&#039;&#039;&#039; is the chat mode (see et.SAY_* constants). &#039;&#039;&#039;text&#039;&#039;&#039; is the chat text. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain)&lt;br /&gt;
:Note that this command &#039;&#039;&#039;does not&#039;&#039;&#039; use the [[#argument_handling|argument handling]] functions.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
et_IPCReceive( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Called when another mod sends an et.IPCSend() message to this mod. &#039;&#039;&#039;vmnumber&#039;&#039;&#039; is the VM slot number of the sender, and &#039;&#039;&#039;message&#039;&#039;&#039; is the message.&lt;br /&gt;
et_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called whenever the server or qagame prints a string to the console.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==predefined constants==&lt;br /&gt;
et.EXEC_NOW&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_INSERT&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_READ&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_WRITE&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND_SYNC&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_ALL&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAM&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_BUDDY&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAMNL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
et.HOSTARCH&lt;br /&gt;
:set to WIN32 or UNIX depending on the host architecture qagame is running on.&lt;br /&gt;
LUA_PATH&lt;br /&gt;
:set to fs_homepath/fs_game/?.lua in order to ease use of the [http://www.lua.org/pil/8.1.html require] function.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==configs==&lt;br /&gt;
If a config is loaded, all modules are shutdown and reloaded. If a &#039;&#039;certified&#039;&#039; config is loaded, all modules are shutdown and reloaded, and additionally the following functions are disabled: &#039;&#039;&#039;require()&#039;&#039;&#039;, &#039;&#039;&#039;loadfile()&#039;&#039;&#039;, &#039;&#039;&#039;loadlib()&#039;&#039;&#039;, &#039;&#039;&#039;loadstring()&#039;&#039;&#039;, &#039;&#039;&#039;dofile()&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==caveats==&lt;br /&gt;
Like qagame, lua modules are unloaded and reloaded on map_restart and map changes. This means that all global variables and other information is lost. Mods may choose to store persistent data in cvars or external files.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
Q: OMG I hate the libary prefix et.* on everything!!11!1oneone&amp;lt;br&amp;gt;&lt;br /&gt;
A: table.foreach(et, function (func, value) _G[func] = value; end)&lt;br /&gt;
&lt;br /&gt;
Q: How do a re-load my lua file without restarting the whole server ?&amp;lt;br&amp;gt;&lt;br /&gt;
A: change maps or map_restart&lt;br /&gt;
&lt;br /&gt;
Q: Can I see some sample code?&amp;lt;br&amp;gt;&lt;br /&gt;
A: [[ETPro:Lua Sample Code]]&lt;br /&gt;
&lt;br /&gt;
Q: Is there a list of [[ETPro]] mods?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Yes, [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
Q: OMG my mod doesn&#039;t work!&amp;lt;br&amp;gt;&lt;br /&gt;
A: Make sure you added your mod&#039;s filename to the lua_modules cvar (e.g. set lua_modules mymod.lua).&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1785</id>
		<title>Lua Mod API</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1785"/>
		<updated>2005-11-16T20:40:29Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: Fixed an error with ClientCommand and added an explanation of argument handling in ClientCommand and ConsoleCommand.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;background: #FFFFCC; padding: 2px; border: 2px solid #000000;&amp;quot;&amp;gt;The latest version of the lua-enabled ETPro qagame is etpro-lua-3 and can be downloaded [http://etpro.anime.net/etpro-lua-3.zip here].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ETPro now supports serverside mods via the [http://www.lua.org/ lua] scripting language.&lt;br /&gt;
&lt;br /&gt;
ETPro has an embedded lua 5.0.2 interpreter, and if present will load user-defined scripts from the etpro directory. ETPro also provides an &amp;quot;et&amp;quot; library of function calls for lua to access the server engine, and provides callbacks so a serverside mod may trigger on specific server events.&lt;br /&gt;
&lt;br /&gt;
The following standard lua libraries are initialized by default and available to ETPro lua scripts:&lt;br /&gt;
[http://www.lua.org/manual/5.0/manual.html#5.1 basic], [http://www.lua.org/manual/5.0/manual.html#5.4 table], [http://www.lua.org/manual/5.0/manual.html#5.6 i/o], [http://www.lua.org/manual/5.0/manual.html#5.3 string], [http://www.lua.org/manual/5.0/manual.html#5.5 math].&lt;br /&gt;
&lt;br /&gt;
A list of [[ETPro]] mods can be found [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
==server commands==&lt;br /&gt;
===lua_status===&lt;br /&gt;
:lists all currently loaded lua modules.&lt;br /&gt;
&lt;br /&gt;
==cvars==&lt;br /&gt;
===lua_modules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:space separated list of lua modules for ETPro to load. modules will be run in the order listed.&lt;br /&gt;
&lt;br /&gt;
===lua_allowedmodules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:if set, only lua modules with the matching sha1 signatures listed in this cvar will be allowed to load.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
changing either cvar will cause all currently loaded modules to quit and be unloaded until the next map_restart.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==et library calls==&lt;br /&gt;
&lt;br /&gt;
===modules===&lt;br /&gt;
et.RegisterModname( &#039;&#039;&#039;modname&#039;&#039;&#039; )&lt;br /&gt;
:Registers a descriptive string &#039;&#039;&#039;modname&#039;&#039;&#039; for this mod.&lt;br /&gt;
&#039;&#039;&#039;vmnumber&#039;&#039;&#039; = et.FindSelf()&lt;br /&gt;
:Returns a number indicating the VM slot the current mod is loaded into.&lt;br /&gt;
&#039;&#039;&#039;modname&#039;&#039;&#039;, &#039;&#039;&#039;signature&#039;&#039;&#039; = et.FindMod( &#039;&#039;&#039;vmnumber&#039;&#039;&#039; )&lt;br /&gt;
:Returns the &#039;&#039;&#039;modname&#039;&#039;&#039; and sha1 &#039;&#039;&#039;signature&#039;&#039;&#039; for the mod loaded in the VM slot &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. Returns nil, nil if the VM slot is invalid.&lt;br /&gt;
&#039;&#039;&#039;success&#039;&#039;&#039; = et.IPCSend( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Sends the string &#039;&#039;&#039;message&#039;&#039;&#039; to the mod in the VM slot indicated by &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. The mod receiving &#039;&#039;&#039;message&#039;&#039;&#039; must have an &#039;&#039;et_IPCReceive()&#039;&#039; callback. If the message is successfully sent, &#039;&#039;&#039;success&#039;&#039;&#039; will be 1. On failure it will be 0.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===printing===&lt;br /&gt;
et.G_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console.&lt;br /&gt;
et.G_LogPrint( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console and writes it to the server log.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===argument handling===&lt;br /&gt;
These functions are to be used within the [[#commands|command callback functions]].&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;args&#039;&#039;&#039; = et.ConcatArgs( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns all arguments beginning from &#039;&#039;&#039;index&#039;&#039;&#039; concatenated into a single string &#039;&#039;&#039;args&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;argcount&#039;&#039;&#039; = et.trap_Argc()&lt;br /&gt;
:Returns a number indicating the number of command line arguments in the command buffer.&lt;br /&gt;
&#039;&#039;&#039;arg&#039;&#039;&#039; = et.trap_Argv( &#039;&#039;&#039;argnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the command line argument &#039;&#039;&#039;argnum&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===cvars===&lt;br /&gt;
&#039;&#039;&#039;cvarvalue&#039;&#039;&#039; = et.trap_Cvar_Get( &#039;&#039;&#039;cvarname&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039;&lt;br /&gt;
et.trap_Cvar_Set( &#039;&#039;&#039;cvarname&#039;&#039;&#039;, &#039;&#039;&#039;cvarvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039; to &#039;&#039;&#039;cvarvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===configstrings===&lt;br /&gt;
&#039;&#039;&#039;configstringvalue&#039;&#039;&#039; = et.trap_GetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; containing the contents of the configstring &#039;&#039;&#039;index&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039;, &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the configstring &#039;&#039;&#039;index&#039;&#039;&#039; to the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
et.trap_SendConsoleCommand( &#039;&#039;&#039;when&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the server console, to be executed &#039;&#039;&#039;when&#039;&#039;&#039; (see et.EXEC_* constants)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===clients===&lt;br /&gt;
et.trap_DropClient( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;reason&#039;&#039;&#039;, &#039;&#039;&#039;ban_time&#039;&#039;&#039; )&lt;br /&gt;
:Disconnects &#039;&#039;&#039;clientnum&#039;&#039;&#039; from the server, with descriptive string &#039;&#039;&#039;reason&#039;&#039;&#039; reported to clients. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is the time in seconds to ban the client from the server. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is optional and may be entirely omitted, in which case the ban time defaults to the cvar &#039;&#039;b_defaultbantime&#039;&#039;&lt;br /&gt;
et.trap_SendServerCommand( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;. If &#039;&#039;&#039;clientnum&#039;&#039;&#039; is -1, the &#039;&#039;&#039;command&#039;&#039;&#039; is broadcast to all connected clients.&lt;br /&gt;
et.G_Say( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Sends a chat command on behalf of client &#039;&#039;&#039;clientNum&#039;&#039;&#039; with the mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.SAY_* constants) and chat text &#039;&#039;&#039;text&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===userinfo===&lt;br /&gt;
&#039;&#039;&#039;userinfo&#039;&#039;&#039; = et.trap_GetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;userinfo&#039;&#039;&#039; )&lt;br /&gt;
:Sets the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039; to &#039;&#039;&#039;userinfo&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===string utility functions===&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_RemoveKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Removes key &#039;&#039;&#039;key&#039;&#039;&#039; from infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_SetValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;keyvalue&#039;&#039;&#039; = et.Info_ValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;cleanstring&#039;&#039;&#039; = et.Q_CleanStr( &#039;&#039;&#039;string&#039;&#039;&#039; )&lt;br /&gt;
:Returns &#039;&#039;&#039;string&#039;&#039;&#039; stripped of all color codes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ET filesystem===&lt;br /&gt;
&#039;&#039;&#039;fd&#039;&#039;&#039;, &#039;&#039;&#039;len&#039;&#039;&#039; = et.trap_FS_FOpenFile( &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to open the file &#039;&#039;&#039;filename&#039;&#039;&#039; with the access mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.FS_ constants). Returns the filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039; and file length &#039;&#039;&#039;len&#039;&#039;&#039;. On error, &#039;&#039;&#039;len&#039;&#039;&#039; returns -1.&lt;br /&gt;
&#039;&#039;&#039;filedata&#039;&#039;&#039; = et.trap_FS_Read( fd, count )&lt;br /&gt;
:Reads &#039;&#039;&#039;count&#039;&#039;&#039; bytes from filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;.&lt;br /&gt;
&#039;&#039;&#039;count&#039;&#039;&#039; = et.trap_FS_Write( &#039;&#039;&#039;filedata&#039;&#039;&#039;, &#039;&#039;&#039;count&#039;&#039;&#039;, &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to write &#039;&#039;&#039;count&#039;&#039;&#039; bytes of &#039;&#039;&#039;filedata&#039;&#039;&#039; to filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;. Returns number of bytes successfully written.&lt;br /&gt;
et.trap_FS_Rename( &#039;&#039;&#039;oldname&#039;&#039;&#039;, &#039;&#039;&#039;newname&#039;&#039;&#039; )&lt;br /&gt;
:Renames file &#039;&#039;&#039;oldname&#039;&#039;&#039; to &#039;&#039;&#039;newname&#039;&#039;&#039;.&lt;br /&gt;
et.trap_FS_FCloseFile( &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Closes filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===indexes===&lt;br /&gt;
&#039;&#039;&#039;soundindex&#039;&#039;&#039; = et.G_SoundIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the soundfile indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;modelindex&#039;&#039;&#039; = et.G_ModelIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the model indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===sound===&lt;br /&gt;
et.G_globalSound( &#039;&#039;&#039;sound&#039;&#039;&#039; )&lt;br /&gt;
:Plays the global sound indicated by the filename &#039;&#039;&#039;sound&#039;&#039;&#039;.&lt;br /&gt;
et.G_Sound( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;soundindex&#039;&#039;&#039; )&lt;br /&gt;
:Plays the sound &#039;&#039;&#039;soundindex&#039;&#039;&#039; at the location of entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
&#039;&#039;&#039;milliseconds&#039;&#039;&#039; = et.trap_Milliseconds()&lt;br /&gt;
:Returns a number indicating the current server time in milliseconds.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===entities===&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_Spawn()&lt;br /&gt;
:Spawns a new entity and returns the new entity number.&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_TempEntity( &#039;&#039;&#039;origin&#039;&#039;&#039;, &#039;&#039;&#039;event&#039;&#039;&#039; )&lt;br /&gt;
:Spawns a new TempEntity of event type &#039;&#039;&#039;event&#039;&#039;&#039; and places it at &#039;&#039;&#039;origin&#039;&#039;&#039; in the world.&lt;br /&gt;
et.G_FreeEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Frees the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;spawnval&#039;&#039;&#039; = et.G_GetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.G_SetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;integer entnum&#039;&#039;&#039; = et.G_SpawnGEntityFromSpawnVars( string spawnvar, string spawnvalue, ... )&lt;br /&gt;
:This function can only be called inside the &#039;&#039;&#039;et_InitGame&#039;&#039;&#039; callback&lt;br /&gt;
et.trap_LinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Links the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_UnlinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Unlinks the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;(variable)&#039;&#039;&#039; = et.gentity_get ( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; )&lt;br /&gt;
:Gets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; out of the g_entity struct&amp;lt;br&amp;gt;&lt;br /&gt;
et.gentity_set( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039;, &#039;&#039;&#039;(variable)&#039;&#039;&#039; )&lt;br /&gt;
:Sets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; in the g_entity struct to &#039;&#039;&#039;(variable)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==callbacks==&lt;br /&gt;
&lt;br /&gt;
===qagame execution===&lt;br /&gt;
et_InitGame( &#039;&#039;&#039;levelTime&#039;&#039;&#039;, &#039;&#039;&#039;randomSeed&#039;&#039;&#039;, &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame initializes. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds. &#039;&#039;&#039;randomSeed&#039;&#039;&#039; is a number that can be used to seed random number generators. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if et_InitGame() is being called due to a map restart (1) or not (0).&lt;br /&gt;
et_ShutdownGame( &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame shuts down. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if the shutdown is being called due to a map_restart (1) or not (0).&lt;br /&gt;
et_RunFrame( &#039;&#039;&#039;levelTime&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame runs a server frame. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds.&lt;br /&gt;
et_Quit()&lt;br /&gt;
:Called when ETPro unloads the mod. The mod should close all open filedescriptors and perform all cleanup.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===client management===&lt;br /&gt;
&#039;&#039;&#039;rejectreason&#039;&#039;&#039; = et_ClientConnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;firstTime&#039;&#039;&#039;, &#039;&#039;&#039;isBot&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client attempts to connect to the server. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id, &#039;&#039;&#039;firstTime&#039;&#039;&#039; indicates if this is a new connection (1) or a reconnection (0). &#039;&#039;&#039;isBot&#039;&#039;&#039; indicates if the client is a bot (1) or not (0). If the mod accepts the connection, it should return nil. Otherwise, the mod should return a string describing the reason the client connection was rejected.&lt;br /&gt;
et_ClientDisconnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client disconnects. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientBegin( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client begins (becomes active, and enters the gameworld). &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientUserinfoChanged( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client&#039;s Userinfo string has changed. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===commands===&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientCommand( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a command is received from a client. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;command&#039;&#039;&#039; is the command. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
:The actual command can be accessed through the [[#argument_handling|argument handling]] functions, as seen in the [[ETPro:Lua Sample Code]].&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ConsoleCommand()&lt;br /&gt;
:Called when a command is entered on the server console. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
:The actual command can be accessed through the [[#argument_handling|argument handling]] functions, as seen in the [[ETPro:Lua Sample Code]].&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientSay( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client sends a chat command. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;mode&#039;&#039;&#039; is the chat mode (see et.SAY_* constants). &#039;&#039;&#039;text&#039;&#039;&#039; is the chat text. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
et_IPCReceive( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Called when another mod sends an et.IPCSend() message to this mod. &#039;&#039;&#039;vmnumber&#039;&#039;&#039; is the VM slot number of the sender, and &#039;&#039;&#039;message&#039;&#039;&#039; is the message.&lt;br /&gt;
et_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called whenever the server or qagame prints a string to the console.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==predefined constants==&lt;br /&gt;
et.EXEC_NOW&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_INSERT&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_READ&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_WRITE&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND_SYNC&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_ALL&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAM&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_BUDDY&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAMNL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
et.HOSTARCH&lt;br /&gt;
:set to WIN32 or UNIX depending on the host architecture qagame is running on.&lt;br /&gt;
LUA_PATH&lt;br /&gt;
:set to fs_homepath/fs_game/?.lua in order to ease use of the [http://www.lua.org/pil/8.1.html require] function.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==configs==&lt;br /&gt;
If a config is loaded, all modules are shutdown and reloaded. If a &#039;&#039;certified&#039;&#039; config is loaded, all modules are shutdown and reloaded, and additionally the following functions are disabled: &#039;&#039;&#039;require()&#039;&#039;&#039;, &#039;&#039;&#039;loadfile()&#039;&#039;&#039;, &#039;&#039;&#039;loadlib()&#039;&#039;&#039;, &#039;&#039;&#039;loadstring()&#039;&#039;&#039;, &#039;&#039;&#039;dofile()&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==caveats==&lt;br /&gt;
Like qagame, lua modules are unloaded and reloaded on map_restart and map changes. This means that all global variables and other information is lost. Mods may choose to store persistent data in cvars or external files.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
Q: OMG I hate the libary prefix et.* on everything!!11!1oneone&amp;lt;br&amp;gt;&lt;br /&gt;
A: table.foreach(et, function (func, value) _G[func] = value; end)&lt;br /&gt;
&lt;br /&gt;
Q: How do a re-load my lua file without restarting the whole server ?&amp;lt;br&amp;gt;&lt;br /&gt;
A: change maps or map_restart&lt;br /&gt;
&lt;br /&gt;
Q: Can I see some sample code?&amp;lt;br&amp;gt;&lt;br /&gt;
A: [[ETPro:Lua Sample Code]]&lt;br /&gt;
&lt;br /&gt;
Q: Is there a list of [[ETPro]] mods?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Yes, [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
Q: OMG my mod doesn&#039;t work!&amp;lt;br&amp;gt;&lt;br /&gt;
A: Make sure you added your mod&#039;s filename to the lua_modules cvar (e.g. set lua_modules mymod.lua).&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1778</id>
		<title>Fieldname</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1778"/>
		<updated>2005-11-16T13:45:43Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: Vec3_t is not an array of vectors, it is one. Rewrote the vec3_t explanation. And OMG! 2good you really need to work on your spelling.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of fields supported by et.gentity_get() and et.gentity_set()&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;table border=0&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=#555555&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;field&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;type&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;access&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;activator&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;chain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;classname&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;closespeed&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;count&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;count2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;damage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;deathType&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;delay&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_atten&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_color&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_shader&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;dl_stylestring&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;duration&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;end_size&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;enemy&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;flags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;harc&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;health&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;inuse&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;isProp&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;item&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;key&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;message&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;methodOfDeath&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;mg42BaseEnt&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;missionLevel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;model&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;model2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;nextTrain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;noise_index&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;origin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;prevTrain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;props_frame_state&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.absmax&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.absmin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.bmodel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.contents&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.currentAngles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.currentOrigin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.eventTime&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.linkcount&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.linked&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.maxs&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.mins&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.ownerNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.singleClient&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.svFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;r.worldflags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;radius&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;random&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;rotate&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.angles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.angles2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.apos&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;trajectory&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.clientNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.constantLight&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.density&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.dl_intensity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.dmgFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.eFlags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect1Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect2Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.effect3Time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.frame&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.groundEntityNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.loopSound&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.modelindex&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.modelindex2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.number&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.onFireEnd&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.onFireStart&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.pos&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;trajectory&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.powerups&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.solid&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.teamNum&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.time&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.time2&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;s.weapon&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;scriptName&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.damage_given&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.damage_received&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.deaths&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.game_points&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.gibs&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.kills&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.muted&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.referee&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.rounds&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.semiadmin&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spec_invite&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.spec_team&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.suicides&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_damage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_kills&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;sess.team_received&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;spawnflags&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;spawnitem&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;speed&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashDamage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashMethodOfDeath&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;splashRadius&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;start_size&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tagName&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tagParent&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;takedamage&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;tankLink&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;target&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;TargetAngles&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;TargetFlag&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;targetname&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;teamchain&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;teammaster&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;track&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;varc&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;wait&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RW &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;waterlevel&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;watertype&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;RO &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ET variable types&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vec3&#039;&#039;&#039; : a &#039;&#039;&#039;vec3&#039;&#039;&#039; is a 3-element array of numbers (C definition: &amp;lt;tt&amp;gt;typedef float vec3_t[3];&lt;br /&gt;
&amp;lt;/tt&amp;gt;). It is usually used to store and process coordinates in 3D space.&amp;lt;br&amp;gt;&lt;br /&gt;
In etpro-lua a vector is a table containing 3 numbers. It can be accessed by&lt;br /&gt;
doing:&lt;br /&gt;
&amp;lt;pre&amp;gt;tablevar = {}&lt;br /&gt;
tablevar = et.gentity_get() --a vec3 value&lt;br /&gt;
x = tablevar[1]&lt;br /&gt;
y = tablevar[2]&lt;br /&gt;
z = tablevar[3]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:Rookie_One&amp;diff=1772</id>
		<title>User talk:Rookie One</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:Rookie_One&amp;diff=1772"/>
		<updated>2005-11-15T20:03:48Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;sorry i saved the lua page to late it was after u did your stuff im2good4u&lt;br /&gt;
&lt;br /&gt;
Don&#039;t worry. ;)&lt;br /&gt;
How do I get rid of this damn &amp;quot;you have new messages&amp;quot; headline??? --Rookie One 10:47, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
VarPrint is usefull since et.G_Printf gives an error while priniting a nil or funtion variable. lau trues to convert variables yes but if it cant my script will try to aviud errors. its specialy handy for debuging if u expect a variale tobe something while it is still nil or something else --2good&lt;br /&gt;
&lt;br /&gt;
You get rid of this message by reading the new talk on your talk page --[[User:Deus|Deus]] 11:29, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
@Deus: I do, but it keeps appearing on every page. :S&amp;lt;br&amp;gt;&lt;br /&gt;
@2good: I prefer getting an error and getting rid of its source. ;) --Rookie One 12:03, 15 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1762</id>
		<title>User talk:=FF=im2good4u</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1762"/>
		<updated>2005-11-15T18:49:57Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The links lead to 404 errors. --Rookie One 10:42, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
:I think that&#039;s about normal for im2good4u. --[[User:Bani|Bani]] 12:59, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t think clans should have wiki-pages on here, even links to non-existant ones. --[[User:WeblionX|WeblionX]] 14:49, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
i stole my userpage from [[User:Deus|Deus]] so blame him :d btw i fixed it i was never seposed tobe a wiki link it was seposed to link to the =FF=Clan site&lt;br /&gt;
&lt;br /&gt;
/me hits =FF=im2good4u with the previewStick --[[User:Deus|Deus]] 09:52, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
You might want to know that Lua converts variable types at runtime, so your varPrint script is not really necessary. ;) --Rookie One 10:45, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
it is since et.Pfrintf gives an error while priniting a nil or funtion variable&lt;br /&gt;
&lt;br /&gt;
lau trues to convert variables yes but if it cant my scriot will try to avoud errors&lt;br /&gt;
&lt;br /&gt;
its specialy hnady for debuging if u expect a variale tobe something wile it is stil nil or something&lt;br /&gt;
&lt;br /&gt;
One more thing, DebugLib and ETProStuffPlug still don&#039;t work.&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:Bani&amp;diff=1761</id>
		<title>User talk:Bani</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:Bani&amp;diff=1761"/>
		<updated>2005-11-15T18:49:42Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The best method to contact [[Bani]] is through the [http://bani.anime.net/banimod/forums/ Banimod Forums] [http://bani.anime.net/banimod/forums/privmsg.php?folder=inbox Private Messenging] system. Alternatively you may join the [[ETPro]] [[IRC]] channel and talk to him there, but be warned that the Bani Monster rarely talks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;nicked&amp;quot; ooo look at Bani trying to be English ;P&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sarcasm&amp;gt;By Jove! Are you implying that this charming young gentleman is not indeed English?&amp;lt;/sarcasm&amp;gt; --Rookie One 10:49, 15 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:Bani&amp;diff=1759</id>
		<title>User talk:Bani</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:Bani&amp;diff=1759"/>
		<updated>2005-11-15T18:49:11Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The best method to contact [[Bani]] is through the [http://bani.anime.net/banimod/forums/ Banimod Forums] [http://bani.anime.net/banimod/forums/privmsg.php?folder=inbox Private Messenging] system. Alternatively you may join the [[ETPro]] [[IRC]] channel and talk to him there, but be warned that the Bani Monster rarely talks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;nicked&amp;quot; ooo look at Bani trying to be English ;P&lt;br /&gt;
&lt;br /&gt;
By Jove! Are you implying that this charming young gentleman is not indeed English? --Rookie One 10:49, 15 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:Rookie_One&amp;diff=1758</id>
		<title>User talk:Rookie One</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:Rookie_One&amp;diff=1758"/>
		<updated>2005-11-15T18:47:01Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;sorry i saved the lua page to late it was after u did your stuff im2good4u&lt;br /&gt;
&lt;br /&gt;
Don&#039;t worry. ;)&lt;br /&gt;
How do I get rid of this damn &amp;quot;you have new messages&amp;quot; headline??? --Rookie One 10:47, 15 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1757</id>
		<title>User talk:=FF=im2good4u</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1757"/>
		<updated>2005-11-15T18:45:50Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The links lead to 404 errors. --Rookie One 10:42, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
:I think that&#039;s about normal for im2good4u. --[[User:Bani|Bani]] 12:59, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
I don&#039;t think clans should have wiki-pages on here, even links to non-existant ones. --[[User:WeblionX|WeblionX]] 14:49, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
i stole my userpage from [[User:Deus|Deus]] so blame him :d btw i fixed it i was never seposed tobe a wiki link it was seposed to link to the =FF=Clan site&lt;br /&gt;
&lt;br /&gt;
/me hits =FF=im2good4u with the previewStick --[[User:Deus|Deus]] 09:52, 15 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
You might want to know that Lua converts variable types at runtime, so your varPrint script is not really necessary. ;) --Rookie One 10:45, 15 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:Deus&amp;diff=1738</id>
		<title>User talk:Deus</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:Deus&amp;diff=1738"/>
		<updated>2005-11-15T12:24:06Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;\o/ --[[User:Deus|Deus]] 15:41, 14 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
/o\ --[[User:WeblionX|WeblionX]] 18:51, 14 November 2005 (PST)[http://weblionx.no-ip.org &amp;amp;nbsp;]&lt;br /&gt;
&lt;br /&gt;
\,,/ --Rookie One 04:24, 15 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1729</id>
		<title>User talk:=FF=im2good4u</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User_talk:%3DFF%3Dim2good4u&amp;diff=1729"/>
		<updated>2005-11-14T18:42:29Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The links lead to 404 errors. --Rookie One 10:42, 14 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1723</id>
		<title>Fieldname</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1723"/>
		<updated>2005-11-14T12:54:14Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: Just to improve the readability of the headers. :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of fields supported by et.gentity_get() and et.gentity_set()&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=#555555&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;field&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;type&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;access&amp;lt;/font&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;activator&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;entity&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;chain&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;entity&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;classname&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;closespeed&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;float&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;count&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;count2&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;damage&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;deathType&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;delay&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;float&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;dl_atten&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;dl_color&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;dl_shader&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;dl_stylestring&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;duration&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;float&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;end_size&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;enemy&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;entity&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;flags&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;harc&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;float&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;health&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;inuse&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;boolean&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;isProp&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;boolean&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;item&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;key&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;message&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;methodOfDeath&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;mg42BaseEnt&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;missionLevel&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;model&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;model2&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;nextTrain&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;entity&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;noise_index&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;origin&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;prevTrain&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;entity&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;props_frame_state&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;r.absmax&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;r.absmin&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;r.bmodel&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;boolean&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;r.contents&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;r.currentAngles&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;r.currentOrigin&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;r.eventTime&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;r.linkcount&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;r.linked&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;boolean&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;r.maxs&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;r.mins&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;r.ownerNum&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;r.singleClient&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;r.svFlags&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;r.worldflags&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;radius&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;random&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;float&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;rotate&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.angles&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.angles2&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.apos&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;trajectory&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.clientNum&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.constantLight&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.density&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.dl_intensity&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.dmgFlags&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.eFlags&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.effect1Time&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.effect2Time&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.effect3Time&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.frame&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;s.groundEntityNum&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.loopSound&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.modelindex&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.modelindex2&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;s.number&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.onFireEnd&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.onFireStart&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.pos&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;trajectory&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;s.powerups&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.solid&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.teamNum&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.time&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;s.time2&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;s.weapon&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;scriptName&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.damage_given&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.damage_received&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.deaths&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.game_points&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.gibs&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.kills&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.muted&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.referee&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.rounds&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.semiadmin&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.spec_invite&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.spec_team&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.suicides&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.team_damage&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.team_kills&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;sess.team_received&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;spawnflags&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;spawnitem&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;speed&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;float&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;splashDamage&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;splashMethodOfDeath&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;splashRadius&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;start_size&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;tagName&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;tagParent&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;entity&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;takedamage&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;boolean&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;tankLink&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;entity&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;target&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;TargetAngles&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;vec3&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;TargetFlag&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;targetname&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;teamchain&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;entity&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;teammaster&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;entity&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;track&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;varc&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;float&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;wait&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;float&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;green&#039;&amp;gt;RW &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;white&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;waterlevel&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&#039;lightgrey&#039;&amp;gt;&amp;lt;td align=left&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;watertype&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;integer&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td align=center&amp;gt;&amp;lt;font color=&#039;red&#039;&amp;gt;RO &amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
[[Category:ETPro]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=MediaWiki_talk:Monobook.css&amp;diff=1720</id>
		<title>MediaWiki talk:Monobook.css</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=MediaWiki_talk:Monobook.css&amp;diff=1720"/>
		<updated>2005-11-14T06:02:41Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.new:active { border: 1px solid #CC2200; }&lt;br /&gt;
--[[User:WeblionX|WeblionX]] 18:35, 13 November 2005 (PST)&lt;br /&gt;
&lt;br /&gt;
Why is this in comments? --Rookie One 22:02, 13 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1718</id>
		<title>Lua Mod API</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1718"/>
		<updated>2005-11-13T21:47:54Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: im2good4u, wtf you&amp;#039;re doing? You reverted the changes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;background: #FFFFCC; padding: 2px; border: 2px solid #000000;&amp;quot;&amp;gt;The latest version of the lua-enabled ETPro qagame is etpro-lua-3 and can be downloaded [http://etpro.anime.net/etpro-lua-3.zip here].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ETPro now supports serverside mods via the [http://www.lua.org/ lua] scripting language.&lt;br /&gt;
&lt;br /&gt;
ETPro has an embedded lua 5.0.2 interpreter, and if present will load user-defined scripts from the etpro directory. ETPro also provides an &amp;quot;et&amp;quot; library of function calls for lua to access the server engine, and provides callbacks so a serverside mod may trigger on specific server events.&lt;br /&gt;
&lt;br /&gt;
The following standard lua libraries are initialized by default and available to ETPro lua scripts:&lt;br /&gt;
[http://www.lua.org/manual/5.0/manual.html#5.1 basic], [http://www.lua.org/manual/5.0/manual.html#5.4 table], [http://www.lua.org/manual/5.0/manual.html#5.6 i/o], [http://www.lua.org/manual/5.0/manual.html#5.3 string], [http://www.lua.org/manual/5.0/manual.html#5.5 math].&lt;br /&gt;
&lt;br /&gt;
A list of [[ETPro]] mods can be found [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
==server commands==&lt;br /&gt;
===lua_status===&lt;br /&gt;
:lists all currently loaded lua modules.&lt;br /&gt;
&lt;br /&gt;
==cvars==&lt;br /&gt;
===lua_modules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:space separated list of lua modules for ETPro to load. modules will be run in the order listed.&lt;br /&gt;
&lt;br /&gt;
===lua_allowedmodules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:if set, only lua modules with the matching sha1 signatures listed in this cvar will be allowed to load.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
changing either cvar will cause all currently loaded modules to quit and be unloaded until the next map_restart.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==et library calls==&lt;br /&gt;
&lt;br /&gt;
===modules===&lt;br /&gt;
et.RegisterModname( &#039;&#039;&#039;modname&#039;&#039;&#039; )&lt;br /&gt;
:Registers a descriptive string &#039;&#039;&#039;modname&#039;&#039;&#039; for this mod.&lt;br /&gt;
&#039;&#039;&#039;vmnumber&#039;&#039;&#039; = et.FindSelf()&lt;br /&gt;
:Returns a number indicating the VM slot the current mod is loaded into.&lt;br /&gt;
&#039;&#039;&#039;modname&#039;&#039;&#039;, &#039;&#039;&#039;signature&#039;&#039;&#039; = et.FindMod( &#039;&#039;&#039;vmnumber&#039;&#039;&#039; )&lt;br /&gt;
:Returns the &#039;&#039;&#039;modname&#039;&#039;&#039; and sha1 &#039;&#039;&#039;signature&#039;&#039;&#039; for the mod loaded in the VM slot &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. Returns nil, nil if the VM slot is invalid.&lt;br /&gt;
&#039;&#039;&#039;success&#039;&#039;&#039; = et.IPCSend( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Sends the string &#039;&#039;&#039;message&#039;&#039;&#039; to the mod in the VM slot indicated by &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. The mod receiving &#039;&#039;&#039;message&#039;&#039;&#039; must have an &#039;&#039;et_IPCReceive()&#039;&#039; callback. If the message is successfully sent, &#039;&#039;&#039;success&#039;&#039;&#039; will be 1. On failure it will be 0.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===printing===&lt;br /&gt;
et.G_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console.&lt;br /&gt;
et.G_LogPrint( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console and writes it to the server log.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===argument handling===&lt;br /&gt;
&#039;&#039;&#039;args&#039;&#039;&#039; = et.ConcatArgs( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns all arguments beginning from &#039;&#039;&#039;index&#039;&#039;&#039; concatenated into a single string &#039;&#039;&#039;args&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;argcount&#039;&#039;&#039; = et.trap_Argc()&lt;br /&gt;
:Returns a number indicating the number of command line arguments in the command buffer.&lt;br /&gt;
&#039;&#039;&#039;arg&#039;&#039;&#039; = et.trap_Argv( &#039;&#039;&#039;argnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the command line argument &#039;&#039;&#039;argnum&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===cvars===&lt;br /&gt;
&#039;&#039;&#039;cvarvalue&#039;&#039;&#039; = et.trap_Cvar_Get( &#039;&#039;&#039;cvarname&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039;&lt;br /&gt;
et.trap_Cvar_Set( &#039;&#039;&#039;cvarname&#039;&#039;&#039;, &#039;&#039;&#039;cvarvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039; to &#039;&#039;&#039;cvarvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===configstrings===&lt;br /&gt;
&#039;&#039;&#039;configstringvalue&#039;&#039;&#039; = et.trap_GetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; containing the contents of the configstring &#039;&#039;&#039;index&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039;, &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the configstring &#039;&#039;&#039;index&#039;&#039;&#039; to the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
et.trap_SendConsoleCommand( &#039;&#039;&#039;when&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the server console, to be executed &#039;&#039;&#039;when&#039;&#039;&#039; (see et.EXEC_* constants)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===clients===&lt;br /&gt;
et.trap_DropClient( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;reason&#039;&#039;&#039;, &#039;&#039;&#039;ban_time&#039;&#039;&#039; )&lt;br /&gt;
:Disconnects &#039;&#039;&#039;clientnum&#039;&#039;&#039; from the server, with descriptive string &#039;&#039;&#039;reason&#039;&#039;&#039; reported to clients. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is the time in seconds to ban the client from the server. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is optional and may be entirely omitted, in which case the ban time defaults to the cvar &#039;&#039;b_defaultbantime&#039;&#039;&lt;br /&gt;
et.trap_SendServerCommand( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;. If &#039;&#039;&#039;clientnum&#039;&#039;&#039; is -1, the &#039;&#039;&#039;command&#039;&#039;&#039; is broadcast to all connected clients.&lt;br /&gt;
et.G_Say( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Sends a chat command on behalf of client &#039;&#039;&#039;clientNum&#039;&#039;&#039; with the mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.SAY_* constants) and chat text &#039;&#039;&#039;text&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===userinfo===&lt;br /&gt;
&#039;&#039;&#039;userinfo&#039;&#039;&#039; = et.trap_GetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;userinfo&#039;&#039;&#039; )&lt;br /&gt;
:Sets the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039; to &#039;&#039;&#039;userinfo&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===string utility functions===&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_RemoveKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Removes key &#039;&#039;&#039;key&#039;&#039;&#039; from infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_SetValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_ValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;cleanstring&#039;&#039;&#039; = et.Q_CleanStr( &#039;&#039;&#039;string&#039;&#039;&#039; )&lt;br /&gt;
:Returns &#039;&#039;&#039;string&#039;&#039;&#039; stripped of all color codes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ET filesystem===&lt;br /&gt;
&#039;&#039;&#039;fd&#039;&#039;&#039;, &#039;&#039;&#039;len&#039;&#039;&#039; = et.trap_FS_FOpenFile( &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to open the file &#039;&#039;&#039;filename&#039;&#039;&#039; with the access mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.FS_ constants). Returns the filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039; and file length &#039;&#039;&#039;len&#039;&#039;&#039;. On error, &#039;&#039;&#039;len&#039;&#039;&#039; returns -1.&lt;br /&gt;
&#039;&#039;&#039;filedata&#039;&#039;&#039; = et.trap_FS_Read( fd, count )&lt;br /&gt;
:Reads &#039;&#039;&#039;count&#039;&#039;&#039; bytes from filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;.&lt;br /&gt;
&#039;&#039;&#039;count&#039;&#039;&#039; = et.trap_FS_Write( &#039;&#039;&#039;filedata&#039;&#039;&#039;, &#039;&#039;&#039;count&#039;&#039;&#039;, &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to write &#039;&#039;&#039;count&#039;&#039;&#039; bytes of &#039;&#039;&#039;filedata&#039;&#039;&#039; to filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;. Returns number of bytes successfully written.&lt;br /&gt;
et.trap_FS_Rename( &#039;&#039;&#039;oldname&#039;&#039;&#039;, &#039;&#039;&#039;newname&#039;&#039;&#039; )&lt;br /&gt;
:Renames file &#039;&#039;&#039;oldname&#039;&#039;&#039; to &#039;&#039;&#039;newname&#039;&#039;&#039;.&lt;br /&gt;
et.trap_FS_FCloseFile( &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Closes filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===indexes===&lt;br /&gt;
&#039;&#039;&#039;soundindex&#039;&#039;&#039; = et.G_SoundIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the soundfile indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;modelindex&#039;&#039;&#039; = et.G_ModelIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the model indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===sound===&lt;br /&gt;
et.G_globalSound( &#039;&#039;&#039;sound&#039;&#039;&#039; )&lt;br /&gt;
:Plays the global sound indicated by the filename &#039;&#039;&#039;sound&#039;&#039;&#039;.&lt;br /&gt;
et.G_Sound( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;soundindex&#039;&#039;&#039; )&lt;br /&gt;
:Plays the sound &#039;&#039;&#039;soundindex&#039;&#039;&#039; at the location of entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
&#039;&#039;&#039;milliseconds&#039;&#039;&#039; = et.trap_Milliseconds()&lt;br /&gt;
:Returns a number indicating the current server time in milliseconds.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===entities===&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_Spawn()&lt;br /&gt;
:Spawns a new entity and returns the new entity number.&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_TempEntity( &#039;&#039;&#039;origin&#039;&#039;&#039;, &#039;&#039;&#039;event&#039;&#039;&#039; )&lt;br /&gt;
:Spawns a new TempEntity of event type &#039;&#039;&#039;event&#039;&#039;&#039; and places it at &#039;&#039;&#039;origin&#039;&#039;&#039; in the world.&lt;br /&gt;
et.G_FreeEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Frees the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;spawnval&#039;&#039;&#039; = et.G_GetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.G_SetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;integer entnum&#039;&#039;&#039; = et.G_SpawnGEntityFromSpawnVars( string spawnvar, string spawnvalue, ... )&lt;br /&gt;
:This function can only be called inside the &#039;&#039;&#039;et_InitGame&#039;&#039;&#039; callback&lt;br /&gt;
et.trap_LinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Links the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_UnlinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Unlinks the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;(variable)&#039;&#039;&#039; = et.gentity_get ( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; )&lt;br /&gt;
:Gets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; out of the g_entity struct&amp;lt;br&amp;gt;&lt;br /&gt;
et.gentity_set( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039;, &#039;&#039;&#039;(variable)&#039;&#039;&#039; )&lt;br /&gt;
:Sets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; in the g_entity struct to &#039;&#039;&#039;(variable)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==callbacks==&lt;br /&gt;
&lt;br /&gt;
===qagame execution===&lt;br /&gt;
et_InitGame( &#039;&#039;&#039;levelTime&#039;&#039;&#039;, &#039;&#039;&#039;randomSeed&#039;&#039;&#039;, &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame initializes. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds. &#039;&#039;&#039;randomSeed&#039;&#039;&#039; is a number that can be used to seed random number generators. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if et_InitGame() is being called due to a map restart (1) or not (0).&lt;br /&gt;
et_ShutdownGame( &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame shuts down. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if the shutdown is being called due to a map_restart (1) or not (0).&lt;br /&gt;
et_RunFrame( &#039;&#039;&#039;levelTime&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame runs a server frame. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds.&lt;br /&gt;
et_Quit()&lt;br /&gt;
:Called when ETPro unloads the mod. The mod should close all open filedescriptors and perform all cleanup.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===client management===&lt;br /&gt;
&#039;&#039;&#039;rejectreason&#039;&#039;&#039; = et_ClientConnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;firstTime&#039;&#039;&#039;, &#039;&#039;&#039;isBot&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client attempts to connect to the server. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id, &#039;&#039;&#039;firstTime&#039;&#039;&#039; indicates if this is a new connection (1) or a reconnection (0). &#039;&#039;&#039;isBot&#039;&#039;&#039; indicates if the client is a bot (1) or not (0). If the mod accepts the connection, it should return nil. Otherwise, the mod should return a string describing the reason the client connection was rejected.&lt;br /&gt;
et_ClientDisconnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client disconnects. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientBegin( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client begins (becomes active, and enters the gameworld). &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientUserinfoChanged( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client&#039;s Userinfo string has changed. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===commands===&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientCommand( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Called when a command is received from a client. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;command&#039;&#039;&#039; is the command. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ConsoleCommand()&lt;br /&gt;
:Called when a command is entered on the server console. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientSay( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client sends a chat command. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;mode&#039;&#039;&#039; is the chat mode (see et.SAY_* constants). &#039;&#039;&#039;text&#039;&#039;&#039; is the chat text. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
et_IPCReceive( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Called when another mod sends an et.IPCSend() message to this mod. &#039;&#039;&#039;vmnumber&#039;&#039;&#039; is the VM slot number of the sender, and &#039;&#039;&#039;message&#039;&#039;&#039; is the message.&lt;br /&gt;
et_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called whenever the server or qagame prints a string to the console.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==predefined constants==&lt;br /&gt;
et.EXEC_NOW&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_INSERT&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_READ&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_WRITE&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND_SYNC&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_ALL&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAM&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_BUDDY&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAMNL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
et.HOSTARCH&lt;br /&gt;
:set to WIN32 or UNIX depending on the host architecture qagame is running on.&lt;br /&gt;
LUA_PATH&lt;br /&gt;
:set to fs_homepath/fs_game/?.lua in order to ease use of the [http://www.lua.org/pil/8.1.html require] function.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==configs==&lt;br /&gt;
If a config is loaded, all modules are shutdown and reloaded. If a &#039;&#039;certified&#039;&#039; config is loaded, all modules are shutdown and reloaded, and additionally the following functions are disabled: &#039;&#039;&#039;require()&#039;&#039;&#039;, &#039;&#039;&#039;loadfile()&#039;&#039;&#039;, &#039;&#039;&#039;loadlib()&#039;&#039;&#039;, &#039;&#039;&#039;loadstring()&#039;&#039;&#039;, &#039;&#039;&#039;dofile()&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==caveats==&lt;br /&gt;
Like qagame, lua modules are unloaded and reloaded on map_restart and map changes. This means that all global variables and other information is lost. Mods may choose to store persistent data in cvars or external files.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
Q: OMG I hate the libary prefix et.* on everything!!11!1oneone&amp;lt;br&amp;gt;&lt;br /&gt;
A: table.foreach(et, function (func, value) _G[func] = value; end)&lt;br /&gt;
&lt;br /&gt;
Q: How do a re-load my lua file without restarting the whole server ?&amp;lt;br&amp;gt;&lt;br /&gt;
A: change maps or map_restart&lt;br /&gt;
&lt;br /&gt;
Q: Can I see some sample code?&amp;lt;br&amp;gt;&lt;br /&gt;
A: [[ETPro:Lua Sample Code]]&lt;br /&gt;
&lt;br /&gt;
Q: Is there a list of [[ETPro]] mods?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Yes, [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
Q: OMG my mod doesn&#039;t work!&amp;lt;br&amp;gt;&lt;br /&gt;
A: Make sure you added your mod&#039;s filename to the lua_modules cvar (e.g. set lua_modules mymod.lua).&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1716</id>
		<title>Lua Mod API</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1716"/>
		<updated>2005-11-13T17:55:40Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: Since et.gentity_get and et.gentity_set already work, the last FAQ entry was is no longer needed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;background: #FFFFCC; padding: 2px; border: 2px solid #000000;&amp;quot;&amp;gt;The latest version of the lua-enabled ETPro qagame is etpro-lua-3 and can be downloaded [http://etpro.anime.net/etpro-lua-3.zip here].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ETPro now supports serverside mods via the [http://www.lua.org/ lua] scripting language.&lt;br /&gt;
&lt;br /&gt;
ETPro has an embedded lua 5.0.2 interpreter, and if present will load user-defined scripts from the etpro directory. ETPro also provides an &amp;quot;et&amp;quot; library of function calls for lua to access the server engine, and provides callbacks so a serverside mod may trigger on specific server events.&lt;br /&gt;
&lt;br /&gt;
The following standard lua libraries are initialized by default and available to ETPro lua scripts:&lt;br /&gt;
[http://www.lua.org/manual/5.0/manual.html#5.1 basic], [http://www.lua.org/manual/5.0/manual.html#5.4 table], [http://www.lua.org/manual/5.0/manual.html#5.6 i/o], [http://www.lua.org/manual/5.0/manual.html#5.3 string], [http://www.lua.org/manual/5.0/manual.html#5.5 math].&lt;br /&gt;
&lt;br /&gt;
A list of [[ETPro]] mods can be found [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
==server commands==&lt;br /&gt;
===lua_status===&lt;br /&gt;
:lists all currently loaded lua modules.&lt;br /&gt;
&lt;br /&gt;
==cvars==&lt;br /&gt;
===lua_modules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:space separated list of lua modules for ETPro to load. modules will be run in the order listed.&lt;br /&gt;
&lt;br /&gt;
===lua_allowedmodules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:if set, only lua modules with the matching sha1 signatures listed in this cvar will be allowed to load.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
changing either cvar will cause all currently loaded modules to quit and be unloaded until the next map_restart.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==et library calls==&lt;br /&gt;
&lt;br /&gt;
===modules===&lt;br /&gt;
et.RegisterModname( &#039;&#039;&#039;modname&#039;&#039;&#039; )&lt;br /&gt;
:Registers a descriptive string &#039;&#039;&#039;modname&#039;&#039;&#039; for this mod.&lt;br /&gt;
&#039;&#039;&#039;vmnumber&#039;&#039;&#039; = et.FindSelf()&lt;br /&gt;
:Returns a number indicating the VM slot the current mod is loaded into.&lt;br /&gt;
&#039;&#039;&#039;modname&#039;&#039;&#039;, &#039;&#039;&#039;signature&#039;&#039;&#039; = et.FindMod( &#039;&#039;&#039;vmnumber&#039;&#039;&#039; )&lt;br /&gt;
:Returns the &#039;&#039;&#039;modname&#039;&#039;&#039; and sha1 &#039;&#039;&#039;signature&#039;&#039;&#039; for the mod loaded in the VM slot &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. Returns nil, nil if the VM slot is invalid.&lt;br /&gt;
&#039;&#039;&#039;success&#039;&#039;&#039; = et.IPCSend( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Sends the string &#039;&#039;&#039;message&#039;&#039;&#039; to the mod in the VM slot indicated by &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. The mod receiving &#039;&#039;&#039;message&#039;&#039;&#039; must have an &#039;&#039;et_IPCReceive()&#039;&#039; callback. If the message is successfully sent, &#039;&#039;&#039;success&#039;&#039;&#039; will be 1. On failure it will be 0.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===printing===&lt;br /&gt;
et.G_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console.&lt;br /&gt;
et.G_LogPrint( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console and writes it to the server log.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===argument handling===&lt;br /&gt;
&#039;&#039;&#039;args&#039;&#039;&#039; = et.ConcatArgs( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns all arguments beginning from &#039;&#039;&#039;index&#039;&#039;&#039; concatenated into a single string &#039;&#039;&#039;args&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;argcount&#039;&#039;&#039; = et.trap_Argc()&lt;br /&gt;
:Returns a number indicating the number of command line arguments in the command buffer.&lt;br /&gt;
&#039;&#039;&#039;arg&#039;&#039;&#039; = et.trap_Argv( &#039;&#039;&#039;argnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the command line argument &#039;&#039;&#039;argnum&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===cvars===&lt;br /&gt;
&#039;&#039;&#039;cvarvalue&#039;&#039;&#039; = et.trap_Cvar_Get( &#039;&#039;&#039;cvarname&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039;&lt;br /&gt;
et.trap_Cvar_Set( &#039;&#039;&#039;cvarname&#039;&#039;&#039;, &#039;&#039;&#039;cvarvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039; to &#039;&#039;&#039;cvarvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===configstrings===&lt;br /&gt;
&#039;&#039;&#039;configstringvalue&#039;&#039;&#039; = et.trap_GetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; containing the contents of the configstring &#039;&#039;&#039;index&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039;, &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the configstring &#039;&#039;&#039;index&#039;&#039;&#039; to the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
et.trap_SendConsoleCommand( &#039;&#039;&#039;when&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the server console, to be executed &#039;&#039;&#039;when&#039;&#039;&#039; (see et.EXEC_* constants)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===clients===&lt;br /&gt;
et.trap_DropClient( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;reason&#039;&#039;&#039;, &#039;&#039;&#039;ban_time&#039;&#039;&#039; )&lt;br /&gt;
:Disconnects &#039;&#039;&#039;clientnum&#039;&#039;&#039; from the server, with descriptive string &#039;&#039;&#039;reason&#039;&#039;&#039; reported to clients. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is the time in seconds to ban the client from the server. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is optional and may be entirely omitted, in which case the ban time defaults to the cvar &#039;&#039;b_defaultbantime&#039;&#039;&lt;br /&gt;
et.trap_SendServerCommand( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;. If &#039;&#039;&#039;clientnum&#039;&#039;&#039; is -1, the &#039;&#039;&#039;command&#039;&#039;&#039; is broadcast to all connected clients.&lt;br /&gt;
et.G_Say( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Sends a chat command on behalf of client &#039;&#039;&#039;clientNum&#039;&#039;&#039; with the mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.SAY_* constants) and chat text &#039;&#039;&#039;text&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===userinfo===&lt;br /&gt;
&#039;&#039;&#039;userinfo&#039;&#039;&#039; = et.trap_GetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;userinfo&#039;&#039;&#039; )&lt;br /&gt;
:Sets the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039; to &#039;&#039;&#039;userinfo&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===string utility functions===&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_RemoveKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Removes key &#039;&#039;&#039;key&#039;&#039;&#039; from infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_SetValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_ValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;cleanstring&#039;&#039;&#039; = et.Q_CleanStr( &#039;&#039;&#039;string&#039;&#039;&#039; )&lt;br /&gt;
:Returns &#039;&#039;&#039;string&#039;&#039;&#039; stripped of all color codes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ET filesystem===&lt;br /&gt;
&#039;&#039;&#039;fd&#039;&#039;&#039;, &#039;&#039;&#039;len&#039;&#039;&#039; = et.trap_FS_FOpenFile( &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to open the file &#039;&#039;&#039;filename&#039;&#039;&#039; with the access mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.FS_ constants). Returns the filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039; and file length &#039;&#039;&#039;len&#039;&#039;&#039;. On error, &#039;&#039;&#039;len&#039;&#039;&#039; returns -1.&lt;br /&gt;
&#039;&#039;&#039;filedata&#039;&#039;&#039; = et.trap_FS_Read( fd, count )&lt;br /&gt;
:Reads &#039;&#039;&#039;count&#039;&#039;&#039; bytes from filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;.&lt;br /&gt;
&#039;&#039;&#039;count&#039;&#039;&#039; = et.trap_FS_Write( &#039;&#039;&#039;filedata&#039;&#039;&#039;, &#039;&#039;&#039;count&#039;&#039;&#039;, &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to write &#039;&#039;&#039;count&#039;&#039;&#039; bytes of &#039;&#039;&#039;filedata&#039;&#039;&#039; to filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;. Returns number of bytes successfully written.&lt;br /&gt;
et.trap_FS_Rename( &#039;&#039;&#039;oldname&#039;&#039;&#039;, &#039;&#039;&#039;newname&#039;&#039;&#039; )&lt;br /&gt;
:Renames file &#039;&#039;&#039;oldname&#039;&#039;&#039; to &#039;&#039;&#039;newname&#039;&#039;&#039;.&lt;br /&gt;
et.trap_FS_FCloseFile( &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Closes filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===indexes===&lt;br /&gt;
&#039;&#039;&#039;soundindex&#039;&#039;&#039; = et.G_SoundIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the soundfile indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;modelindex&#039;&#039;&#039; = et.G_ModelIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the model indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===sound===&lt;br /&gt;
et.G_globalSound( &#039;&#039;&#039;sound&#039;&#039;&#039; )&lt;br /&gt;
:Plays the global sound indicated by the filename &#039;&#039;&#039;sound&#039;&#039;&#039;.&lt;br /&gt;
et.G_Sound( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;soundindex&#039;&#039;&#039; )&lt;br /&gt;
:Plays the sound &#039;&#039;&#039;soundindex&#039;&#039;&#039; at the location of entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
&#039;&#039;&#039;milliseconds&#039;&#039;&#039; = et.trap_Milliseconds()&lt;br /&gt;
:Returns a number indicating the current server time in milliseconds.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===entities===&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_Spawn()&lt;br /&gt;
:Spawns a new entity and returns the new entity number.&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_TempEntity( &#039;&#039;&#039;origin&#039;&#039;&#039;, &#039;&#039;&#039;event&#039;&#039;&#039; )&lt;br /&gt;
:Spawns a new TempEntity of event type &#039;&#039;&#039;event&#039;&#039;&#039; and places it at &#039;&#039;&#039;origin&#039;&#039;&#039; in the world.&lt;br /&gt;
et.G_FreeEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Frees the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;spawnval&#039;&#039;&#039; = et.G_GetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.G_SetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;integer entnum&#039;&#039;&#039; = et.G_SpawnGEntityFromSpawnVars( string spawnvar, string spawnvalue, ... )&lt;br /&gt;
:This function can only be called inside the &#039;&#039;&#039;et_InitGame&#039;&#039;&#039; callback&lt;br /&gt;
et.trap_LinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Links the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_UnlinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Unlinks the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;(variable)&#039;&#039;&#039; = et.gentity_get( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; )&lt;br /&gt;
:Gets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; out of the g_entity struct&amp;lt;br&amp;gt;&lt;br /&gt;
et.gentity_set( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039;, &#039;&#039;&#039;(variable)&#039;&#039;&#039; )&lt;br /&gt;
:Sets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; in the g_entity struct to &#039;&#039;&#039;(variable)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==callbacks==&lt;br /&gt;
&lt;br /&gt;
===qagame execution===&lt;br /&gt;
et_InitGame( &#039;&#039;&#039;levelTime&#039;&#039;&#039;, &#039;&#039;&#039;randomSeed&#039;&#039;&#039;, &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame initializes. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds. &#039;&#039;&#039;randomSeed&#039;&#039;&#039; is a number that can be used to seed random number generators. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if et_InitGame() is being called due to a map restart (1) or not (0).&lt;br /&gt;
et_ShutdownGame( &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame shuts down. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if the shutdown is being called due to a map_restart (1) or not (0).&lt;br /&gt;
et_RunFrame( &#039;&#039;&#039;levelTime&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame runs a server frame. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds.&lt;br /&gt;
et_Quit()&lt;br /&gt;
:Called when ETPro unloads the mod. The mod should close all open filedescriptors and perform all cleanup.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===client management===&lt;br /&gt;
&#039;&#039;&#039;rejectreason&#039;&#039;&#039; = et_ClientConnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;firstTime&#039;&#039;&#039;, &#039;&#039;&#039;isBot&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client attempts to connect to the server. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id, &#039;&#039;&#039;firstTime&#039;&#039;&#039; indicates if this is a new connection (1) or a reconnection (0). &#039;&#039;&#039;isBot&#039;&#039;&#039; indicates if the client is a bot (1) or not (0). If the mod accepts the connection, it should return nil. Otherwise, the mod should return a string describing the reason the client connection was rejected.&lt;br /&gt;
et_ClientDisconnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client disconnects. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientBegin( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client begins (becomes active, and enters the gameworld). &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientUserinfoChanged( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client&#039;s Userinfo string has changed. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===commands===&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientCommand( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Called when a command is received from a client. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;command&#039;&#039;&#039; is the command. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ConsoleCommand()&lt;br /&gt;
:Called when a command is entered on the server console. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientSay( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client sends a chat command. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;mode&#039;&#039;&#039; is the chat mode (see et.SAY_* constants). &#039;&#039;&#039;text&#039;&#039;&#039; is the chat text. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
et_IPCReceive( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Called when another mod sends an et.IPCSend() message to this mod. &#039;&#039;&#039;vmnumber&#039;&#039;&#039; is the VM slot number of the sender, and &#039;&#039;&#039;message&#039;&#039;&#039; is the message.&lt;br /&gt;
et_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called whenever the server or qagame prints a string to the console.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==predefined constants==&lt;br /&gt;
et.EXEC_NOW&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_INSERT&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_READ&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_WRITE&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND_SYNC&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_ALL&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAM&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_BUDDY&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAMNL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
et.HOSTARCH&lt;br /&gt;
:set to WIN32 or UNIX depending on the host architecture qagame is running on.&lt;br /&gt;
LUA_PATH&lt;br /&gt;
:set to fs_homepath/fs_game/?.lua in order to ease use of the [http://www.lua.org/pil/8.1.html require] function.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==configs==&lt;br /&gt;
If a config is loaded, all modules are shutdown and reloaded. If a &#039;&#039;certified&#039;&#039; config is loaded, all modules are shutdown and reloaded, and additionally the following functions are disabled: &#039;&#039;&#039;require()&#039;&#039;&#039;, &#039;&#039;&#039;loadfile()&#039;&#039;&#039;, &#039;&#039;&#039;loadlib()&#039;&#039;&#039;, &#039;&#039;&#039;loadstring()&#039;&#039;&#039;, &#039;&#039;&#039;dofile()&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==caveats==&lt;br /&gt;
Like qagame, lua modules are unloaded and reloaded on map_restart and map changes. This means that all global variables and other information is lost. Mods may choose to store persistent data in cvars or external files.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
Q: OMG I hate the libary prefix et.* on everything!!11!1oneone&amp;lt;br&amp;gt;&lt;br /&gt;
A: table.foreach(et, function (func, value) _G[func] = value; end)&lt;br /&gt;
&lt;br /&gt;
Q: How do a re-load my lua file without restarting the whole server ?&amp;lt;br&amp;gt;&lt;br /&gt;
A: change maps or map_restart&lt;br /&gt;
&lt;br /&gt;
Q: Can I see some sample code?&amp;lt;br&amp;gt;&lt;br /&gt;
A: [[ETPro:Lua Sample Code]]&lt;br /&gt;
&lt;br /&gt;
Q: Is there a list of [[ETPro]] mods?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Yes, [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
Q: OMG my mod doesn&#039;t work!&amp;lt;br&amp;gt;&lt;br /&gt;
A: Make sure you added your mod&#039;s filename to the lua_modules cvar (e.g. set lua_modules mymod.lua).&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Talk:Color_Codes&amp;diff=1715</id>
		<title>Talk:Color Codes</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Talk:Color_Codes&amp;diff=1715"/>
		<updated>2005-11-13T17:53:01Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aren&#039;t ~ Ÿ Þ þ chars supposed to produce #00007f as well? --Rookie One 09:53, 13 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1712</id>
		<title>Lua Mod API</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Lua_Mod_API&amp;diff=1712"/>
		<updated>2005-11-13T17:23:41Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: Added 1 missing fieldname link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;background: #FFFFCC; padding: 2px; border: 2px solid #000000;&amp;quot;&amp;gt;The latest version of the lua-enabled ETPro qagame is etpro-lua-3 and can be downloaded [http://etpro.anime.net/etpro-lua-3.zip here].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ETPro now supports serverside mods via the [http://www.lua.org/ lua] scripting language.&lt;br /&gt;
&lt;br /&gt;
ETPro has an embedded lua 5.0.2 interpreter, and if present will load user-defined scripts from the etpro directory. ETPro also provides an &amp;quot;et&amp;quot; library of function calls for lua to access the server engine, and provides callbacks so a serverside mod may trigger on specific server events.&lt;br /&gt;
&lt;br /&gt;
The following standard lua libraries are initialized by default and available to ETPro lua scripts:&lt;br /&gt;
[http://www.lua.org/manual/5.0/manual.html#5.1 basic], [http://www.lua.org/manual/5.0/manual.html#5.4 table], [http://www.lua.org/manual/5.0/manual.html#5.6 i/o], [http://www.lua.org/manual/5.0/manual.html#5.3 string], [http://www.lua.org/manual/5.0/manual.html#5.5 math].&lt;br /&gt;
&lt;br /&gt;
A list of [[ETPro]] mods can be found [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
==server commands==&lt;br /&gt;
===lua_status===&lt;br /&gt;
:lists all currently loaded lua modules.&lt;br /&gt;
&lt;br /&gt;
==cvars==&lt;br /&gt;
===lua_modules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:space separated list of lua modules for ETPro to load. modules will be run in the order listed.&lt;br /&gt;
&lt;br /&gt;
===lua_allowedmodules===&lt;br /&gt;
:(default &amp;quot;&amp;quot;, disabled)&lt;br /&gt;
:if set, only lua modules with the matching sha1 signatures listed in this cvar will be allowed to load.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
changing either cvar will cause all currently loaded modules to quit and be unloaded until the next map_restart.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==et library calls==&lt;br /&gt;
&lt;br /&gt;
===modules===&lt;br /&gt;
et.RegisterModname( &#039;&#039;&#039;modname&#039;&#039;&#039; )&lt;br /&gt;
:Registers a descriptive string &#039;&#039;&#039;modname&#039;&#039;&#039; for this mod.&lt;br /&gt;
&#039;&#039;&#039;vmnumber&#039;&#039;&#039; = et.FindSelf()&lt;br /&gt;
:Returns a number indicating the VM slot the current mod is loaded into.&lt;br /&gt;
&#039;&#039;&#039;modname&#039;&#039;&#039;, &#039;&#039;&#039;signature&#039;&#039;&#039; = et.FindMod( &#039;&#039;&#039;vmnumber&#039;&#039;&#039; )&lt;br /&gt;
:Returns the &#039;&#039;&#039;modname&#039;&#039;&#039; and sha1 &#039;&#039;&#039;signature&#039;&#039;&#039; for the mod loaded in the VM slot &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. Returns nil, nil if the VM slot is invalid.&lt;br /&gt;
&#039;&#039;&#039;success&#039;&#039;&#039; = et.IPCSend( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Sends the string &#039;&#039;&#039;message&#039;&#039;&#039; to the mod in the VM slot indicated by &#039;&#039;&#039;vmnumber&#039;&#039;&#039;. The mod receiving &#039;&#039;&#039;message&#039;&#039;&#039; must have an &#039;&#039;et_IPCReceive()&#039;&#039; callback. If the message is successfully sent, &#039;&#039;&#039;success&#039;&#039;&#039; will be 1. On failure it will be 0.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===printing===&lt;br /&gt;
et.G_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console.&lt;br /&gt;
et.G_LogPrint( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Prints the string &#039;&#039;&#039;text&#039;&#039;&#039; to the server console and writes it to the server log.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===argument handling===&lt;br /&gt;
&#039;&#039;&#039;args&#039;&#039;&#039; = et.ConcatArgs( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns all arguments beginning from &#039;&#039;&#039;index&#039;&#039;&#039; concatenated into a single string &#039;&#039;&#039;args&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;argcount&#039;&#039;&#039; = et.trap_Argc()&lt;br /&gt;
:Returns a number indicating the number of command line arguments in the command buffer.&lt;br /&gt;
&#039;&#039;&#039;arg&#039;&#039;&#039; = et.trap_Argv( &#039;&#039;&#039;argnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the command line argument &#039;&#039;&#039;argnum&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===cvars===&lt;br /&gt;
&#039;&#039;&#039;cvarvalue&#039;&#039;&#039; = et.trap_Cvar_Get( &#039;&#039;&#039;cvarname&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039;&lt;br /&gt;
et.trap_Cvar_Set( &#039;&#039;&#039;cvarname&#039;&#039;&#039;, &#039;&#039;&#039;cvarvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the cvar &#039;&#039;&#039;cvarname&#039;&#039;&#039; to &#039;&#039;&#039;cvarvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===configstrings===&lt;br /&gt;
&#039;&#039;&#039;configstringvalue&#039;&#039;&#039; = et.trap_GetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039; )&lt;br /&gt;
:Returns the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; containing the contents of the configstring &#039;&#039;&#039;index&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetConfigstring( &#039;&#039;&#039;index&#039;&#039;&#039;, &#039;&#039;&#039;configstringvalue&#039;&#039;&#039; )&lt;br /&gt;
:Sets the configstring &#039;&#039;&#039;index&#039;&#039;&#039; to the string &#039;&#039;&#039;configstringvalue&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
et.trap_SendConsoleCommand( &#039;&#039;&#039;when&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the server console, to be executed &#039;&#039;&#039;when&#039;&#039;&#039; (see et.EXEC_* constants)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===clients===&lt;br /&gt;
et.trap_DropClient( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;reason&#039;&#039;&#039;, &#039;&#039;&#039;ban_time&#039;&#039;&#039; )&lt;br /&gt;
:Disconnects &#039;&#039;&#039;clientnum&#039;&#039;&#039; from the server, with descriptive string &#039;&#039;&#039;reason&#039;&#039;&#039; reported to clients. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is the time in seconds to ban the client from the server. &#039;&#039;&#039;ban_time&#039;&#039;&#039; is optional and may be entirely omitted, in which case the ban time defaults to the cvar &#039;&#039;b_defaultbantime&#039;&#039;&lt;br /&gt;
et.trap_SendServerCommand( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Sends the command &#039;&#039;&#039;command&#039;&#039;&#039; to the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;. If &#039;&#039;&#039;clientnum&#039;&#039;&#039; is -1, the &#039;&#039;&#039;command&#039;&#039;&#039; is broadcast to all connected clients.&lt;br /&gt;
et.G_Say( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Sends a chat command on behalf of client &#039;&#039;&#039;clientNum&#039;&#039;&#039; with the mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.SAY_* constants) and chat text &#039;&#039;&#039;text&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===userinfo===&lt;br /&gt;
&#039;&#039;&#039;userinfo&#039;&#039;&#039; = et.trap_GetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039; )&lt;br /&gt;
:Returns the contents of the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_SetUserinfo( &#039;&#039;&#039;clientnum&#039;&#039;&#039;, &#039;&#039;&#039;userinfo&#039;&#039;&#039; )&lt;br /&gt;
:Sets the userinfo string for the client &#039;&#039;&#039;clientnum&#039;&#039;&#039; to &#039;&#039;&#039;userinfo&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===string utility functions===&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_RemoveKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Removes key &#039;&#039;&#039;key&#039;&#039;&#039; from infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_SetValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; and returns the modified infostring.&lt;br /&gt;
&#039;&#039;&#039;infostring&#039;&#039;&#039; = et.Info_ValueForKey( &#039;&#039;&#039;infostring&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of the key &#039;&#039;&#039;key&#039;&#039;&#039; in the infostring &#039;&#039;&#039;infostring&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;cleanstring&#039;&#039;&#039; = et.Q_CleanStr( &#039;&#039;&#039;string&#039;&#039;&#039; )&lt;br /&gt;
:Returns &#039;&#039;&#039;string&#039;&#039;&#039; stripped of all color codes&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ET filesystem===&lt;br /&gt;
&#039;&#039;&#039;fd&#039;&#039;&#039;, &#039;&#039;&#039;len&#039;&#039;&#039; = et.trap_FS_FOpenFile( &#039;&#039;&#039;filename&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to open the file &#039;&#039;&#039;filename&#039;&#039;&#039; with the access mode &#039;&#039;&#039;mode&#039;&#039;&#039; (see et.FS_ constants). Returns the filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039; and file length &#039;&#039;&#039;len&#039;&#039;&#039;. On error, &#039;&#039;&#039;len&#039;&#039;&#039; returns -1.&lt;br /&gt;
&#039;&#039;&#039;filedata&#039;&#039;&#039; = et.trap_FS_Read( fd, count )&lt;br /&gt;
:Reads &#039;&#039;&#039;count&#039;&#039;&#039; bytes from filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;.&lt;br /&gt;
&#039;&#039;&#039;count&#039;&#039;&#039; = et.trap_FS_Write( &#039;&#039;&#039;filedata&#039;&#039;&#039;, &#039;&#039;&#039;count&#039;&#039;&#039;, &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Attempts to write &#039;&#039;&#039;count&#039;&#039;&#039; bytes of &#039;&#039;&#039;filedata&#039;&#039;&#039; to filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;. Returns number of bytes successfully written.&lt;br /&gt;
et.trap_FS_Rename( &#039;&#039;&#039;oldname&#039;&#039;&#039;, &#039;&#039;&#039;newname&#039;&#039;&#039; )&lt;br /&gt;
:Renames file &#039;&#039;&#039;oldname&#039;&#039;&#039; to &#039;&#039;&#039;newname&#039;&#039;&#039;.&lt;br /&gt;
et.trap_FS_FCloseFile( &#039;&#039;&#039;fd&#039;&#039;&#039; )&lt;br /&gt;
:Closes filedescriptor &#039;&#039;&#039;fd&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===indexes===&lt;br /&gt;
&#039;&#039;&#039;soundindex&#039;&#039;&#039; = et.G_SoundIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the soundfile indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;modelindex&#039;&#039;&#039; = et.G_ModelIndex( &#039;&#039;&#039;filename&#039;&#039;&#039; )&lt;br /&gt;
:Returns an index to the model indicated by &#039;&#039;&#039;filename&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===sound===&lt;br /&gt;
et.G_globalSound( &#039;&#039;&#039;sound&#039;&#039;&#039; )&lt;br /&gt;
:Plays the global sound indicated by the filename &#039;&#039;&#039;sound&#039;&#039;&#039;.&lt;br /&gt;
et.G_Sound( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;soundindex&#039;&#039;&#039; )&lt;br /&gt;
:Plays the sound &#039;&#039;&#039;soundindex&#039;&#039;&#039; at the location of entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
&#039;&#039;&#039;milliseconds&#039;&#039;&#039; = et.trap_Milliseconds()&lt;br /&gt;
:Returns a number indicating the current server time in milliseconds.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===entities===&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_Spawn()&lt;br /&gt;
:Spawns a new entity and returns the new entity number.&lt;br /&gt;
&#039;&#039;&#039;entnum&#039;&#039;&#039; = et.G_TempEntity( &#039;&#039;&#039;origin&#039;&#039;&#039;, &#039;&#039;&#039;event&#039;&#039;&#039; )&lt;br /&gt;
:Spawns a new TempEntity of event type &#039;&#039;&#039;event&#039;&#039;&#039; and places it at &#039;&#039;&#039;origin&#039;&#039;&#039; in the world.&lt;br /&gt;
et.G_FreeEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Frees the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;spawnval&#039;&#039;&#039; = et.G_GetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039; )&lt;br /&gt;
:Returns the value of spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.G_SetSpawnVar( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;key&#039;&#039;&#039;, &#039;&#039;&#039;value&#039;&#039;&#039; )&lt;br /&gt;
:Sets the spawnvar &#039;&#039;&#039;key&#039;&#039;&#039; to &#039;&#039;&#039;value&#039;&#039;&#039; for entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;integer entnum&#039;&#039;&#039; = et.G_SpawnGEntityFromSpawnVars( string spawnvar, string spawnvalue, ... )&lt;br /&gt;
:This function can only be called inside the &#039;&#039;&#039;et_InitGame&#039;&#039;&#039; callback&lt;br /&gt;
et.trap_LinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Links the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
et.trap_UnlinkEntity( &#039;&#039;&#039;entnum&#039;&#039;&#039; )&lt;br /&gt;
:Unlinks the entity &#039;&#039;&#039;entnum&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;(variable)&#039;&#039;&#039; = et.gentity_get( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; )&lt;br /&gt;
:Gets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; out of the g_entity struct&amp;lt;br&amp;gt;&lt;br /&gt;
et.gentity_set( &#039;&#039;&#039;entnum&#039;&#039;&#039;, &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039;, &#039;&#039;&#039;(variable)&#039;&#039;&#039; )&lt;br /&gt;
:Sets the value of &#039;&#039;&#039;[[Fieldname]]&#039;&#039;&#039; from entity &#039;&#039;&#039;entnum&#039;&#039;&#039; in the g_entity struct to &#039;&#039;&#039;(variable)&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==callbacks==&lt;br /&gt;
&lt;br /&gt;
===qagame execution===&lt;br /&gt;
et_InitGame( &#039;&#039;&#039;levelTime&#039;&#039;&#039;, &#039;&#039;&#039;randomSeed&#039;&#039;&#039;, &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame initializes. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds. &#039;&#039;&#039;randomSeed&#039;&#039;&#039; is a number that can be used to seed random number generators. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if et_InitGame() is being called due to a map restart (1) or not (0).&lt;br /&gt;
et_ShutdownGame( &#039;&#039;&#039;restart&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame shuts down. &#039;&#039;&#039;restart&#039;&#039;&#039; indicates if the shutdown is being called due to a map_restart (1) or not (0).&lt;br /&gt;
et_RunFrame( &#039;&#039;&#039;levelTime&#039;&#039;&#039; )&lt;br /&gt;
:Called when qagame runs a server frame. &#039;&#039;&#039;levelTime&#039;&#039;&#039; is the current level time in milliseconds.&lt;br /&gt;
et_Quit()&lt;br /&gt;
:Called when ETPro unloads the mod. The mod should close all open filedescriptors and perform all cleanup.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===client management===&lt;br /&gt;
&#039;&#039;&#039;rejectreason&#039;&#039;&#039; = et_ClientConnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;firstTime&#039;&#039;&#039;, &#039;&#039;&#039;isBot&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client attempts to connect to the server. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id, &#039;&#039;&#039;firstTime&#039;&#039;&#039; indicates if this is a new connection (1) or a reconnection (0). &#039;&#039;&#039;isBot&#039;&#039;&#039; indicates if the client is a bot (1) or not (0). If the mod accepts the connection, it should return nil. Otherwise, the mod should return a string describing the reason the client connection was rejected.&lt;br /&gt;
et_ClientDisconnect( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client disconnects. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientBegin( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client begins (becomes active, and enters the gameworld). &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
et_ClientUserinfoChanged( &#039;&#039;&#039;clientNum&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client&#039;s Userinfo string has changed. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===commands===&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientCommand( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;command&#039;&#039;&#039; )&lt;br /&gt;
:Called when a command is received from a client. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;command&#039;&#039;&#039; is the command. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ConsoleCommand()&lt;br /&gt;
:Called when a command is entered on the server console. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain).&lt;br /&gt;
&#039;&#039;&#039;intercepted&#039;&#039;&#039; = et_ClientSay( &#039;&#039;&#039;clientNum&#039;&#039;&#039;, &#039;&#039;&#039;mode&#039;&#039;&#039;, &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called when a client sends a chat command. &#039;&#039;&#039;clientNum&#039;&#039;&#039; is the client slot id. &#039;&#039;&#039;mode&#039;&#039;&#039; is the chat mode (see et.SAY_* constants). &#039;&#039;&#039;text&#039;&#039;&#039; is the chat text. The mod should return 1 if the command was intercepted by the mod, and 0 if the command was ignored by the mod and should be passed through to the server (and other mods in the chain)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===miscellaneous===&lt;br /&gt;
et_IPCReceive( &#039;&#039;&#039;vmnumber&#039;&#039;&#039;, &#039;&#039;&#039;message&#039;&#039;&#039; )&lt;br /&gt;
:Called when another mod sends an et.IPCSend() message to this mod. &#039;&#039;&#039;vmnumber&#039;&#039;&#039; is the VM slot number of the sender, and &#039;&#039;&#039;message&#039;&#039;&#039; is the message.&lt;br /&gt;
et_Print( &#039;&#039;&#039;text&#039;&#039;&#039; )&lt;br /&gt;
:Called whenever the server or qagame prints a string to the console.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==predefined constants==&lt;br /&gt;
et.EXEC_NOW&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_INSERT&amp;lt;br&amp;gt;&lt;br /&gt;
et.EXEC_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_READ&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_WRITE&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND&amp;lt;br&amp;gt;&lt;br /&gt;
et.FS_APPEND_SYNC&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_ALL&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAM&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_BUDDY&amp;lt;br&amp;gt;&lt;br /&gt;
et.SAY_TEAMNL&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
et.HOSTARCH&lt;br /&gt;
:set to WIN32 or UNIX depending on the host architecture qagame is running on.&lt;br /&gt;
LUA_PATH&lt;br /&gt;
:set to fs_homepath/fs_game/?.lua in order to ease use of the [http://www.lua.org/pil/8.1.html require] function.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==configs==&lt;br /&gt;
If a config is loaded, all modules are shutdown and reloaded. If a &#039;&#039;certified&#039;&#039; config is loaded, all modules are shutdown and reloaded, and additionally the following functions are disabled: &#039;&#039;&#039;require()&#039;&#039;&#039;, &#039;&#039;&#039;loadfile()&#039;&#039;&#039;, &#039;&#039;&#039;loadlib()&#039;&#039;&#039;, &#039;&#039;&#039;loadstring()&#039;&#039;&#039;, &#039;&#039;&#039;dofile()&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==caveats==&lt;br /&gt;
Like qagame, lua modules are unloaded and reloaded on map_restart and map changes. This means that all global variables and other information is lost. Mods may choose to store persistent data in cvars or external files.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&lt;br /&gt;
Q: OMG I hate the libary prefix et.* on everything!!11!1oneone&amp;lt;br&amp;gt;&lt;br /&gt;
A: table.foreach(et, function (func, value) _G[func] = value; end)&lt;br /&gt;
&lt;br /&gt;
Q: How do a re-load my lua file without restarting the whole server ?&amp;lt;br&amp;gt;&lt;br /&gt;
A: change maps or map_restart&lt;br /&gt;
&lt;br /&gt;
Q: Can I see some sample code?&amp;lt;br&amp;gt;&lt;br /&gt;
A: [[ETPro:Lua Sample Code]]&lt;br /&gt;
&lt;br /&gt;
Q: Is there a list of [[ETPro]] mods?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Yes, [[:Category:ETPro:Mods|here]].&lt;br /&gt;
&lt;br /&gt;
Q: OMG my mod doesn&#039;t work!&amp;lt;br&amp;gt;&lt;br /&gt;
A: Make sure you added your mod&#039;s filename to the lua_modules cvar (e.g. set lua_modules mymod.lua).&lt;br /&gt;
&lt;br /&gt;
Q: I can&#039;t access ent-&amp;gt;client, how can I get a player&#039;s team?&amp;lt;br&amp;gt;&lt;br /&gt;
A: Parse the userinfo string.&lt;br /&gt;
&lt;br /&gt;
[[Category:ETPro]]&lt;br /&gt;
[[Category:ETPro:Mods]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1710</id>
		<title>Fieldname</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Fieldname&amp;diff=1710"/>
		<updated>2005-11-13T17:08:06Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of fields supported by et.gentity_get() and et.gentity_set()&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;border: 2px outset Black;&amp;quot;&amp;gt;field&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;border: 2px outset Black;&amp;quot;&amp;gt;type&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;border: 2px outset Black;&amp;quot;&amp;gt;access&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;inuse&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;classname&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;origin&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;spawnflags&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;flags&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;model&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;model2&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;nextTrain&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;prevTrain&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;message&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;target&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;targetname&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;speed&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;closespeed&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;health&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;takedamage&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;damage&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;splashDamage&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;splashRadius&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;methodOfDeath&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;splashMethodOfDeath&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;count&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;chain&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;enemy&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;activator&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;teamchain&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;teammaster&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;deathType&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;watertype&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;waterlevel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;noise_index&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;wait&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;random&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;radius&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;delay&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;TargetFlag&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;duration&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;rotate&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;TargetAngles&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;item&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;dl_color&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;dl_stylestring&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;dl_shader&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;dl_atten&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;key&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;harc&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;varc&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;float&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;props_frame_state&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;missionLevel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;start_size&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;end_size&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;isProp&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;mg42BaseEnt&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;spawnitem&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;count2&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;track&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;scriptName&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;tagName&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;string&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;tagParent&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;tankLink&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;entity&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.number&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.eFlags&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.pos&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;trajectory&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.apos&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;trajectory&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.time&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.time2&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.groundEntityNum&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.constantLight&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.dl_intensity&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.loopSound&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.clientNum&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.frame&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.solid&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.powerups&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.weapon&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.density&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.dmgFlags&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.onFireStart&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.onFireEnd&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.teamNum&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.effect1Time&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.effect2Time&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.effect3Time&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.modelindex&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.modelindex2&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.angles&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;s.angles2&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.linked&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.linkcount&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.svFlags&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.singleClient&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.bmodel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;boolean&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.mins&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.maxs&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.contents&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.absmin&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.absmax&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.currentOrigin&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.currentAngles&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;vec3&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.ownerNum&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.eventTime&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #80FF81;&amp;quot;&amp;gt;RW&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;r.worldflags&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.muted&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.damage_given&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.damage_received&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.deaths&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.game_points&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.kills&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.referee&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.rounds&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.spec_invite&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.spec_team&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.suicides&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.team_damage&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.team_received&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.team_kills&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.gibs&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;background-color: Silver;&amp;quot;&amp;gt;sess.semiadmin&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #D3D3D3;&amp;quot;&amp;gt;integer&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;background-color: #FF8080;&amp;quot;&amp;gt;RO&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
[[Category:ETPro]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Alternate_media&amp;diff=1709</id>
		<title>Alternate media</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Alternate_media&amp;diff=1709"/>
		<updated>2005-11-13T16:55:48Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ETPro]] has implemented a slight freedom for map developers. You can specify alternate media to use without overwriting the default file.&lt;br /&gt;
&lt;br /&gt;
For example, you can change the campaign map that normally shows during a load, which has the pins placed on them. To use a custom image, it must be a power of two and square. The default image is a TGA at 1024x1024 pixels, though mappers may want to use a smaller image when keeping in mind their PK3 size.&lt;br /&gt;
&lt;br /&gt;
To use a different loading image, you have to create a shader with a texture name of &amp;quot;&#039;&#039;&#039;etpro/{mapname}/gfx/loading/camp_map&#039;&#039;&#039;&amp;quot; where &#039;&#039;{mapname}&#039;&#039; is the file name of your map. (NOT the extended name).&lt;br /&gt;
&lt;br /&gt;
Example shader for a custom campaign map:&lt;br /&gt;
&amp;lt;pre&amp;gt;etpro/mapname/gfx/loading/camp_map&lt;br /&gt;
{&lt;br /&gt;
   nomipmaps&lt;br /&gt;
   nocompress&lt;br /&gt;
   {&lt;br /&gt;
      clampmap gfx/loading/mapname_camp_map.tga&lt;br /&gt;
      blendfunc blend&lt;br /&gt;
      alphaGen vertex&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
The pin images work in a similar way. The pins are what are shown in campaign mode when someone is loading a level. If the Axis have won one of the previous levels, it shows the pin_axis graphic, and if the Allied team has won the previous level, then the pin_allied gets loaded.&lt;br /&gt;
&amp;lt;pre&amp;gt;etpro/mapname/gfx/loading/pin_axis&lt;br /&gt;
{&lt;br /&gt;
   nomipmaps&lt;br /&gt;
   nopicmip&lt;br /&gt;
   nocompress&lt;br /&gt;
   {&lt;br /&gt;
      clampmap gfx/loading/pin_axis_mapname.tga&lt;br /&gt;
      blendfunc blend&lt;br /&gt;
      alphaGen vertex&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
etpro/mapname/gfx/loading/pin_allied&lt;br /&gt;
{&lt;br /&gt;
   nomipmaps&lt;br /&gt;
   nopicmip&lt;br /&gt;
   nocompress&lt;br /&gt;
   {&lt;br /&gt;
      clampmap gfx/loading/pin_allied_mapname.tga&lt;br /&gt;
      blendfunc blend&lt;br /&gt;
      alphaGen vertex&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Links==&lt;br /&gt;
[http://mobilephonestyle.co.uk/load_changed.png Example custom load images]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.gimp.org/ GIMP - GNU Image Manipulation Program]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.qeradiant.com GTK/SD Radiant] - Standard level editing tool for Q3E-based games.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=124 WeblionX].&#039;&#039;&#039;&lt;br /&gt;
[[Category:ETPro]][[Category:ETPro:Mapping]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Alternate_media&amp;diff=1708</id>
		<title>Alternate media</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Alternate_media&amp;diff=1708"/>
		<updated>2005-11-13T16:54:31Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ETPro]] has implemented a slight freedom for map developers. You can specify alternate media to use without overwriting the default file.&lt;br /&gt;
&lt;br /&gt;
For example, you can change the campaign map that normally shows during a load, which has the pins placed on them. To use a custom image, it must be a power of two and square. The default image is a TGA at 1024x1024 pixels, though mappers may want to use a smaller image when keeping in mind their PK3 size.&lt;br /&gt;
&lt;br /&gt;
To use a different loading image, you have to create a shader with a texture name of &amp;quot;&#039;&#039;&#039;etpro/{mapname}/gfx/loading/camp_map&#039;&#039;&#039;&amp;quot; where &#039;&#039;{mapname}&#039;&#039; is the file name of your map. (NOT the extended name).&lt;br /&gt;
&lt;br /&gt;
Example shader for a custom campaign map:&lt;br /&gt;
&amp;lt;pre&amp;gt;etpro/mapname/gfx/loading/camp_map&lt;br /&gt;
{&lt;br /&gt;
   nomipmaps&lt;br /&gt;
   nocompress&lt;br /&gt;
   {&lt;br /&gt;
      clampmap gfx/loading/mapname_camp_map.tga&lt;br /&gt;
      blendfunc blend&lt;br /&gt;
      alphaGen vertex&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
The pin images work in a similar way. The pins are what are shown in campaign mode when someone is loading a level. If the Axis have won one of the previous levels, it shows the pin_axis graphic, and if the Allied team has won the previous level, then the pin_allied gets loaded.&lt;br /&gt;
&amp;lt;pre&amp;gt;etpro/mapname/gfx/loading/pin_axis&lt;br /&gt;
{&lt;br /&gt;
   nomipmaps&lt;br /&gt;
   nopicmip&lt;br /&gt;
   nocompress&lt;br /&gt;
   {&lt;br /&gt;
      clampmap gfx/loading/pin_axis_mapname.tga&lt;br /&gt;
      blendfunc blend&lt;br /&gt;
      alphaGen vertex&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
etpro/mapname/gfx/loading/pin_allied&lt;br /&gt;
{&lt;br /&gt;
   nomipmaps&lt;br /&gt;
   nopicmip&lt;br /&gt;
   nocompress&lt;br /&gt;
   {&lt;br /&gt;
      clampmap gfx/loading/pin_allied_mapname.tga&lt;br /&gt;
      blendfunc blend&lt;br /&gt;
      alphaGen vertex&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Links==&lt;br /&gt;
[http://mobilephonestyle.co.uk/load_changed.png Example custom load images]&lt;br /&gt;
[http://www.gimp.org/ GIMP - GNU Image Manipulation Program]&lt;br /&gt;
[http://www.qeradiant.com GTK/SD Radiant] - Standard level editing tool for Q3E-based games.&lt;br /&gt;
[[Category:ETPro]][[Category:ETPro:Mapping]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Category:ETPro:Mapping&amp;diff=1707</id>
		<title>Category:ETPro:Mapping</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Category:ETPro:Mapping&amp;diff=1707"/>
		<updated>2005-11-13T16:50:16Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ETPro]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Map_scripting&amp;diff=1706</id>
		<title>Map scripting</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Map_scripting&amp;diff=1706"/>
		<updated>2005-11-13T16:48:53Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General information==&lt;br /&gt;
In [[ETPro]] version 3 the [[ETPro]] team has improved and changed the scripting system to a quite big extent. This article presents some of the new [[ETPro]] map scripting features.&lt;br /&gt;
&lt;br /&gt;
Some things cannot be done by scripting. These include:&lt;br /&gt;
* making a part of terrain mineable/unmineable.&lt;br /&gt;
==Scripting Examples by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=226 duke&#039;ku]==&lt;br /&gt;
Here I&#039;ll show a few examples of the new scripting allowed in ETPro, and attempt to explain what exactly it&#039;s doing. First off, I&#039;ll start with a simple example, where a model (in this case, a dinghy) is inserted into the map.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptname &amp;quot;dinghy1&amp;quot;&lt;br /&gt;
   origin &amp;quot;2650 600 100&amp;quot;&lt;br /&gt;
   classname &amp;quot;misc_gamemodel&amp;quot;&lt;br /&gt;
   modelscale 1&lt;br /&gt;
   contents 1&lt;br /&gt;
   mins &amp;quot;-90 -90 -25&amp;quot;&lt;br /&gt;
   maxs &amp;quot;90 90 25&amp;quot;&lt;br /&gt;
   clipmask 1&lt;br /&gt;
      model &amp;quot;models/mapobjects/dinghy_sd/dinghy.md3&amp;quot;   &lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This isn&#039;t exactly the cleanest example of scripting (mainly due to my lackluster job of clipping the model off,) but what it produces is this:&lt;br /&gt;
http://games.theteamkillers.net/rtcw/dinghy/2004-01-14-234844-battery.jpg&lt;br /&gt;
&lt;br /&gt;
Now, to break down how it works. The create{ } command will place an entity into the map, at the spot specified by the &amp;quot;origin&amp;quot; key. The scriptname specifies the name that the entity will have in the map, and it is what seperates it from other entities in the map (which can cause quite a few problems).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptname &amp;quot;dinghy1&amp;quot;&lt;br /&gt;
   origin &amp;quot;2650 600 100&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code above will do nothing, it creates an entity (not even of a specified type, it will do nothing) and places into the map at 2650,600,100. To find your position on a map to place an entity (you&#039;ll need to find an origin for almost every entity), use the command &amp;quot;/viewpos&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptname &amp;quot;dinghy1&amp;quot;&lt;br /&gt;
   origin &amp;quot;2650 600 100&amp;quot;&lt;br /&gt;
   classname &amp;quot;misc_gamemodel&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, the code has advanced a bit further and the entity now has a specified type, misc_gamemodel. A misc_gamemodel is a model placed into the map during load (compared to a misc_model, which are permanently static objects that get compiled into the map at compile). Misc_gamemodels can be used for almost anything, from walls (although this would be a terrible way of making a map) to moving tanks (all of the vehicles, construction boxes, command posts, etc. in game are all misc_gamemodels), but in this script it&#039;s just used for placing a model (provided with the ET mapping tools, available at http://www.qeradiant.com).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptname &amp;quot;dinghy1&amp;quot;&lt;br /&gt;
   origin &amp;quot;2650 600 100&amp;quot;&lt;br /&gt;
   classname &amp;quot;misc_gamemodel&amp;quot;&lt;br /&gt;
   modelscale 1&lt;br /&gt;
   contents 1&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, the model has a defined scale, 1. A scale of .5 would cause it to be half of the size of the model in the file that will be referenced, and a scale of 2 would cause it to be twice the size. Most flags that are used on an entity can be found in the entities.def file that is provided with the mapping tools.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptname &amp;quot;dinghy1&amp;quot;&lt;br /&gt;
   origin &amp;quot;2650 600 100&amp;quot;&lt;br /&gt;
   classname &amp;quot;misc_gamemodel&amp;quot;&lt;br /&gt;
   modelscale 1&lt;br /&gt;
   contents 1&lt;br /&gt;
   mins &amp;quot;-90 -90 -25&amp;quot;&lt;br /&gt;
   maxs &amp;quot;90 90 25&amp;quot;&lt;br /&gt;
   clipmask 1&lt;br /&gt;
   model &amp;quot;models/mapobjects/dinghy_sd/dinghy.md3&amp;quot;   &lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, for the clipping. The contents flag specifies the type of surfaceflag that the entity will be. Surfaceflags that are defined in the ET source (found in src/game/surfaceflags.h, if you&#039;re interested) are listed [http://bani.anime.net/banimod/forums/viewtopic.php?t=3328&amp;amp;start=0#surfaceflags here]. The mins and maxs specify how far out from the origin of the model (in each direction) the clipping will extend to. The coordinates on this model aren&#039;t accurate, but they get the job done.&lt;br /&gt;
&lt;br /&gt;
This was a very basic example of scripting, and now I&#039;ll be listing some more advanced examples of scripting.&lt;br /&gt;
&lt;br /&gt;
===Example 1: Battery&#039;s Back Door and Dynamite===&lt;br /&gt;
&amp;lt;pre&amp;gt;//bani&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;backdoor&amp;quot;&lt;br /&gt;
   classname &amp;quot;func_explosive&amp;quot;&lt;br /&gt;
   targetname &amp;quot;backdoor&amp;quot;&lt;br /&gt;
   origin &amp;quot;4608 -4594 1024&amp;quot;&lt;br /&gt;
   mins &amp;quot;-63 -10 0&amp;quot;&lt;br /&gt;
   maxs &amp;quot;63 10 128&amp;quot;&lt;br /&gt;
   spawnflags 1   // AXIS_OBJECTIVE(1)&lt;br /&gt;
   eflags 65536   // EF_FAKEBMODEL&lt;br /&gt;
   svflags 1   // SVF_NOCLIENT&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//bani&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;backdoor_obj&amp;quot;&lt;br /&gt;
   classname &amp;quot;trigger_objective_info&amp;quot;&lt;br /&gt;
   targetname &amp;quot;backdoor_obj&amp;quot;&lt;br /&gt;
   target &amp;quot;backdoor&amp;quot;&lt;br /&gt;
   origin &amp;quot;4608 -4601 1024&amp;quot;&lt;br /&gt;
   mins &amp;quot;-95 -85 0&amp;quot;&lt;br /&gt;
   maxs &amp;quot;95 85 128&amp;quot;&lt;br /&gt;
   spawnflags 17   // AXIS_OBJECTIVE(1) | CUSTOMIMAGE&lt;br /&gt;
   track &amp;quot;the Back Door&amp;quot;&lt;br /&gt;
   shortname &amp;quot;Back Door&amp;quot;&lt;br /&gt;
   customaxisimage &amp;quot;gfx/limbo/cm_radar_maindoor&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//bani - bug fixes&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;bugfix1&amp;quot;&lt;br /&gt;
   classname &amp;quot;func_fakebrush&amp;quot;&lt;br /&gt;
   origin &amp;quot;3632 -4313 881&amp;quot;&lt;br /&gt;
   contents 65536  // CONTENTS_PLAYERCLIP&lt;br /&gt;
   mins &amp;quot;-40 -1 -20&amp;quot;&lt;br /&gt;
   maxs &amp;quot;40 1 10&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example 2: Fueldump and Spawning at the Command Post===&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_obj&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_WOLF_objective&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_obj&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10853 -2036 6&amp;quot;   // z = CC_FILTER_ALLIES(2) | CC_FILTER_SPAWNS(4)&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES(2)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn1&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;11072 -2448 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn2&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10995 -2448 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn3&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10918 -2448 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn4&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10841 -2448 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn5&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;11072 -2288 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn6&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10995 -2288 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{      &lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn7&amp;quot;      &lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10918 -2288 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn8&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10841 -2288 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hopefully you&#039;ll be able to understand what each of those flags are doing. If you can&#039;t figure it out, see if you can figure it out from the [http://games.theteamkillers.net/rtcw/ent/ entities.def] file (from [http://user.tninet.se/~fzo823r/], this is not the original ET entities.def file but everything in it should work - it contains new things that weren&#039;t included with the stock def), or come and bug the [[ETPro]] team (|Rain|, [av]bani, zinx, fretn, s2ikkyo) on [irc://irc.freenode.net/etpro irc.freenode.net, #etpro].&lt;br /&gt;
&lt;br /&gt;
===Contents Flags===&lt;br /&gt;
* SOLID 1&amp;lt;br&amp;gt;&lt;br /&gt;
* LIGHTGRID 4&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* LAVA 8&amp;lt;br&amp;gt;&lt;br /&gt;
* SLIME 16&amp;lt;br&amp;gt;&lt;br /&gt;
* WATER 32&amp;lt;br&amp;gt;&lt;br /&gt;
* FOG 64&amp;lt;br&amp;gt;&lt;br /&gt;
* MISSILECLIP 128&amp;lt;br&amp;gt;&lt;br /&gt;
* ITEM 256&amp;lt;br&amp;gt;&lt;br /&gt;
* MOVER 16384&amp;lt;br&amp;gt;&lt;br /&gt;
* AREAPORTAL 32768&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* PLAYERCLIP 65536&amp;lt;br&amp;gt;&lt;br /&gt;
* MONSTERCLIP 131072&amp;amp;deg;&amp;lt;br&amp;gt;&lt;br /&gt;
* TELEPORTER 262144&amp;lt;br&amp;gt;&lt;br /&gt;
* JUMPPAD 524288&amp;lt;br&amp;gt;&lt;br /&gt;
* CLUSTERPORTAL 1048576&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* DONOTENTER 2097152&amp;amp;deg;&amp;lt;br&amp;gt;&lt;br /&gt;
* DONOTENTER_LARGE 4194304&amp;amp;deg;&amp;lt;br&amp;gt;&lt;br /&gt;
* ORIGIN 16777216&amp;lt;br&amp;gt;&lt;br /&gt;
* BODY 33554432&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* CORPSE 67108864&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* DETAIL 134217728&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* STRUCTURAL 268435456&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* TRANSLUCENT 536870912&amp;lt;br&amp;gt;&lt;br /&gt;
* TRIGGER 1073741824&amp;lt;br&amp;gt;&lt;br /&gt;
* NODROP 2147483648&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not all of these surfaceflags will work, but the ones you will want to use should work. If you&#039;ve tested something and it doesn&#039;t work properly, send an email to dukeku AT theteamkillers DOT net and I&#039;ll fix it here.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;deg; These, as far as I know, are bot only commands - they will have no effect on other players.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;bull; These are flags that should not be used in a script, they&#039;re either reserved for strict-in game usage that doesn&#039;t relate to something that you would do in a script such as this, or are reserved for entities that are compiled into the map and have absolutely no use in game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=226 duke&#039;ku].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Scripting Examples by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=800 Rain]==&lt;br /&gt;
Additionally, players may modify keys on existing entities with the set command.&lt;br /&gt;
===Example 1: Oasis Axis Garrison spawn marker fix===&lt;br /&gt;
Here are a couple of examples from the oasis map script (etpro/maps/oasis.script):&lt;br /&gt;
&amp;lt;pre&amp;gt;axis_garrison_wobj&lt;br /&gt;
{&lt;br /&gt;
        spawn&lt;br /&gt;
        {&lt;br /&gt;
                set&lt;br /&gt;
                {&lt;br /&gt;
                        origin &amp;quot;7089 4852 -415&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
This changes the position of the spawn marker for the Axis garrison to (7089, 4852, -415). (This was done to correct player spawn location after setautospawn usage was fixed.)&lt;br /&gt;
===Example 2: Oasis caves water fix===&lt;br /&gt;
Here&#039;s another example:&lt;br /&gt;
&amp;lt;pre&amp;gt;water_tunnel&lt;br /&gt;
{&lt;br /&gt;
        spawn&lt;br /&gt;
        {&lt;br /&gt;
                // rain - these are put into the world as CONTENTS_SOLID,&lt;br /&gt;
                // which is a Bad Thing if WolfReviveBBox gets called&lt;br /&gt;
                // while we&#039;re in the water&lt;br /&gt;
                wait 100&lt;br /&gt;
                set&lt;br /&gt;
                {&lt;br /&gt;
                        contents 32 // CONTENTS_WATER&lt;br /&gt;
                        clipmask 32 // CONTENTS_WATER&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
        [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As described by the comments, this fixes the problem that sometimes caused players to be pushed around uncontrollably while underwater in the tunnel.&lt;br /&gt;
&lt;br /&gt;
Both create and set recognize some keys that can&#039;t normally be used while mapping. Normally, most of these are computed automatically (often at map compile time); however, there are some cases when the compiled value is unusable, and there are some cases where you might want to set these values when spawning a new entity.&lt;br /&gt;
&lt;br /&gt;
===Additional supported keys===&lt;br /&gt;
The additional keys supported are:&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Key&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;mins&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A point describing the location of the lower corner of the bounding box.  (&#039;&#039;ent-&amp;amp;gt;r.mins&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;maxs&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A point describing the location of the upper corner of the bounding box.  (&#039;&#039;ent-&amp;amp;gt;r.maxs&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;contents&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Contents flags - description above (&#039;&#039;ent-&amp;amp;gt;r.contents&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;svflags&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Server flags (&#039;&#039;ent-&amp;amp;gt;r.svFlags&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;clipmask&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Brush content types to collide with. (&#039;&#039;ent-&amp;amp;gt;clipmask&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;count2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;entity-specific (&#039;&#039;ent-&amp;amp;gt;count2&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;eflags&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Entity flags (&#039;&#039;ent-&amp;amp;gt;s.eFlags&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;pos_trType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Position trajectory type (&#039;&#039;ent-&amp;amp;gt;s.pos.trType&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;pos_trDelta&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Position trajectory delta &amp;amp;#916; (&#039;&#039;ent-&amp;amp;gt;s.pos.trType&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;apos_trType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Angle trajectory type (&#039;&#039;ent-&amp;amp;gt;s.apos.trType&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;pos_trDelta&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Angle trajectory delta &amp;amp;#916; (&#039;&#039;ent-&amp;amp;gt;s.apos.trType&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;classname_nospawn&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the class name, but doesn&#039;t re-spawn the entity. (&#039;&#039;ent-&amp;amp;gt;classname&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;customaxisimage&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Custom command map image for the Axis team&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;customalliesimage&amp;lt;br&amp;gt;customalliedimage&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Custom command map image for the Allied team&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;allowteams&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Teams allowed to use an entity (&#039;&#039;ent-&amp;amp;gt;allowteams&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(You may wish to refer to the ET SDK for additional information.)&lt;br /&gt;
===The func_fakebrush entity===&lt;br /&gt;
Finally, ET Pro offers the func_fakebrush entity (also available by ORing EF_FAKEBMODEL (65536 or 0x10000) to eFlags), which allows the limited ability to spawn brush entities. The fake model must be a hexahedron, defined by mins and maxs, and will not work for all brush entity types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=800 Rain].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Scripting Examples by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=1448 SiliconSlick]==&lt;br /&gt;
===Example 1: Additional Axis spawn in the trainyard tower on Railgun===&lt;br /&gt;
[http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=1448 SiliconSlick] made a [http://en.wikipedia.org/wiki/Diff diff] for the Railgun map script to provide the axis with an additional spawn point in the trainyard tower.&lt;br /&gt;
&amp;lt;pre&amp;gt;--- railgun.script.etpro.orig   Wed Mar 31 20:01:18 2004&lt;br /&gt;
+++ railgun.script      Mon Aug 23 10:11:08 2004&lt;br /&gt;
@@ -6,6 +6,83 @@&lt;br /&gt;
 {&lt;br /&gt;
        spawn&lt;br /&gt;
        {&lt;br /&gt;
+               // SS - new spawns for Axis&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       targetname &amp;quot;axistowermarker&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;axistowermarker&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       description &amp;quot;Axis Tower&amp;quot;&lt;br /&gt;
+                       origin &amp;quot;2050 5100 625&amp;quot;&lt;br /&gt;
+                       classname &amp;quot;team_WOLF_objective&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2000 5175 625&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;-45&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2000 5175 360&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;-45&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2100 5175 625&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;-135&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2100 5050 625&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;135&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2100 5050 360&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;135&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2000 5050 625&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;45&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
                //bani - bug fixes&lt;br /&gt;
                create&lt;br /&gt;
                { &amp;lt;/pre&amp;gt;&lt;br /&gt;
===Example 2: Depot Yard capture for Axis when Tug loaded on Railgun===&lt;br /&gt;
This is another diff that makes it so that when the first tug gets loaded with ammo, the Depot Yard spawn point gets captured permanently for the axis.&lt;br /&gt;
&amp;lt;pre&amp;gt;--- railgun.script.etpro.orig   Wed Mar 31 20:01:18 2004&lt;br /&gt;
+++ railgun.script      Mon Aug 23 10:11:08 2004 &lt;br /&gt;
@@ -3088,6 +3165,8 @@&lt;br /&gt;
                                                                                                                                                             &lt;br /&gt;
                wm_set_main_objective   2 0&lt;br /&gt;
                wm_set_main_objective   2 1&lt;br /&gt;
+&lt;br /&gt;
+               trigger depotflag axis_capture_forgood  // SS - depot now permanently axis&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
                                                                                                                                                             &lt;br /&gt;
@@ -6022,18 +6101,35 @@&lt;br /&gt;
                wait 200&lt;br /&gt;
                setstate capturespawn invisible&lt;br /&gt;
                accum 0 set 0&lt;br /&gt;
+               accum 1 set 0  // SS - nobody had flag last&lt;br /&gt;
        }&lt;br /&gt;
                                                                                                                                                             &lt;br /&gt;
        trigger axis_capture&lt;br /&gt;
        {&lt;br /&gt;
                trigger game_manager depotflagred&lt;br /&gt;
                trigger depotflag setaxis&lt;br /&gt;
+               accum 1 set 2  // SS - axis had flag last&lt;br /&gt;
+       }&lt;br /&gt;
+&lt;br /&gt;
+&lt;br /&gt;
+       // SS - give depot yard to axis permanently&lt;br /&gt;
+       trigger axis_capture_forgood&lt;br /&gt;
+       {&lt;br /&gt;
+               trigger game_manager depotflagred&lt;br /&gt;
+               trigger depotflag setaxis&lt;br /&gt;
+&lt;br /&gt;
+               alertentity depotspawn  // wake it up&lt;br /&gt;
+               setstate depotflag invisible  // remove flag&lt;br /&gt;
+               accum 1 abort_if_less_than 2  // should be done if allies or nobody had it&lt;br /&gt;
+               alertentity depotspawn  // switch to axis&lt;br /&gt;
+               wm_announce &amp;quot;Axis have permanently captured the Depot Yard!&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        trigger allied_capture&lt;br /&gt;
        {&lt;br /&gt;
                trigger game_manager depotflagblue&lt;br /&gt;
                trigger depotflag setallies&lt;br /&gt;
+               accum 1 set 1  // SS - allied had flag last&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        trigger setaxis &amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] and the [http://www.nd80usa.net/modules.php?name=Forums&amp;amp;file=viewtopic&amp;amp;t=11941&amp;amp;start=49 ND80 forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=1448 SiliconSlick].&#039;&#039;&#039;&lt;br /&gt;
==Unresolved issues==&lt;br /&gt;
===[http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=1859 Ragnar_40k]&#039;s destroyable team door on Radar===&lt;br /&gt;
I played around with the ETPro scripts and tried to make the axis team door next to the main gate satchable.&lt;br /&gt;
As first step I simply copied over the code for the battery backdoor and only changed the origin-key.&lt;br /&gt;
When I start the map I can throw a satchel next to the team door and get 7.5XP when I blast it. But I get no message and the teamdoor doesnt disapper.&lt;br /&gt;
It seems that the trigger &amp;quot;death&amp;quot; for &amp;quot;backdoor_obj&amp;quot; isn&#039;t called.&lt;br /&gt;
Can you say what is wrong?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
game_manager&lt;br /&gt;
{&lt;br /&gt;
   spawn&lt;br /&gt;
   {&lt;br /&gt;
      create&lt;br /&gt;
      {&lt;br /&gt;
         scriptName &amp;quot;backdoor&amp;quot;&lt;br /&gt;
         classname &amp;quot;func_explosive&amp;quot;&lt;br /&gt;
         targetname &amp;quot;backdoor&amp;quot;&lt;br /&gt;
         origin &amp;quot;-1518 16 1406&amp;quot;&lt;br /&gt;
         mins &amp;quot;-63 -10 0&amp;quot;&lt;br /&gt;
         maxs &amp;quot;63 10 128&amp;quot;&lt;br /&gt;
         spawnflags 1   // AXIS_OBJECTIVE(1)&lt;br /&gt;
         eflags 65536   // EF_FAKEBMODEL&lt;br /&gt;
         svflags 1   // SVF_NOCLIENT&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      create&lt;br /&gt;
      {&lt;br /&gt;
         scriptName &amp;quot;backdoor_obj&amp;quot;&lt;br /&gt;
         classname &amp;quot;trigger_objective_info&amp;quot;&lt;br /&gt;
         targetname &amp;quot;backdoor_obj&amp;quot;&lt;br /&gt;
         target &amp;quot;backdoor&amp;quot;&lt;br /&gt;
         origin &amp;quot;-1518 16 1406&amp;quot;&lt;br /&gt;
         mins &amp;quot;-95 -85 0&amp;quot;&lt;br /&gt;
         maxs &amp;quot;95 85 128&amp;quot;&lt;br /&gt;
         spawnflags 17   // AXIS_OBJECTIVE(1) | CUSTOMIMAGE&lt;br /&gt;
         track &amp;quot;the Back Door&amp;quot;&lt;br /&gt;
         shortname &amp;quot;Back Door&amp;quot;&lt;br /&gt;
         customaxisimage &amp;quot;gfx/limbo/cm_radar_maindoor&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
               .&lt;br /&gt;
               .&lt;br /&gt;
               .&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
backdoor&lt;br /&gt;
{&lt;br /&gt;
   spawn&lt;br /&gt;
   {&lt;br /&gt;
      wait 50&lt;br /&gt;
      constructible_class 2&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
backdoor_obj&lt;br /&gt;
{&lt;br /&gt;
   death&lt;br /&gt;
   {&lt;br /&gt;
      wm_announce &amp;quot;Allied team has destroyed the Axis Team Door!&amp;quot;&lt;br /&gt;
      trigger teamonlydoor1 hide&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
teamonlydoor1&lt;br /&gt;
{&lt;br /&gt;
   trigger hide&lt;br /&gt;
   {&lt;br /&gt;
      remove&lt;br /&gt;
      // setstate teamonlydoor1 invisible&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
The trigger backdoor_obj-&amp;gt;death isn&#039;t called (I don&#039;t see the text from the wm_announce) . But the func_explosive &amp;quot;backdoor&amp;quot; I created is deystroyed (I get the XP for it).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=1859 Ragnar_40k].&#039;&#039;&#039;&lt;br /&gt;
===[http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=2786 MoB Seany]&#039;s Health and Ammo Cabinets===&lt;br /&gt;
Ok, now I want to get it to show up on the command map&lt;br /&gt;
I already have&lt;br /&gt;
&amp;lt;pre&amp;gt;game_manager&lt;br /&gt;
{&lt;br /&gt;
spawn&lt;br /&gt;
            {&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        targetname &amp;quot;ammo&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;ammo&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1373 -1100 192&amp;quot;&lt;br /&gt;
        classname &amp;quot;misc_cabinet_supply&amp;quot;&lt;br /&gt;
        angle &amp;quot;270&amp;quot;&lt;br /&gt;
        mins &amp;quot;-45 -45 -25&amp;quot;&lt;br /&gt;
        maxs &amp;quot;45 45 25&amp;quot;&lt;br /&gt;
        ammototal &amp;quot;100&amp;quot;&lt;br /&gt;
        modelscale &amp;quot;1&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
        model &amp;quot;models/mapobjects/supplystands/stand_ammo.md3&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        target &amp;quot;ammo&amp;quot;&lt;br /&gt;
        ammototal &amp;quot;40&amp;quot;&lt;br /&gt;
        ammorate &amp;quot;1&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1373 -1100 192&amp;quot;&lt;br /&gt;
        classname &amp;quot;trigger_ammo&amp;quot;&lt;br /&gt;
        targetname &amp;quot;ammoarea&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;ammoarea&amp;quot;&lt;br /&gt;
        modelscale &amp;quot;1&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        mins &amp;quot;-45 -45 -25&amp;quot;&lt;br /&gt;
        maxs &amp;quot;45 45 25&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        targetname &amp;quot;health&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;health&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1488 -1175 192&amp;quot;&lt;br /&gt;
        classname &amp;quot;misc_cabinet_health&amp;quot;&lt;br /&gt;
        angle &amp;quot;360&amp;quot;&lt;br /&gt;
        mins &amp;quot;-45 -45 -25&amp;quot;&lt;br /&gt;
        maxs &amp;quot;45 45 25&amp;quot;&lt;br /&gt;
        modelscale &amp;quot;1&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
        model &amp;quot;models/mapobjects/supplystands/stand_ammo.md3&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        target &amp;quot;health&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;healtharea&amp;quot;&lt;br /&gt;
        targetname &amp;quot;healtharea&amp;quot;&lt;br /&gt;
        classname &amp;quot;trigger_heal&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1488 -1175 192&amp;quot;&lt;br /&gt;
        healtotal &amp;quot;400&amp;quot;&lt;br /&gt;
        healrate &amp;quot;10&amp;quot;&lt;br /&gt;
        modelscale &amp;quot;1&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        mins &amp;quot;-45 -45-25&amp;quot;&lt;br /&gt;
        maxs &amp;quot;45 45 25&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        classname &amp;quot;trigger_objective_info&amp;quot;&lt;br /&gt;
        target &amp;quot;help_marker_toi&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;ammo_info_toi&amp;quot;&lt;br /&gt;
        track &amp;quot;Health and Ammo Cabinets&amp;quot;&lt;br /&gt;
        targetname &amp;quot;ammo_info_toi&amp;quot;&lt;br /&gt;
        shortname &amp;quot;Health and Ammo Cabinets&amp;quot;&lt;br /&gt;
        spawnflags &amp;quot;is_healthammocabinet&amp;quot;&lt;br /&gt;
        customimage &amp;quot;gfx/limbo/cm_healthammo&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1352 -1179 256&amp;quot;&lt;br /&gt;
        modelscale &amp;quot;1&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        mins &amp;quot;-45 -45-25&amp;quot;&lt;br /&gt;
        maxs &amp;quot;45 45 25&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
   &lt;br /&gt;
      }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        classname &amp;quot;misc_commandmap_marker&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;help_marker_toi&amp;quot;&lt;br /&gt;
        targetname &amp;quot;help_marker_toi&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1488 -1175 192&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
                 }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its works and has a &amp;quot;You are near Health and Ammo&amp;quot; message, but what do I need to do to get it to show up ont he command map?&lt;br /&gt;
I did have script_mover parts as well before I removed them:&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
      {&lt;br /&gt;
     targetname &amp;quot;ammo_clip&amp;quot;&lt;br /&gt;
     scriptname &amp;quot;ammo_clip&amp;quot;&lt;br /&gt;
     classname &amp;quot;script_mover&amp;quot;&lt;br /&gt;
     spawnflags &amp;quot;2&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
     targetname &amp;quot;health_clip&amp;quot;&lt;br /&gt;
     scriptname &amp;quot;health_clip&amp;quot;&lt;br /&gt;
     classname &amp;quot;script_mover&amp;quot;&lt;br /&gt;
         spawnflags &amp;quot;2&amp;quot;&lt;br /&gt;
                           }&amp;lt;/pre&amp;gt;&lt;br /&gt;
But, no matter what properties i removed, it still said a model was required for script_mover. Is a script_mover class really that important? And if so, what do I need to do to fix it? If not, then what must be done for it to show up on the command map? Thanks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=2786 MoB Seany].&#039;&#039;&#039;&lt;br /&gt;
[[Category:ETPro]][[Category:ETPro:Mapping]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Target_location&amp;diff=1705</id>
		<title>Target location</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Target_location&amp;diff=1705"/>
		<updated>2005-11-13T16:48:28Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== For Maps In Production ==&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;target_location&#039;&#039; is a non-brush entity that allows a mapper to specify a name for a certain area of the map.  Unless a player has configured their client to do otherwise, these names will be used instead of map coordinates in both the fireteam box and teammate chat messages.&lt;br /&gt;
&lt;br /&gt;
Using these entities will cause a warning to be displayed on the server console for every entity in the map during map load on etmain, shrub, and etpub (although etpub is actively developed, and this may change in the future.)  The map will still run, unaffected, though.  To use them with GtkRadiant, first make a file called &#039;&#039;et_entities_location.def&#039;&#039; in the scripts directory of your mapping install.  Then, open the file in notepad and paste the following in the file, and then save.&lt;br /&gt;
&lt;br /&gt;
===Target_location entity===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*QUAKED target_location (0 0.5 0) (-8 -8 -8) (8 8 8)&lt;br /&gt;
Set &amp;quot;message&amp;quot; to the name of this location.&lt;br /&gt;
&lt;br /&gt;
The message can contain colorcodes, default color is ^3(yellow)&lt;br /&gt;
&lt;br /&gt;
Closest target_location in sight used for the location, if none&lt;br /&gt;
in site, closest in distance, within PVS&lt;br /&gt;
*/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will allow you to place a &#039;&#039;target_location&#039;&#039; into your map within GtkRadiant, which will appear as a small green box.  When selected, give it a key called &#039;&#039;message&#039;&#039; with a value that is the name you want at that location.  You only need to place &#039;&#039;target_location&#039;&#039;s so that you can always see one; placing too many may be a waste of resources.&lt;br /&gt;
&lt;br /&gt;
== For Completed Maps ==&lt;br /&gt;
&lt;br /&gt;
Note: This method is slightly less efficient than using actual target_locations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;target_location&#039;&#039;s on exisitng maps are saved into an external file named &#039;&#039;maps/&#039;&#039;&#039;(mapname)&#039;&#039;&#039;_loc.dat&#039;&#039;.  They are generally located outside of a .pk3, but this is not a requirement.  If a file named &#039;&#039;maps/&#039;&#039;&#039;(mapname)&#039;&#039;&#039;_loc_override.dat&#039;&#039; exists, it will be read instead — this allows individual players or clans to override or add locations, even if the map or a .pk3 contains a location file.&lt;br /&gt;
&lt;br /&gt;
etpro has the following commands to aid the addition of &#039;&#039;target_location&#039;&#039;s to a map:&lt;br /&gt;
&lt;br /&gt;
===loc_commands===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;loc_add &amp;lt;name&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:Adds a new target_location at your current position named &amp;lt;name&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;loc_del&#039;&#039;&#039;&lt;br /&gt;
:Deletes the nearest target_location (the one that you are currently &amp;quot;in&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;loc_move&#039;&#039;&#039;&lt;br /&gt;
:Moves the nearest target_location to your current position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;loc_rename &amp;lt;name&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
:Renames the nearest target_location to &amp;lt;name&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;loc_show&#039;&#039;&#039;&lt;br /&gt;
:Shows the name and origin of the nearest target_location in the console.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;loc_save&#039;&#039;&#039;&lt;br /&gt;
:Saves all target_locations to a file named &#039;&#039;maps/&#039;&#039;&#039;(mapname)&#039;&#039;&#039;_loc_override.dat&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;loc_load&#039;&#039;&#039;&lt;br /&gt;
:Reloads all target_locations from a file named &#039;&#039;maps/&#039;&#039;&#039;(mapname)&#039;&#039;&#039;_loc_override.dat&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Viewing locations==&lt;br /&gt;
&lt;br /&gt;
While adding locations to your map you are able to monitor your changes. This can be enabled using a cvar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;b_debuglocations&#039;&#039;&#039; (default: 0) - Bitmask to enable debugging/design aids for location names.  Works with external .dats as well as target_location ents. The following values can be added together:&lt;br /&gt;
* 1 - Draw a bubble sprite at each location marker.&amp;lt;br&amp;gt;The nearest location is drawn in green, with all the others being drawn in red.&lt;br /&gt;
*2 - Add a dynamic light at each location marker.&amp;lt;br&amp;gt;The nearest location is lit in red, with all the others being lit in green.&lt;br /&gt;
*4 - Draw floating text at each location marker containing the location&#039;s name.&amp;lt;br&amp;gt;The nearest location is colored green instead of white.&lt;br /&gt;
*8 - Send updates to other players when a location is added, deleted, or renamed.&amp;lt;br&amp;gt;This function allows multiple people to cooperatively edit locations in a level.&lt;br /&gt;
*16 - Accept updates to locations from other players who are using b_debuglocations 8.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:ETPro]][[Category:ETPro:Mapping]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Map_scripting&amp;diff=1704</id>
		<title>Map scripting</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Map_scripting&amp;diff=1704"/>
		<updated>2005-11-13T16:46:09Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: Updated with the rest of the info from the forum thread&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General information==&lt;br /&gt;
In [[ETPro]] version 3 the [[ETPro]] team has improved and changed the scripting system to a quite big extent. This article presents some of the new [[ETPro]] map scripting features.&lt;br /&gt;
&lt;br /&gt;
Some things cannot be done by scripting. These include:&lt;br /&gt;
* making a part of terrain mineable/unmineable.&lt;br /&gt;
==Scripting Examples by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=226 duke&#039;ku]==&lt;br /&gt;
Here I&#039;ll show a few examples of the new scripting allowed in ETPro, and attempt to explain what exactly it&#039;s doing. First off, I&#039;ll start with a simple example, where a model (in this case, a dinghy) is inserted into the map.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptname &amp;quot;dinghy1&amp;quot;&lt;br /&gt;
   origin &amp;quot;2650 600 100&amp;quot;&lt;br /&gt;
   classname &amp;quot;misc_gamemodel&amp;quot;&lt;br /&gt;
   modelscale 1&lt;br /&gt;
   contents 1&lt;br /&gt;
   mins &amp;quot;-90 -90 -25&amp;quot;&lt;br /&gt;
   maxs &amp;quot;90 90 25&amp;quot;&lt;br /&gt;
   clipmask 1&lt;br /&gt;
      model &amp;quot;models/mapobjects/dinghy_sd/dinghy.md3&amp;quot;   &lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This isn&#039;t exactly the cleanest example of scripting (mainly due to my lackluster job of clipping the model off,) but what it produces is this:&lt;br /&gt;
http://games.theteamkillers.net/rtcw/dinghy/2004-01-14-234844-battery.jpg&lt;br /&gt;
&lt;br /&gt;
Now, to break down how it works. The create{ } command will place an entity into the map, at the spot specified by the &amp;quot;origin&amp;quot; key. The scriptname specifies the name that the entity will have in the map, and it is what seperates it from other entities in the map (which can cause quite a few problems).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptname &amp;quot;dinghy1&amp;quot;&lt;br /&gt;
   origin &amp;quot;2650 600 100&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code above will do nothing, it creates an entity (not even of a specified type, it will do nothing) and places into the map at 2650,600,100. To find your position on a map to place an entity (you&#039;ll need to find an origin for almost every entity), use the command &amp;quot;/viewpos&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptname &amp;quot;dinghy1&amp;quot;&lt;br /&gt;
   origin &amp;quot;2650 600 100&amp;quot;&lt;br /&gt;
   classname &amp;quot;misc_gamemodel&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, the code has advanced a bit further and the entity now has a specified type, misc_gamemodel. A misc_gamemodel is a model placed into the map during load (compared to a misc_model, which are permanently static objects that get compiled into the map at compile). Misc_gamemodels can be used for almost anything, from walls (although this would be a terrible way of making a map) to moving tanks (all of the vehicles, construction boxes, command posts, etc. in game are all misc_gamemodels), but in this script it&#039;s just used for placing a model (provided with the ET mapping tools, available at http://www.qeradiant.com).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptname &amp;quot;dinghy1&amp;quot;&lt;br /&gt;
   origin &amp;quot;2650 600 100&amp;quot;&lt;br /&gt;
   classname &amp;quot;misc_gamemodel&amp;quot;&lt;br /&gt;
   modelscale 1&lt;br /&gt;
   contents 1&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, the model has a defined scale, 1. A scale of .5 would cause it to be half of the size of the model in the file that will be referenced, and a scale of 2 would cause it to be twice the size. Most flags that are used on an entity can be found in the entities.def file that is provided with the mapping tools.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptname &amp;quot;dinghy1&amp;quot;&lt;br /&gt;
   origin &amp;quot;2650 600 100&amp;quot;&lt;br /&gt;
   classname &amp;quot;misc_gamemodel&amp;quot;&lt;br /&gt;
   modelscale 1&lt;br /&gt;
   contents 1&lt;br /&gt;
   mins &amp;quot;-90 -90 -25&amp;quot;&lt;br /&gt;
   maxs &amp;quot;90 90 25&amp;quot;&lt;br /&gt;
   clipmask 1&lt;br /&gt;
   model &amp;quot;models/mapobjects/dinghy_sd/dinghy.md3&amp;quot;   &lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, for the clipping. The contents flag specifies the type of surfaceflag that the entity will be. Surfaceflags that are defined in the ET source (found in src/game/surfaceflags.h, if you&#039;re interested) are listed [http://bani.anime.net/banimod/forums/viewtopic.php?t=3328&amp;amp;start=0#surfaceflags here]. The mins and maxs specify how far out from the origin of the model (in each direction) the clipping will extend to. The coordinates on this model aren&#039;t accurate, but they get the job done.&lt;br /&gt;
&lt;br /&gt;
This was a very basic example of scripting, and now I&#039;ll be listing some more advanced examples of scripting.&lt;br /&gt;
&lt;br /&gt;
===Example 1: Battery&#039;s Back Door and Dynamite===&lt;br /&gt;
&amp;lt;pre&amp;gt;//bani&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;backdoor&amp;quot;&lt;br /&gt;
   classname &amp;quot;func_explosive&amp;quot;&lt;br /&gt;
   targetname &amp;quot;backdoor&amp;quot;&lt;br /&gt;
   origin &amp;quot;4608 -4594 1024&amp;quot;&lt;br /&gt;
   mins &amp;quot;-63 -10 0&amp;quot;&lt;br /&gt;
   maxs &amp;quot;63 10 128&amp;quot;&lt;br /&gt;
   spawnflags 1   // AXIS_OBJECTIVE(1)&lt;br /&gt;
   eflags 65536   // EF_FAKEBMODEL&lt;br /&gt;
   svflags 1   // SVF_NOCLIENT&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//bani&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;backdoor_obj&amp;quot;&lt;br /&gt;
   classname &amp;quot;trigger_objective_info&amp;quot;&lt;br /&gt;
   targetname &amp;quot;backdoor_obj&amp;quot;&lt;br /&gt;
   target &amp;quot;backdoor&amp;quot;&lt;br /&gt;
   origin &amp;quot;4608 -4601 1024&amp;quot;&lt;br /&gt;
   mins &amp;quot;-95 -85 0&amp;quot;&lt;br /&gt;
   maxs &amp;quot;95 85 128&amp;quot;&lt;br /&gt;
   spawnflags 17   // AXIS_OBJECTIVE(1) | CUSTOMIMAGE&lt;br /&gt;
   track &amp;quot;the Back Door&amp;quot;&lt;br /&gt;
   shortname &amp;quot;Back Door&amp;quot;&lt;br /&gt;
   customaxisimage &amp;quot;gfx/limbo/cm_radar_maindoor&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//bani - bug fixes&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;bugfix1&amp;quot;&lt;br /&gt;
   classname &amp;quot;func_fakebrush&amp;quot;&lt;br /&gt;
   origin &amp;quot;3632 -4313 881&amp;quot;&lt;br /&gt;
   contents 65536  // CONTENTS_PLAYERCLIP&lt;br /&gt;
   mins &amp;quot;-40 -1 -20&amp;quot;&lt;br /&gt;
   maxs &amp;quot;40 1 10&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example 2: Fueldump and Spawning at the Command Post===&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_obj&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_WOLF_objective&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_obj&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10853 -2036 6&amp;quot;   // z = CC_FILTER_ALLIES(2) | CC_FILTER_SPAWNS(4)&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES(2)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn1&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;11072 -2448 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn2&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10995 -2448 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn3&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10918 -2448 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn4&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10841 -2448 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn5&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;11072 -2288 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn6&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10995 -2288 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{      &lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn7&amp;quot;      &lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10918 -2288 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
{&lt;br /&gt;
   scriptName &amp;quot;fueldumphq_spawn8&amp;quot;&lt;br /&gt;
   classname &amp;quot;team_CTF_bluespawn&amp;quot;&lt;br /&gt;
   targetname &amp;quot;fueldumphq_spawn&amp;quot;&lt;br /&gt;
   origin &amp;quot;-10841 -2288 512&amp;quot;&lt;br /&gt;
   spawnflags 2   // TEAM_ALLIES&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hopefully you&#039;ll be able to understand what each of those flags are doing. If you can&#039;t figure it out, see if you can figure it out from the [http://games.theteamkillers.net/rtcw/ent/ entities.def] file (from [http://user.tninet.se/~fzo823r/], this is not the original ET entities.def file but everything in it should work - it contains new things that weren&#039;t included with the stock def), or come and bug the [[ETPro]] team (|Rain|, [av]bani, zinx, fretn, s2ikkyo) on [irc://irc.freenode.net/etpro irc.freenode.net, #etpro].&lt;br /&gt;
&lt;br /&gt;
===Contents Flags===&lt;br /&gt;
* SOLID 1&amp;lt;br&amp;gt;&lt;br /&gt;
* LIGHTGRID 4&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* LAVA 8&amp;lt;br&amp;gt;&lt;br /&gt;
* SLIME 16&amp;lt;br&amp;gt;&lt;br /&gt;
* WATER 32&amp;lt;br&amp;gt;&lt;br /&gt;
* FOG 64&amp;lt;br&amp;gt;&lt;br /&gt;
* MISSILECLIP 128&amp;lt;br&amp;gt;&lt;br /&gt;
* ITEM 256&amp;lt;br&amp;gt;&lt;br /&gt;
* MOVER 16384&amp;lt;br&amp;gt;&lt;br /&gt;
* AREAPORTAL 32768&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* PLAYERCLIP 65536&amp;lt;br&amp;gt;&lt;br /&gt;
* MONSTERCLIP 131072&amp;amp;deg;&amp;lt;br&amp;gt;&lt;br /&gt;
* TELEPORTER 262144&amp;lt;br&amp;gt;&lt;br /&gt;
* JUMPPAD 524288&amp;lt;br&amp;gt;&lt;br /&gt;
* CLUSTERPORTAL 1048576&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* DONOTENTER 2097152&amp;amp;deg;&amp;lt;br&amp;gt;&lt;br /&gt;
* DONOTENTER_LARGE 4194304&amp;amp;deg;&amp;lt;br&amp;gt;&lt;br /&gt;
* ORIGIN 16777216&amp;lt;br&amp;gt;&lt;br /&gt;
* BODY 33554432&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* CORPSE 67108864&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* DETAIL 134217728&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* STRUCTURAL 268435456&amp;amp;bull;&amp;lt;br&amp;gt;&lt;br /&gt;
* TRANSLUCENT 536870912&amp;lt;br&amp;gt;&lt;br /&gt;
* TRIGGER 1073741824&amp;lt;br&amp;gt;&lt;br /&gt;
* NODROP 2147483648&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not all of these surfaceflags will work, but the ones you will want to use should work. If you&#039;ve tested something and it doesn&#039;t work properly, send an email to dukeku AT theteamkillers DOT net and I&#039;ll fix it here.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;deg; These, as far as I know, are bot only commands - they will have no effect on other players.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;bull; These are flags that should not be used in a script, they&#039;re either reserved for strict-in game usage that doesn&#039;t relate to something that you would do in a script such as this, or are reserved for entities that are compiled into the map and have absolutely no use in game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=226 duke&#039;ku].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Scripting Examples by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=800 Rain]==&lt;br /&gt;
Additionally, players may modify keys on existing entities with the set command.&lt;br /&gt;
===Example 1: Oasis Axis Garrison spawn marker fix===&lt;br /&gt;
Here are a couple of examples from the oasis map script (etpro/maps/oasis.script):&lt;br /&gt;
&amp;lt;pre&amp;gt;axis_garrison_wobj&lt;br /&gt;
{&lt;br /&gt;
        spawn&lt;br /&gt;
        {&lt;br /&gt;
                set&lt;br /&gt;
                {&lt;br /&gt;
                        origin &amp;quot;7089 4852 -415&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
This changes the position of the spawn marker for the Axis garrison to (7089, 4852, -415). (This was done to correct player spawn location after setautospawn usage was fixed.)&lt;br /&gt;
===Example 2: Oasis caves water fix===&lt;br /&gt;
Here&#039;s another example:&lt;br /&gt;
&amp;lt;pre&amp;gt;water_tunnel&lt;br /&gt;
{&lt;br /&gt;
        spawn&lt;br /&gt;
        {&lt;br /&gt;
                // rain - these are put into the world as CONTENTS_SOLID,&lt;br /&gt;
                // which is a Bad Thing if WolfReviveBBox gets called&lt;br /&gt;
                // while we&#039;re in the water&lt;br /&gt;
                wait 100&lt;br /&gt;
                set&lt;br /&gt;
                {&lt;br /&gt;
                        contents 32 // CONTENTS_WATER&lt;br /&gt;
                        clipmask 32 // CONTENTS_WATER&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
        [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As described by the comments, this fixes the problem that sometimes caused players to be pushed around uncontrollably while underwater in the tunnel.&lt;br /&gt;
&lt;br /&gt;
Both create and set recognize some keys that can&#039;t normally be used while mapping. Normally, most of these are computed automatically (often at map compile time); however, there are some cases when the compiled value is unusable, and there are some cases where you might want to set these values when spawning a new entity.&lt;br /&gt;
&lt;br /&gt;
===Additional supported keys===&lt;br /&gt;
The additional keys supported are:&lt;br /&gt;
&amp;lt;table align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Key&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;mins&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A point describing the location of the lower corner of the bounding box.  (&#039;&#039;ent-&amp;amp;gt;r.mins&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;maxs&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A point describing the location of the upper corner of the bounding box.  (&#039;&#039;ent-&amp;amp;gt;r.maxs&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;contents&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Contents flags - description above (&#039;&#039;ent-&amp;amp;gt;r.contents&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;svflags&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Server flags (&#039;&#039;ent-&amp;amp;gt;r.svFlags&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;clipmask&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Brush content types to collide with. (&#039;&#039;ent-&amp;amp;gt;clipmask&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;count2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;entity-specific (&#039;&#039;ent-&amp;amp;gt;count2&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;eflags&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Entity flags (&#039;&#039;ent-&amp;amp;gt;s.eFlags&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;pos_trType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Position trajectory type (&#039;&#039;ent-&amp;amp;gt;s.pos.trType&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;pos_trDelta&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Position trajectory delta &amp;amp;#916; (&#039;&#039;ent-&amp;amp;gt;s.pos.trType&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;apos_trType&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Angle trajectory type (&#039;&#039;ent-&amp;amp;gt;s.apos.trType&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;pos_trDelta&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Angle trajectory delta &amp;amp;#916; (&#039;&#039;ent-&amp;amp;gt;s.apos.trType&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;classname_nospawn&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Changes the class name, but doesn&#039;t re-spawn the entity. (&#039;&#039;ent-&amp;amp;gt;classname&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;customaxisimage&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Custom command map image for the Axis team&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;customalliesimage&amp;lt;br&amp;gt;customalliedimage&amp;lt;/td&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;Custom command map image for the Allied team&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;allowteams&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Teams allowed to use an entity (&#039;&#039;ent-&amp;amp;gt;allowteams&#039;&#039;)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(You may wish to refer to the ET SDK for additional information.)&lt;br /&gt;
===The func_fakebrush entity===&lt;br /&gt;
Finally, ET Pro offers the func_fakebrush entity (also available by ORing EF_FAKEBMODEL (65536 or 0x10000) to eFlags), which allows the limited ability to spawn brush entities. The fake model must be a hexahedron, defined by mins and maxs, and will not work for all brush entity types.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=800 Rain].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Scripting Examples by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=1448 SiliconSlick]==&lt;br /&gt;
===Example 1: Additional Axis spawn in the trainyard tower on Railgun===&lt;br /&gt;
[http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=1448 SiliconSlick] made a [http://en.wikipedia.org/wiki/Diff diff] for the Railgun map script to provide the axis with an additional spawn point in the trainyard tower.&lt;br /&gt;
&amp;lt;pre&amp;gt;--- railgun.script.etpro.orig   Wed Mar 31 20:01:18 2004&lt;br /&gt;
+++ railgun.script      Mon Aug 23 10:11:08 2004&lt;br /&gt;
@@ -6,6 +6,83 @@&lt;br /&gt;
 {&lt;br /&gt;
        spawn&lt;br /&gt;
        {&lt;br /&gt;
+               // SS - new spawns for Axis&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       targetname &amp;quot;axistowermarker&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;axistowermarker&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       description &amp;quot;Axis Tower&amp;quot;&lt;br /&gt;
+                       origin &amp;quot;2050 5100 625&amp;quot;&lt;br /&gt;
+                       classname &amp;quot;team_WOLF_objective&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2000 5175 625&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;-45&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2000 5175 360&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;-45&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2100 5175 625&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;-135&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2100 5050 625&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;135&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2100 5050 360&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;135&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
+               create&lt;br /&gt;
+               {&lt;br /&gt;
+                       classname &amp;quot;team_CTF_redspawn&amp;quot;&lt;br /&gt;
+                       scriptname &amp;quot;redspawn_00&amp;quot;&lt;br /&gt;
+                       spawnflags 3&lt;br /&gt;
+                       origin &amp;quot;2000 5050 625&amp;quot;&lt;br /&gt;
+                       angle &amp;quot;45&amp;quot;&lt;br /&gt;
+                       mins &amp;quot;-30 -30 -30&amp;quot;&lt;br /&gt;
+                       maxs &amp;quot;30 30 30&amp;quot;&lt;br /&gt;
+               }&lt;br /&gt;
+&lt;br /&gt;
                //bani - bug fixes&lt;br /&gt;
                create&lt;br /&gt;
                { &amp;lt;/pre&amp;gt;&lt;br /&gt;
===Example 2: Depot Yard capture for Axis when Tug loaded on Railgun===&lt;br /&gt;
This is another diff that makes it so that when the first tug gets loaded with ammo, the Depot Yard spawn point gets captured permanently for the axis.&lt;br /&gt;
&amp;lt;pre&amp;gt;--- railgun.script.etpro.orig   Wed Mar 31 20:01:18 2004&lt;br /&gt;
+++ railgun.script      Mon Aug 23 10:11:08 2004 &lt;br /&gt;
@@ -3088,6 +3165,8 @@&lt;br /&gt;
                                                                                                                                                             &lt;br /&gt;
                wm_set_main_objective   2 0&lt;br /&gt;
                wm_set_main_objective   2 1&lt;br /&gt;
+&lt;br /&gt;
+               trigger depotflag axis_capture_forgood  // SS - depot now permanently axis&lt;br /&gt;
        }&lt;br /&gt;
 }&lt;br /&gt;
                                                                                                                                                             &lt;br /&gt;
@@ -6022,18 +6101,35 @@&lt;br /&gt;
                wait 200&lt;br /&gt;
                setstate capturespawn invisible&lt;br /&gt;
                accum 0 set 0&lt;br /&gt;
+               accum 1 set 0  // SS - nobody had flag last&lt;br /&gt;
        }&lt;br /&gt;
                                                                                                                                                             &lt;br /&gt;
        trigger axis_capture&lt;br /&gt;
        {&lt;br /&gt;
                trigger game_manager depotflagred&lt;br /&gt;
                trigger depotflag setaxis&lt;br /&gt;
+               accum 1 set 2  // SS - axis had flag last&lt;br /&gt;
+       }&lt;br /&gt;
+&lt;br /&gt;
+&lt;br /&gt;
+       // SS - give depot yard to axis permanently&lt;br /&gt;
+       trigger axis_capture_forgood&lt;br /&gt;
+       {&lt;br /&gt;
+               trigger game_manager depotflagred&lt;br /&gt;
+               trigger depotflag setaxis&lt;br /&gt;
+&lt;br /&gt;
+               alertentity depotspawn  // wake it up&lt;br /&gt;
+               setstate depotflag invisible  // remove flag&lt;br /&gt;
+               accum 1 abort_if_less_than 2  // should be done if allies or nobody had it&lt;br /&gt;
+               alertentity depotspawn  // switch to axis&lt;br /&gt;
+               wm_announce &amp;quot;Axis have permanently captured the Depot Yard!&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        trigger allied_capture&lt;br /&gt;
        {&lt;br /&gt;
                trigger game_manager depotflagblue&lt;br /&gt;
                trigger depotflag setallies&lt;br /&gt;
+               accum 1 set 1  // SS - allied had flag last&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        trigger setaxis &amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] and the [http://www.nd80usa.net/modules.php?name=Forums&amp;amp;file=viewtopic&amp;amp;t=11941&amp;amp;start=49 ND80 forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=1448 SiliconSlick].&#039;&#039;&#039;&lt;br /&gt;
==Unresolved issues==&lt;br /&gt;
===[http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=1859 Ragnar_40k]&#039;s destroyable team door on Radar===&lt;br /&gt;
I played around with the ETPro scripts and tried to make the axis team door next to the main gate satchable.&lt;br /&gt;
As first step I simply copied over the code for the battery backdoor and only changed the origin-key.&lt;br /&gt;
When I start the map I can throw a satchel next to the team door and get 7.5XP when I blast it. But I get no message and the teamdoor doesnt disapper.&lt;br /&gt;
It seems that the trigger &amp;quot;death&amp;quot; for &amp;quot;backdoor_obj&amp;quot; isn&#039;t called.&lt;br /&gt;
Can you say what is wrong?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
game_manager&lt;br /&gt;
{&lt;br /&gt;
   spawn&lt;br /&gt;
   {&lt;br /&gt;
      create&lt;br /&gt;
      {&lt;br /&gt;
         scriptName &amp;quot;backdoor&amp;quot;&lt;br /&gt;
         classname &amp;quot;func_explosive&amp;quot;&lt;br /&gt;
         targetname &amp;quot;backdoor&amp;quot;&lt;br /&gt;
         origin &amp;quot;-1518 16 1406&amp;quot;&lt;br /&gt;
         mins &amp;quot;-63 -10 0&amp;quot;&lt;br /&gt;
         maxs &amp;quot;63 10 128&amp;quot;&lt;br /&gt;
         spawnflags 1   // AXIS_OBJECTIVE(1)&lt;br /&gt;
         eflags 65536   // EF_FAKEBMODEL&lt;br /&gt;
         svflags 1   // SVF_NOCLIENT&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      create&lt;br /&gt;
      {&lt;br /&gt;
         scriptName &amp;quot;backdoor_obj&amp;quot;&lt;br /&gt;
         classname &amp;quot;trigger_objective_info&amp;quot;&lt;br /&gt;
         targetname &amp;quot;backdoor_obj&amp;quot;&lt;br /&gt;
         target &amp;quot;backdoor&amp;quot;&lt;br /&gt;
         origin &amp;quot;-1518 16 1406&amp;quot;&lt;br /&gt;
         mins &amp;quot;-95 -85 0&amp;quot;&lt;br /&gt;
         maxs &amp;quot;95 85 128&amp;quot;&lt;br /&gt;
         spawnflags 17   // AXIS_OBJECTIVE(1) | CUSTOMIMAGE&lt;br /&gt;
         track &amp;quot;the Back Door&amp;quot;&lt;br /&gt;
         shortname &amp;quot;Back Door&amp;quot;&lt;br /&gt;
         customaxisimage &amp;quot;gfx/limbo/cm_radar_maindoor&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
               .&lt;br /&gt;
               .&lt;br /&gt;
               .&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
backdoor&lt;br /&gt;
{&lt;br /&gt;
   spawn&lt;br /&gt;
   {&lt;br /&gt;
      wait 50&lt;br /&gt;
      constructible_class 2&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
backdoor_obj&lt;br /&gt;
{&lt;br /&gt;
   death&lt;br /&gt;
   {&lt;br /&gt;
      wm_announce &amp;quot;Allied team has destroyed the Axis Team Door!&amp;quot;&lt;br /&gt;
      trigger teamonlydoor1 hide&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
teamonlydoor1&lt;br /&gt;
{&lt;br /&gt;
   trigger hide&lt;br /&gt;
   {&lt;br /&gt;
      remove&lt;br /&gt;
      // setstate teamonlydoor1 invisible&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
The trigger backdoor_obj-&amp;gt;death isn&#039;t called (I don&#039;t see the text from the wm_announce) . But the func_explosive &amp;quot;backdoor&amp;quot; I created is deystroyed (I get the XP for it).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=1859 Ragnar_40k].&#039;&#039;&#039;&lt;br /&gt;
===[http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=2786 MoB Seany]&#039;s Health and Ammo Cabinets===&lt;br /&gt;
Ok, now I want to get it to show up on the command map&lt;br /&gt;
I already have&lt;br /&gt;
&amp;lt;pre&amp;gt;game_manager&lt;br /&gt;
{&lt;br /&gt;
spawn&lt;br /&gt;
            {&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        targetname &amp;quot;ammo&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;ammo&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1373 -1100 192&amp;quot;&lt;br /&gt;
        classname &amp;quot;misc_cabinet_supply&amp;quot;&lt;br /&gt;
        angle &amp;quot;270&amp;quot;&lt;br /&gt;
        mins &amp;quot;-45 -45 -25&amp;quot;&lt;br /&gt;
        maxs &amp;quot;45 45 25&amp;quot;&lt;br /&gt;
        ammototal &amp;quot;100&amp;quot;&lt;br /&gt;
        modelscale &amp;quot;1&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
        model &amp;quot;models/mapobjects/supplystands/stand_ammo.md3&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        target &amp;quot;ammo&amp;quot;&lt;br /&gt;
        ammototal &amp;quot;40&amp;quot;&lt;br /&gt;
        ammorate &amp;quot;1&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1373 -1100 192&amp;quot;&lt;br /&gt;
        classname &amp;quot;trigger_ammo&amp;quot;&lt;br /&gt;
        targetname &amp;quot;ammoarea&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;ammoarea&amp;quot;&lt;br /&gt;
        modelscale &amp;quot;1&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        mins &amp;quot;-45 -45 -25&amp;quot;&lt;br /&gt;
        maxs &amp;quot;45 45 25&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        targetname &amp;quot;health&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;health&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1488 -1175 192&amp;quot;&lt;br /&gt;
        classname &amp;quot;misc_cabinet_health&amp;quot;&lt;br /&gt;
        angle &amp;quot;360&amp;quot;&lt;br /&gt;
        mins &amp;quot;-45 -45 -25&amp;quot;&lt;br /&gt;
        maxs &amp;quot;45 45 25&amp;quot;&lt;br /&gt;
        modelscale &amp;quot;1&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
        model &amp;quot;models/mapobjects/supplystands/stand_ammo.md3&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        target &amp;quot;health&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;healtharea&amp;quot;&lt;br /&gt;
        targetname &amp;quot;healtharea&amp;quot;&lt;br /&gt;
        classname &amp;quot;trigger_heal&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1488 -1175 192&amp;quot;&lt;br /&gt;
        healtotal &amp;quot;400&amp;quot;&lt;br /&gt;
        healrate &amp;quot;10&amp;quot;&lt;br /&gt;
        modelscale &amp;quot;1&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        mins &amp;quot;-45 -45-25&amp;quot;&lt;br /&gt;
        maxs &amp;quot;45 45 25&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        classname &amp;quot;trigger_objective_info&amp;quot;&lt;br /&gt;
        target &amp;quot;help_marker_toi&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;ammo_info_toi&amp;quot;&lt;br /&gt;
        track &amp;quot;Health and Ammo Cabinets&amp;quot;&lt;br /&gt;
        targetname &amp;quot;ammo_info_toi&amp;quot;&lt;br /&gt;
        shortname &amp;quot;Health and Ammo Cabinets&amp;quot;&lt;br /&gt;
        spawnflags &amp;quot;is_healthammocabinet&amp;quot;&lt;br /&gt;
        customimage &amp;quot;gfx/limbo/cm_healthammo&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1352 -1179 256&amp;quot;&lt;br /&gt;
        modelscale &amp;quot;1&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        mins &amp;quot;-45 -45-25&amp;quot;&lt;br /&gt;
        maxs &amp;quot;45 45 25&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
   &lt;br /&gt;
      }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
        classname &amp;quot;misc_commandmap_marker&amp;quot;&lt;br /&gt;
        scriptname &amp;quot;help_marker_toi&amp;quot;&lt;br /&gt;
        targetname &amp;quot;help_marker_toi&amp;quot;&lt;br /&gt;
        contents &amp;quot;1&amp;quot;&lt;br /&gt;
        clipmask &amp;quot;1&amp;quot;&lt;br /&gt;
        origin &amp;quot;-1488 -1175 192&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
                 }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
Its works and has a &amp;quot;You are near Health and Ammo&amp;quot; message, but what do I need to do to get it to show up ont he command map?&lt;br /&gt;
I did have script_mover parts as well before I removed them:&lt;br /&gt;
&amp;lt;pre&amp;gt;create&lt;br /&gt;
      {&lt;br /&gt;
     targetname &amp;quot;ammo_clip&amp;quot;&lt;br /&gt;
     scriptname &amp;quot;ammo_clip&amp;quot;&lt;br /&gt;
     classname &amp;quot;script_mover&amp;quot;&lt;br /&gt;
     spawnflags &amp;quot;2&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
create&lt;br /&gt;
      {&lt;br /&gt;
     targetname &amp;quot;health_clip&amp;quot;&lt;br /&gt;
     scriptname &amp;quot;health_clip&amp;quot;&lt;br /&gt;
     classname &amp;quot;script_mover&amp;quot;&lt;br /&gt;
         spawnflags &amp;quot;2&amp;quot;&lt;br /&gt;
                           }&amp;lt;/pre&amp;gt;&lt;br /&gt;
But, no matter what properties i removed, it still said a model was required for script_mover. Is a script_mover class really that important? And if so, what do I need to do to fix it? If not, then what must be done for it to show up on the command map? Thanks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Originally posted in the [http://bani.anime.net/banimod/forums/ ETPro forums] by [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=2786 MoB Seany].&#039;&#039;&#039;&lt;br /&gt;
[[Category:ETPro]][[Category:ETPro Mapping]]&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Template_talk:Wrongtitle&amp;diff=1703</id>
		<title>Template talk:Wrongtitle</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Template_talk:Wrongtitle&amp;diff=1703"/>
		<updated>2005-11-13T16:19:06Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This doesn&#039;t seem to work, although it&#039;s just copy/pasted from Wikipedia. Time for a MediaWiki update? --Rookie One 08:19, 13 November 2005 (PST)&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=User:Rookie_One&amp;diff=1702</id>
		<title>User:Rookie One</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=User:Rookie_One&amp;diff=1702"/>
		<updated>2005-11-13T16:16:11Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [http://bani.anime.net/banimod/forums/profile.php?mode=viewprofile&amp;amp;u=4183 Rookie One] ==&lt;br /&gt;
&amp;lt;table witdh=100% height=100&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td width=400 align=center valign=center&amp;gt;http://a.deviantart.com/avatars/r/o/rookie0ne.jpg&amp;lt;/td&amp;gt;&amp;lt;td width=100% align=left valign=center&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Game modding&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;[http://www.moh.gamesnet.pl/rookieone/?lang=english Rookie One&#039;s Command Post] &#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Other stuff&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;[http://rookie0ne.deviantart.com/ My DeviantArt profile]&#039;&#039;&lt;br /&gt;
** &#039;&#039;[http://rookie0ne.dmusic.com/ My dmusic profile]&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Currently playing around with [[ETPro]]&#039;s new [[ETPro:Lua_Mod_API|server-side mod]] ability. :)&amp;lt;br&amp;gt;Also an overzealous WoflWiki contributor, causing much mess. :S&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
== Contact ==&lt;br /&gt;
* &#039;&#039;&#039;E-mail/MSN:&#039;&#039;&#039; rookie underscore one at army dot com&lt;br /&gt;
* &#039;&#039;&#039;[http://en.wikipedia.org/wiki/Jabber Jabber]:&#039;&#039;&#039; r00kie underscore 0ne at chrome dot pl&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Template:Selfref&amp;diff=1701</id>
		<title>Template:Selfref</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Template:Selfref&amp;diff=1701"/>
		<updated>2005-11-13T16:14:02Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:{{{1}}}&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Template:Selfref&amp;diff=1700</id>
		<title>Template:Selfref</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Template:Selfref&amp;diff=1700"/>
		<updated>2005-11-13T16:13:15Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:&amp;lt;tt&amp;gt;{{{1}}}&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Template:Selfref&amp;diff=1699</id>
		<title>Template:Selfref</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Template:Selfref&amp;diff=1699"/>
		<updated>2005-11-13T16:12:08Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:&#039;&#039;&amp;lt;tt&amp;gt;{{{1}}}&amp;lt;/tt&amp;gt;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
	<entry>
		<id>https://wolfwiki.anime.net/index.php?title=Template:Wrongtitle&amp;diff=1698</id>
		<title>Template:Wrongtitle</title>
		<link rel="alternate" type="text/html" href="https://wolfwiki.anime.net/index.php?title=Template:Wrongtitle&amp;diff=1698"/>
		<updated>2005-11-13T16:09:19Z</updated>

		<summary type="html">&lt;p&gt;Rookie One: Just thought this might come in handy.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{selfref|The title of this article is incorrect due to [http://en.wikipedia.org/wiki/Wikipedia:Naming_conventions_%28technical_restrictions%29 technical restrictions].  The correct title is&#039;&#039; &#039;&#039;&#039;{{{title|{{{1}}}}}}&#039;&#039;&#039;.}}&lt;/div&gt;</summary>
		<author><name>Rookie One</name></author>
	</entry>
</feed>