<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ikinz</id>
	<title>Spring - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ikinz"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/Ikinz"/>
	<updated>2026-11-08T22:49:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=GamesDownloads&amp;diff=9243</id>
		<title>GamesDownloads</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=GamesDownloads&amp;diff=9243"/>
		<updated>2017-03-03T14:01:40Z</updated>

		<summary type="html">&lt;p&gt;Ikinz: ZKL doesn&amp;#039;t exist anymore, SWL shows all games by default.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#css:&lt;br /&gt;
  table.glossy {&lt;br /&gt;
    width: 200px;&lt;br /&gt;
    margin: 9px; padding:3px;&lt;br /&gt;
    border: 1px solid rgba(0,0,0,0.5);&lt;br /&gt;
    border-radius: 10px 10px 10px 10px;&lt;br /&gt;
    box-shadow: 0 2px 6px rgba(0,0,0,0.5), inset 0 1px rgba(255,255,255,0.3), inset 0 10px rgba(255,255,255,0.2), inset 0 10px 20px rgba(255,255,255,0.25), inset 0 -15px 30px rgba(0,0,0,0.3);&lt;br /&gt;
    text-align: center;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /*#installers img {&lt;br /&gt;
    border: 1px solid rgba(0,0,0,0.5);&lt;br /&gt;
    box-shadow: 0px -1px 3px rgba(0,0,0,0.8), 0px 1px 3px rgba(255,255,255,0.5);&lt;br /&gt;
  }*/&lt;br /&gt;
&lt;br /&gt;
  /*table.glossy:hover {&lt;br /&gt;
    background: rgba(160,160,220,0.4);&lt;br /&gt;
  }*/&lt;br /&gt;
}}&lt;br /&gt;
[[Download]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
= Spring Lobby =&lt;br /&gt;
&lt;br /&gt;
For the Spring engine and a variety of games to play on it! Online battlerooms and singleplayer. Also, there is a lobby to chat in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-left:7px&amp;quot;&amp;gt;&lt;br /&gt;
{{Template:GamesDownload|name=SpringLobby|image=Springlobby_64.png|url=http://springlobby.info/}}&lt;br /&gt;
 The easiest way to play: download SpringLobby, join the Spring server and enter an online battleroom.&lt;br /&gt;
&lt;br /&gt;
{{Template:GamesDownload|name=Spring Web Lobby|image=Blobby.png|url=http://weblobby.springrts.com}}&lt;br /&gt;
A well featured lobby that can be used to play any game. (Windows &amp;amp; Linux)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual game installers ==&lt;br /&gt;
A handful of Spring games also provide their own installers (and/or other infrastructure). These usually contain everything you need to play that game, but they might not allow you to play other games too.&lt;br /&gt;
&amp;lt;div id=&amp;quot;installers&amp;quot; style=&amp;quot;padding-left:7px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Template:GamesDownload|name=Zero-K|image=eclipse.jpg|url=http://zero-k.info/Wiki/Download}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;(!)&amp;lt;/span&amp;gt; Zero-K uses a separate server that does not fully support other Spring games. (Windows &amp;amp; Linux (mono))&lt;br /&gt;
&lt;br /&gt;
{{Template:GamesDownload|name=NOTA|image=notAgame02.jpg|url=http://nota.machys.net/downloads}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;(!)&amp;lt;/span&amp;gt; This lobby is limited to playing NOTA. (Windows &amp;amp; Linux &amp;amp; Mac OS X)&lt;br /&gt;
&lt;br /&gt;
{{Template:GamesDownload|name=Spring 1944|image=S44_tigers.jpg|notAs44lobby|url=https://trello.com/c/XllGyMqI/}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;(!)&amp;lt;/span&amp;gt; This lobby is limited to playing Spring 1944, NOTA and Kernel Panic. (Windows &amp;amp; Linux)&lt;br /&gt;
&lt;br /&gt;
{{Template:GamesDownload|name=Kernel Panic|image=Kernel_Panic_3.4.jpg|url=http://springfiles.com/spring/game-installers/kernel-panic-installer}} &amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;(!)&amp;lt;/span&amp;gt;  Old engine version included. Experience of online play might be hampered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more Spring games, check out the [[Games]] page. Please note that some of them will require you to have the engine installed in order to work, as well as some maps, as they don&#039;t come with their own installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Spring]]&lt;/div&gt;</summary>
		<author><name>Ikinz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Lobby_Development&amp;diff=10646</id>
		<title>Lobby Development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Lobby_Development&amp;diff=10646"/>
		<updated>2015-12-25T10:41:09Z</updated>

		<summary type="html">&lt;p&gt;Ikinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
&lt;br /&gt;
==Protocol==&lt;br /&gt;
* [http://springrts.com/dl/LobbyProtocol/ HTML] (is updated once a day)&lt;br /&gt;
* [https://github.com/spring/LobbyProtocol/blob/master/ProtocolDescription.xml XML] (raw, always latest)&lt;br /&gt;
&lt;br /&gt;
==Download Systems==&lt;br /&gt;
* [http://springrts.com/wiki/Dev:LobbyDownloadSystems Lobby Download Systems]&lt;br /&gt;
&lt;br /&gt;
=Lobby client development=&lt;br /&gt;
&lt;br /&gt;
==Useable lobby clients==&lt;br /&gt;
&lt;br /&gt;
===[[SpringLobby]]===&lt;br /&gt;
&lt;br /&gt;
===flobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Linux&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C++&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;cleanrock&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/cleanrock/flobby github page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Weblobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C++&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;CarRepairer&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://weblobby.springrts.com project site]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==WIP, abandoned or unusable==&lt;br /&gt;
&lt;br /&gt;
===[[TASClient]]===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Windows&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Delphi&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;unmaintained&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Alphalobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Windows&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;unmaintained&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alphalobby is still very much work in progress. If you still wish to use it, source available from the [http://code.google.com/p/alphalobby/source/checkout mercurial repository], binary available on the [http://springfiles.com/spring/lobby-clients/alphalobby springfiles page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CheeseLobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Java&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;Cheesecan&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://springrts.com/phpbb/viewtopic.php?f=64&amp;amp;t=24905 forum thread]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/jahwag/cheeselobby binaries and code]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===QtLobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C++&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;unmaintained&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/tizbac/qtlobby project page]&lt;br /&gt;
&lt;br /&gt;
===muslce===&lt;br /&gt;
&lt;br /&gt;
Most useless spring lobby client ever&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;android&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;java&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;unmaintained&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://springrts.massive.ch/muslce/Muslce-20130617.tar.bz2&lt;br /&gt;
&lt;br /&gt;
===Zero-K Lobby===&lt;br /&gt;
&lt;br /&gt;
No longer uses the Spring lobby protocol&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Windows/Linux&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C#&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;Licho&amp;lt;/font&amp;gt; &amp;amp; &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;quantum&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://github.com/ZeroK-RTS/Zero-K-Infrastructure/tree/master/ZeroKLobby Zero-K Lobby github]&lt;br /&gt;
&lt;br /&gt;
=Libraries and frameworks=&lt;br /&gt;
&lt;br /&gt;
==Spring-PythonBotFramework==&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Python&amp;lt;/font&amp;gt;, by&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;BrainDamage&amp;lt;/font&amp;gt; &amp;amp; &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;koshi&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A bot framework written in python. [https://github.com/renemilk/tasbot/wiki GitHub wiki]&lt;br /&gt;
&lt;br /&gt;
==Go SpringLobbyClient==&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Go&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A simple client implementation of the lobby protocol in Go.&lt;br /&gt;
[https://github.com/Agon/go-slc/ project page]&lt;br /&gt;
&lt;br /&gt;
=Lobby server development=&lt;br /&gt;
==Actively maintained==&lt;br /&gt;
===UberServer===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Python&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;aegis&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The primary lobby server currently running on springrts.com. Most protocol commands in the primary documentation should be fully-functional and compatible between both uberserver and SpringLS (SpringLS hasn&#039;t seen as many updates recently). See the dedicated [[uberserver]] for more info.&lt;br /&gt;
&lt;br /&gt;
===ZeroK Server===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C#&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;Licho&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zero-K lobby server. Uses a different protocol. Source can be found at&lt;br /&gt;
https://github.com/ZeroK-RTS/Zero-K-Infrastructure/tree/master/ZkLobbyServer&lt;br /&gt;
&lt;br /&gt;
==Abandoned==&lt;br /&gt;
===SpringLS===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Java&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;hoijui&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The longest-running lobby server, created by Betalord. You can fetch the sources through &#039;&#039;git&#039;&#039;. Details can be found on the [http://github.com/spring/SpringLS development site].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Lobby]]&lt;/div&gt;</summary>
		<author><name>Ikinz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Lua_OpenGL_Api&amp;diff=11495</id>
		<title>Lua OpenGL Api</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Lua_OpenGL_Api&amp;diff=11495"/>
		<updated>2015-06-06T11:16:56Z</updated>

		<summary type="html">&lt;p&gt;Ikinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; [[Lua_Scripting|Lua Scripting]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
= Spring =&lt;br /&gt;
&#039;&#039;&#039;gl.GetSun&#039;&#039;&#039;&lt;br /&gt;
  &amp;lt;font style=&amp;quot;font-size:90%&amp;quot;&amp;gt;()        -&amp;gt; number sunPosX, number sunPosY, number sunPosZ&lt;br /&gt;
  ( &amp;quot;pos&amp;quot; ) -&amp;gt; number sunPosX, number sunPosY, number sunPosZ&lt;br /&gt;
  ( &amp;quot;shadowDensity&amp;quot; [, &amp;quot;unit&amp;quot;] ) -&amp;gt; number shadowDensity&lt;br /&gt;
  ( &amp;quot;diffuse&amp;quot;       [, &amp;quot;unit&amp;quot;] ) -&amp;gt; nil | number r, number g, number b&lt;br /&gt;
  ( &amp;quot;ambient&amp;quot;       [, &amp;quot;unit&amp;quot;] ) -&amp;gt; nil | number r, number g, number b&lt;br /&gt;
  ( &amp;quot;specular&amp;quot; )                 -&amp;gt; nil | number r, number g, number b&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.ConfigScreen&#039;&#039;&#039; &amp;lt;span class=&amp;quot;note&amp;quot;&amp;gt;used for Unit LODs&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( number screenWidth, number screenDistance ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.DrawMiniMap&#039;&#039;&#039; &amp;lt;span class=&amp;quot;note&amp;quot;&amp;gt;argument new in 0.82+&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( &amp;lt;span class=&amp;quot;note&amp;quot;&amp;gt;boolean tansform = true&amp;lt;/span&amp;gt; ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.SlaveMiniMap&#039;&#039;&#039;&lt;br /&gt;
  ( boolean mode ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.ConfigMiniMap&#039;&#039;&#039;&lt;br /&gt;
  ( int px, int py, int sx, int sy ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.GetViewSizes&#039;&#039;&#039;&lt;br /&gt;
  ( ) -&amp;gt; number x, number y&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Matrices &amp;amp; Viewport =&lt;br /&gt;
&#039;&#039;&#039;gl.Viewport&#039;&#039;&#039;&lt;br /&gt;
  ( number x, number y, number w, number h ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.PushMatrix&#039;&#039;&#039;&lt;br /&gt;
  () -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.PopMatrix&#039;&#039;&#039;&lt;br /&gt;
  () -&amp;gt; nil&lt;br /&gt;
	&lt;br /&gt;
&#039;&#039;&#039;gl.Translate&#039;&#039;&#039;&lt;br /&gt;
  (number x, number y, number z) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Scale&#039;&#039;&#039;&lt;br /&gt;
  ( number x, number y, number z ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Rotate&#039;&#039;&#039;&lt;br /&gt;
  ( number angle, number x, number y, number z ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Billboard&#039;&#039;&#039;&lt;br /&gt;
  ( ) -&amp;gt; nil&lt;br /&gt;
&amp;lt;span class=note&amp;gt;Use this to draw 2d primitives in DrawWorld().&lt;br /&gt;
To render a 2D billboarded quad in the gameworld at world position x,y,z, you do the following (at a minimum; I am skipping blending / depthtesting) here:&lt;br /&gt;
  gl.PushMatrix()&lt;br /&gt;
  gl.Texture(read what you need here)&lt;br /&gt;
  gl.Translate(x,y,z)&lt;br /&gt;
  gl.Billboard()			&lt;br /&gt;
  gl.TexRect(x1,y1,x2,y2)&lt;br /&gt;
  gl.PopMatrix()&amp;lt;/span &amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.MatrixMode&#039;&#039;&#039;&lt;br /&gt;
  ( number [[Lua_ConstGL#MatrixMode|mode]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.LoadIdentity&#039;&#039;&#039;&lt;br /&gt;
  ( ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.LoadMatrix&#039;&#039;&#039;&lt;br /&gt;
  ( 16 numbers or a [https://github.com/spring/spring/blob/develop/rts/Lua/LuaOpenGLUtils.cpp#L60 matrix name] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.MultMatrix&#039;&#039;&#039;&lt;br /&gt;
  ( ?? ) -&amp;gt; ??&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Ortho&#039;&#039;&#039;&lt;br /&gt;
  ( number left, number right, number bottom, number top, number near, number far ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Frustum&#039;&#039;&#039;&lt;br /&gt;
  ( number left, number right, number bottom, number top, number near, number far ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.PushPopMatrix&#039;&#039;&#039;&lt;br /&gt;
  ( ?? ) -&amp;gt; ??&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.ClipPlane&#039;&#039;&#039;&lt;br /&gt;
  ( int plane, &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;note: $plane can only be 1 or 2&amp;lt;/font&amp;gt;&lt;br /&gt;
  boolean enable |&lt;br /&gt;
  number A, number B, number C, number D ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Clear =&lt;br /&gt;
&#039;&#039;&#039;gl.Clear&#039;&#039;&#039;&lt;br /&gt;
  ( GL.DEPTH_BUFFER_BIT [, number cleardepth] ) -&amp;gt; nil&lt;br /&gt;
  ( GL.STENCIL_BUFFER_BIT [, int clearstencil] ) -&amp;gt; nil&lt;br /&gt;
  ( GL.COLOR_BUFFER_BIT | GL.ACCUM_BUFFER_BIT [, number r, number g, number b, number a] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= ResetState/Matrices =&lt;br /&gt;
&#039;&#039;&#039;gl.ResetState&#039;&#039;&#039; &amp;lt;span class=&amp;quot;warning&amp;quot;&amp;gt;DON&#039;T USE IT UNLESS YOU KNOW WHAT YOU ARE DOING! Each call-in has different default states, but this function resets all states to the states below no matter what!&amp;lt;/span&amp;gt;&lt;br /&gt;
  () -&amp;gt; nil&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;&lt;br /&gt;
  ShadeModel = GL.SMOOTH&lt;br /&gt;
  Scissor    = false&lt;br /&gt;
  Texture    = false&lt;br /&gt;
  Lighting    = false,&lt;br /&gt;
  ColorMask  = true, true, true, true&lt;br /&gt;
  DepthMask  = false&lt;br /&gt;
  DepthTest  = false  (GL.LEQUAL)&lt;br /&gt;
  Culling    = false  (GL.BACK)&lt;br /&gt;
  LogicOp    = false  (GL.INVERT)&lt;br /&gt;
  AlphaTest  = false  (GL.GREATER, 0.5f)&lt;br /&gt;
  Blending   = true (GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA)&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.ResetMatrices&#039;&#039;&#039;&lt;br /&gt;
  () -&amp;gt; nil&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;&lt;br /&gt;
  Resets GL.TEXTURE matrix stack&lt;br /&gt;
  Resets GL.MODELVIEW matrix stack&lt;br /&gt;
  Resets GL.PROJECTION matrix stack&lt;br /&gt;
&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Draw Basics =&lt;br /&gt;
&#039;&#039;&#039;gl.BeginEnd&#039;&#039;&#039;&lt;br /&gt;
  ( number [[Lua_ConstGL#Drawing_Primitives|GLType]], function [, arg1,... ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Color&#039;&#039;&#039;&lt;br /&gt;
  ( { number r, number g, number b[, number a] } |&lt;br /&gt;
      number r, number g, number b[, number a] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Vertex&#039;&#039;&#039;&lt;br /&gt;
  ( { number x, number y [, number z [, number w ]] } |&lt;br /&gt;
    number x, number y |&lt;br /&gt;
    number x, number y, number z |&lt;br /&gt;
    number x, number y, number z, number w ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Normal&#039;&#039;&#039;&lt;br /&gt;
  (  number x, number y, number z |&lt;br /&gt;
   { number x, number y, number z } ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.EdgeFlag&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Rect&#039;&#039;&#039;&lt;br /&gt;
  ( number x1, number y1, number x2, number y2 ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.TexRect&#039;&#039;&#039; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;texture rect&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number x1, number y1, number x2, number y2,&lt;br /&gt;
  [ boolean flip_s, boolean flip_t | number s1, number t1, number s2, number t2 ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Shape&#039;&#039;&#039;&lt;br /&gt;
 ( number [[Lua_ConstGL#Drawing_Primitives|GLtype]],&lt;br /&gt;
   elements = {&lt;br /&gt;
     [1] = { v | vertex   = { number x, number y, number z },           &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;required&amp;lt;/font&amp;gt;&lt;br /&gt;
             n | normal   = { number x, number y, number z },           &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;optional&amp;lt;/font&amp;gt;&lt;br /&gt;
             t | texcoord = { number x, number y },                     &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;optional&amp;lt;/font&amp;gt;&lt;br /&gt;
             c | color    = { number r, number g, number b, number a }  &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;optional&amp;lt;/font&amp;gt;&lt;br /&gt;
     },&lt;br /&gt;
     etc ...&lt;br /&gt;
   }&lt;br /&gt;
 ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.SecondaryColor&#039;&#039;&#039;&lt;br /&gt;
  ( { number r, number g, number b } |&lt;br /&gt;
      number r, number g, number b ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.FogCoord&#039;&#039;&#039;&lt;br /&gt;
  ( number value ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Display Lists =&lt;br /&gt;
&amp;lt;span class=note&amp;gt;Display Lists save given vertex attributes in a static buffer, so the GPU can directly read them (without the CPU). Display Lists are a lot faster (10-60x) than standard drawing with glShape/glBeginEnd, so try to use them when ever you can. If you want to learn more about them, g00gle is your friend ;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.CreateList&#039;&#039;&#039;&lt;br /&gt;
  ( function [,arg1 [,arg2...]] ) -&amp;gt; number listID&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.CallList&#039;&#039;&#039;&lt;br /&gt;
  ( number listID ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.DeleteList&#039;&#039;&#039;&lt;br /&gt;
  ( number listID ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Text =&lt;br /&gt;
&#039;&#039;&#039;gl.Text&#039;&#039;&#039;&lt;br /&gt;
  (string &amp;quot;text&amp;quot;, number x, number y, number size [, string &amp;lt;span class=note&amp;gt;&amp;quot;options&amp;quot;&amp;lt;/span&amp;gt;] )&lt;br /&gt;
&amp;lt;span class=note&amp;gt;&lt;br /&gt;
  options are:&lt;br /&gt;
    horizontal alignment:&lt;br /&gt;
       &#039;c&#039; = center&lt;br /&gt;
       &#039;r&#039; = right&lt;br /&gt;
    vertical alignment:&lt;br /&gt;
       &#039;a&#039; = ascender&lt;br /&gt;
       &#039;t&#039; = top&lt;br /&gt;
       &#039;v&#039; = vertical center&lt;br /&gt;
       &#039;x&#039; = baseline&lt;br /&gt;
       &#039;b&#039; = bottom&lt;br /&gt;
       &#039;d&#039; = descender&lt;br /&gt;
    decorations:&lt;br /&gt;
       &#039;o&#039; = black outline&lt;br /&gt;
       &#039;O&#039; = white outline&lt;br /&gt;
       &#039;s&#039; = shadow&lt;br /&gt;
    other:&lt;br /&gt;
       &#039;n&#039; = don&#039;t round vertex coords to nearest integer (font may get blurry)&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
http://home.arcor.de/jkei/fontlines.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.GetTextWidth&#039;&#039;&#039;&lt;br /&gt;
  (string &amp;quot;text&amp;quot;) -&amp;gt; number width  &amp;lt;span class=note&amp;gt;(in pixels, with a font size of 1.0)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.GetTextHeight&#039;&#039;&#039;&lt;br /&gt;
  ( string &amp;quot;text&amp;quot; ) -&amp;gt; nil | number height, number descender, number numlines &amp;lt;span class=note&amp;gt;(in pixels, with a font size of 1.0)&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=note&amp;gt;further descriptions here: [[GetTextHeight]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=note&amp;gt;&amp;lt;b&amp;gt;If you have multiple gl.Text calls, then you can bunch them between a gl.BeginText and gl.EndText to speedup the rendering.&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;gl.BeginText&#039;&#039;&#039;&lt;br /&gt;
  ( ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;gl.EndText&#039;&#039;&#039;&lt;br /&gt;
  ( ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Unit/Feature Draw Functions =&lt;br /&gt;
&#039;&#039;&#039;gl.Unit&#039;&#039;&#039; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;(draws an unit; on default it uses LOD, with lod&amp;lt;0 it is turned off, else it defines a specific level)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, [ boolean rawdraw, int lod ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.UnitRaw&#039;&#039;&#039; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;(doesn&#039;t apply worldspace-&amp;gt;unit transformation! only works if &amp;lt;i&amp;gt;rawdraw&amp;lt;/i&amp;gt; is true )&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, [ boolean rawdraw, int lod ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.UnitShape&#039;&#039;&#039;&lt;br /&gt;
  ( number unitDefID, number teamID ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Feature&#039;&#039;&#039;&lt;br /&gt;
  ( number featureID ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.FeatureShape&#039;&#039;&#039;&lt;br /&gt;
  ( number featureDefID, number teamID ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.UnitMultMatrix&#039;&#039;&#039; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;(world space -&amp;gt; unit space)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.UnitPieceMultMatrix&#039;&#039;&#039; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;(unit space -&amp;gt; piece space)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, int piece ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.UnitPiece&#039;&#039;&#039; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;(draws the unit piece)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, int piece ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.UnitPieceMatrix&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(use gl.UnitPieceMultMatrix instead!)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number unitID, int piece ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.DrawListAtUnit&#039;&#039;&#039;&lt;br /&gt;
  ( number unitID, number listID, [ boolean midPos,&lt;br /&gt;
      number scaleX, number scaleY, number scaleZ,&lt;br /&gt;
      number degrees, number rotX, number rotX, number rotZ ] ) -&amp;gt; nil &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.DrawFuncAtUnit&#039;&#039;&#039;&lt;br /&gt;
  ( number unitID, boolean midPos, function [, arg1,... ]) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= States (Blending,AlphaTest...) =&lt;br /&gt;
&#039;&#039;&#039;gl.Blending&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable | number [[Lua_ConstGL#BlendingFactorSrc|srcmode]], number [[Lua_ConstGL#BlendingFactorDest|dstmode]] ) -&amp;gt; nil&lt;br /&gt;
  ( string &amp;lt;span class=note&amp;gt;mode&amp;lt;/span&amp;gt; ) -&amp;gt; nil&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin-top: -5px; margin-left:5px&amp;quot;&lt;br /&gt;
! style=&amp;quot;color:#55ee99&amp;quot; | mode maybe:&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | &amp;quot;add&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = GL.ONE, GL.ONE&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | &amp;quot;alpha_add&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = GL.SRC_ALPHA, GL.ONE&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | &amp;quot;alpha&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | &amp;quot;reset&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | &amp;quot;color&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = GL.SRC_COLOR, GL.ONE_MINUS_SRC_ALPHA&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | &amp;quot;modulate&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = GL.DST_COLOR, GL.ZERO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | &amp;quot;disable&amp;quot;&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = GL.SRC_ALPHA, GL.ONE_MINUS_SRC_ALPHA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.BlendEquation&#039;&#039;&#039;&lt;br /&gt;
  ( number mode ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.BlendFunc&#039;&#039;&#039;&lt;br /&gt;
  ( number [[Lua_ConstGL#BlendingFactorSrc|srcmode]], number [[Lua_ConstGL#BlendingFactorDest|dstmode]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.BlendEquationSeparate&#039;&#039;&#039; &amp;lt;span class=warning&amp;gt;(needs openGL2.0!)&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( number modeRGB, number modeAlpha ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.BlendFuncSeparate&#039;&#039;&#039; &amp;lt;span class=warning&amp;gt;(needs openGL2.0!)&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( number [[Lua_ConstGL#BlendingFactorSrc|srcRGB]], number [[Lua_ConstGL#BlendingFactorDest|dstRGB]],  number [[Lua_ConstGL#BlendingFactorSrc|srcAlpha]], number [[Lua_ConstGL#BlendingFactorDest|dstAlpha]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.AlphaTest&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable | number [[Lua_ConstGL#AlphaFunction and  DepthFunction|func]], number threshold ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.DepthTest&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable | number [[Lua_ConstGL#AlphaFunction and  DepthFunction|func]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Culling&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable | number [[Lua_ConstGL#Culling|face]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.DepthClamp&#039;&#039;&#039;  &amp;lt;span class=warning&amp;gt;not always available, needs GL.NV_depth_clamp!&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( boolean enable ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.DepthMask&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.ColorMask&#039;&#039;&#039;&lt;br /&gt;
  ( boolean ) -&amp;gt; nil&lt;br /&gt;
  ( boolean r, boolean g, boolean b, boolean a ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.LogicOp&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable | number [[Lua_ConstGL#LogicOp|func]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Fog&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Smoothing&#039;&#039;&#039;&lt;br /&gt;
 ( (boolean enable | number POINT), &lt;br /&gt;
   (boolean enable | number LINE),&lt;br /&gt;
   (boolean enable | number POLYGON) ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.EdgeFlag&#039;&#039;&#039;&lt;br /&gt;
 ( boolean enable ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Scissor&#039;&#039;&#039;&lt;br /&gt;
  ( boolean ) -&amp;gt; nil&lt;br /&gt;
  ( int x, int y, int w, int h ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.LineStipple&#039;&#039;&#039;&lt;br /&gt;
  ( string any ) -&amp;gt; nil &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;(use springs default line stipple)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( boolean enable ) -&amp;gt; nil&lt;br /&gt;
  ( int factor, number pattern ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.PolygonMode&#039;&#039;&#039;&lt;br /&gt;
  ( number [[Lua_ConstGL#Culling|face]], number [[Lua_ConstGL#PolygonMode|mode]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.PolygonOffset&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable | number factor, number units ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.PushAttrib&#039;&#039;&#039;&lt;br /&gt;
  ( [ number [[Lua_ConstGL#glPushAttrib.28.29_bits|attrib]] ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.PopAttrib&#039;&#039;&#039;&lt;br /&gt;
  () -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Stencil =&lt;br /&gt;
&#039;&#039;&#039;gl.StencilTest&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;gl.StencilMask&#039;&#039;&#039;&lt;br /&gt;
  ( number mask ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;gl.StencilFunc&#039;&#039;&#039;&lt;br /&gt;
  ( number func, number ref, number mask ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;gl.StencilOp&#039;&#039;&#039;&lt;br /&gt;
  ( number fail, number zfail, number zpass ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.StencilMaskSeparate&#039;&#039;&#039; &amp;lt;span class=warning&amp;gt;(needs openGL2.0!)&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( number [[Lua_ConstGL#Culling|face]], number mask ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;gl.StencilFuncSeparate&#039;&#039;&#039; &amp;lt;span class=warning&amp;gt;(needs openGL2.0!)&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( number [[Lua_ConstGL#Culling|face]], number func, number ref, number mask ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;gl.StencilOpSeparate&#039;&#039;&#039; &amp;lt;span class=warning&amp;gt;(needs openGL2.0!)&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( number [[Lua_ConstGL#Culling|face]], number fail, number zfail, number zpass ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= LineWidth &amp;amp; PointSize =&lt;br /&gt;
&#039;&#039;&#039;gl.LineWidth&#039;&#039;&#039;&lt;br /&gt;
  ( number width ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.PointSize&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(values != 1 can break severely on ATI cards, see http://springrts.com/mantis/view.php?id=2390)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number size ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.PointSprite&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(needs openGL2.0!)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( boolean enable, [boolean coord_replace, boolean coord_origin_upper] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.PointParameter&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(needs openGL2.0!)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number v1, number v2, number v3, &lt;br /&gt;
    [ number sizeMin, number sizeMax, number sizeFade ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Textures =&lt;br /&gt;
&#039;&#039;&#039;gl.Texture&#039;&#039;&#039;&lt;br /&gt;
  ( [ number texNum, ] boolean enable | string &amp;lt;span class=note&amp;gt;name&amp;lt;/span&amp;gt; ) -&amp;gt; nil | boolean loaded&lt;br /&gt;
&amp;lt;font color=#dd9944&amp;gt;This is the only call-out that is needed to load and draw any texture in a Lua script. All you have to do is pass it a valid path to a valid png and it will use that image for drawing any subsequent textured rectangles. This is shown in the last line of the following list of valid strings for the name parameter.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=note&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin-top: -5px; margin-left:5px&amp;quot;&lt;br /&gt;
! style=&amp;quot;color:#55ee99; text-align:left&amp;quot; |`name` may be:&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | #12&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = unitDef 12 buildpic&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | %34:1&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = unitDef 34 s3o tex2 (:0-&amp;gt;tex1,:1-&amp;gt;tex2)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | %-102:0&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = featureDef 102 s3o tex1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | !56&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = lua generated texture 56 (= return value of gl.CreateTexture)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $units&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = 3do textureatlas tex1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $units1&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = 3do textureatlas tex1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $units2&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = 3do textureatlas tex2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $shadow&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = shadowmap&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $specular&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = specular cube map&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $reflection&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = reflection cube map&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $shading&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = ground shading texture&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $grass&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = grass shading texture&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $heightmap&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = heightmap (needs HeightMapTexture=1 set in spring config)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $minimap&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = minimap texture&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $info&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = currently active info texture (los, airlos, radar, jammer)&amp;lt;br/&amp;gt; Note that textures contain no data until user switches to their respective modes and non-active textures are not updated in the background, so will go stale&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $info_losmap&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = los texture (L-view)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $info_mtlmap&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = metal map texture (F4-view)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $info_hgtmap&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = height map texture (F1-view)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $info_blkmap&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = blocking map texture (F2-view)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $map_gbuffer_normtex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = contains the smoothed normals buffer of the map in view in world space coordinates (note that to get true normal vectors from it, you must multiply the vector by 2 and subtract 1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $map_gbuffer_difftex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = contains the diffuse texture buffer of the map in view&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $map_gbuffer_spectex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = contains the specular textures of the map in view&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $map_gbuffer_emittex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = for emissive materials (bloom would be the canonical use)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $map_gbuffer_misctex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = for arbitrary shader data&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $map_gbuffer_zvaltex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = contains the depth values (z-buffer) of the map in view. &amp;lt;br/&amp;gt;To translate this to world position coordinates, use:&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  vec4 worldpos= viewProjectionInv * vec4(vec3(gl_TexCoord[0].st, &lt;br /&gt;
  texture2D( map_gbuffer_zvaltex,gl_TexCoord[0].st ).x) * 2.0 - 1.0 ,1.0);&lt;br /&gt;
  worldpos.xyz = worldpos.xyz / worldpos.w; &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $model_gbuffer_normtex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = contains the smoothed normals buffer of the models in view in world space coordinates (note that to get true normal vectors from it, you must multiply the vector by 2 and subtract 1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $model_gbuffer_difftex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = contains the diffuse texture buffer of the models in view&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $model_gbuffer_spectex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = contains the specular textures of the models in view&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $model_gbuffer_emittex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = for emissive materials (bloom would be the canonical use)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $model_gbuffer_misctex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = for arbitrary shader data&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | $model_gbuffer_zvaltex (New in 95)&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = contains the depth values (z-buffer) of the models in view.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | ${opt}:/LuaUI/images/image.png &lt;br /&gt;
| style=&amp;quot;color:#55ee99&amp;quot; | = load a texture from the VFS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
   possible ${opt}&#039;s are:&lt;br /&gt;
      &#039;n&#039; = nearest&lt;br /&gt;
      &#039;l&#039; = linear&lt;br /&gt;
      &#039;a&#039; = aniso&lt;br /&gt;
      &#039;i&#039; = invert&lt;br /&gt;
      &#039;g&#039; = greyed&lt;br /&gt;
      &#039;c&#039; = clamped&lt;br /&gt;
      &#039;b&#039; = border&lt;br /&gt;
      &#039;t%r,%g,%b&#039; = tint&lt;br /&gt;
      &#039;r%width,%height&#039; = resize&lt;br /&gt;
   The above ${opt}&#039;s are NOT available for .DDS textures! .dds will load faster than other image formats.&lt;br /&gt;
&lt;br /&gt;
    example: &amp;quot;:iac:/LuaUI/images/image.png&amp;quot;&lt;br /&gt;
    example: &amp;quot;:cr16,16:/LuaUI/images/image.png&amp;quot;&lt;br /&gt;
    example2: &amp;quot;:t1.0,0.5,0:/LuaUI/images/image.png&amp;quot;  (orange tint)&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.CreateTexture&#039;&#039;&#039;&lt;br /&gt;
  ( int xsize, int ysize,&lt;br /&gt;
  [ { &lt;br /&gt;
    [target     = number,] &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;(like GL.TEXTURE_1D,GL.TEXTURE_2D,...)&amp;lt;/font&amp;gt;&lt;br /&gt;
    [format     = number,]&lt;br /&gt;
    [min_filter = [[Lua_ConstGL#Texture_Filtering|number]],]&lt;br /&gt;
    [mag_filter = [[Lua_ConstGL#Texture_Filtering|number]],]&lt;br /&gt;
    [wrap_s     = [[Lua_ConstGL#Texture_Clamping|number]],]&lt;br /&gt;
    [wrap_t     = [[Lua_ConstGL#Texture_Clamping|number]],]&lt;br /&gt;
    [wrap_r     = [[Lua_ConstGL#Texture_Clamping|number]],]&lt;br /&gt;
    [aniso      = number,]&lt;br /&gt;
    [border     = boolean,]&lt;br /&gt;
    [fbo        = boolean,] &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(needs GLEW_EXT_framebuffer_object!)&amp;lt;/font&amp;gt;&lt;br /&gt;
    [fboDepth   = boolean] &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(needs GLEW_EXT_framebuffer_object!)&amp;lt;/font&amp;gt;&lt;br /&gt;
  } ]&lt;br /&gt;
  ) -&amp;gt; string&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.DeleteTexture&#039;&#039;&#039;&lt;br /&gt;
  ( string texture ) -&amp;gt; boolean&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.DeleteTextureFBO&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(needs GLEW_EXT_framebuffer_object!)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string texture ) -&amp;gt; boolean&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.TextureInfo&#039;&#039;&#039;&lt;br /&gt;
  ( string texture ) -&amp;gt; nil | {&lt;br /&gt;
      xsize = number,&lt;br /&gt;
      ysize = number,&lt;br /&gt;
      alpha = boolean, //not used yet&lt;br /&gt;
      type  = number,  //not used yet&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;&lt;br /&gt;
   the format of the texture string is the same as in gl.Texture()&lt;br /&gt;
&amp;lt;/font&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.TexCoord&#039;&#039;&#039;&lt;br /&gt;
  ( number x | &lt;br /&gt;
    number x, number y |&lt;br /&gt;
    number x, number y, number z |&lt;br /&gt;
    number x, number y, number z, number w |&lt;br /&gt;
    { number x [, number y [, number z [, number w ]]] } ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.MultiTexCoord&#039;&#039;&#039;&lt;br /&gt;
  ( int texNum,&lt;br /&gt;
    number x |&lt;br /&gt;
    number x, number y |&lt;br /&gt;
    number x, number y, number z |&lt;br /&gt;
    number x, number y, number z, number w |&lt;br /&gt;
    { number x [, number y [, number z [, number w ]]] } ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.TexEnv&#039;&#039;&#039;&lt;br /&gt;
  ( number [[Lua_ConstGL#Texture_Environment|target]], number [[Lua_ConstGL#Texture_Environment|pname]],&lt;br /&gt;
    number [[Lua_ConstGL#Texture_Environment|value]] |&lt;br /&gt;
    number var1, number var2, number var3 ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.MultiTexEnv&#039;&#039;&#039;&lt;br /&gt;
  ( int texNum, number [[Lua_ConstGL#Texture_Environment|target]], number [[Lua_ConstGL#Texture_Environment|pname]],&lt;br /&gt;
    number [[Lua_ConstGL#Texture_Environment|value]] |&lt;br /&gt;
    number var1, number var2, number var3 ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.TexGen&#039;&#039;&#039;&lt;br /&gt;
  ( number [[Lua_ConstGL#Texture_Generation|target]],&lt;br /&gt;
    boolean state |&lt;br /&gt;
    number [[Lua_ConstGL#Texture_Generation|pname]], number value |&lt;br /&gt;
    number [[Lua_ConstGL#Texture_Generation|pname]], number var1, number var2, number var3 ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.MultiTexGen&#039;&#039;&#039;&lt;br /&gt;
  ( int texNum, number [[Lua_ConstGL#Texture_Generation|target]],&lt;br /&gt;
    boolean state |&lt;br /&gt;
    number [[Lua_ConstGL#Texture_Generation|pname]], number value |&lt;br /&gt;
    number [[Lua_ConstGL#Texture_Generation|pname]], number var1, number var2, number var3 ) -&amp;gt; nil       &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.CopyToTexture&#039;&#039;&#039;&lt;br /&gt;
  (string texture, int xoff, int yoff, int x, int y, int w, int h &lt;br /&gt;
  [,number target,number level])-&amp;gt;nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.RenderToTexture&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(needs GLEW_EXT_framebuffer_object!)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string fbotexture, lua_func ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.GenerateMipmap&#039;&#039;&#039; &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(needs glGenerateMipmapEXT!)&amp;lt;/font&amp;gt;&lt;br /&gt;
  ( string texture ) -&amp;gt; boolean&lt;br /&gt;
&lt;br /&gt;
= PixelReadback =&lt;br /&gt;
&#039;&#039;&#039;gl.SaveImage&#039;&#039;&#039;&lt;br /&gt;
  ( number x, number y, number w, number h,&lt;br /&gt;
    string filename [, table {alpha=boolean, yflip=boolean} ] ) -&amp;gt; nil | boolean success&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.ReadPixels&#039;&#039;&#039;&lt;br /&gt;
  ( number x, number y, number w, number h [, number format = GL.RGBA ] )&lt;br /&gt;
    -&amp;gt; nil &lt;br /&gt;
    | number r,[g,[b,[a]]] &lt;br /&gt;
    | table { { {1 = number r, 2 = number g, 3 = number b, 4 = number a}, ... }, ... }&lt;br /&gt;
&lt;br /&gt;
= Lights =&lt;br /&gt;
&#039;&#039;&#039;gl.Lighting&#039;&#039;&#039;&lt;br /&gt;
  ( boolean enable ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.ShadeModel&#039;&#039;&#039;&lt;br /&gt;
  ( number [[Lua_ConstGL#ShadeModel|mode]] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Light&#039;&#039;&#039;&lt;br /&gt;
  ( int light, &lt;br /&gt;
  boolean enable |&lt;br /&gt;
  number [[Lua_ConstGL#Light_Specification|pname]], number param |&lt;br /&gt;
  number [[Lua_ConstGL#Light_Specification|pname]], number param1, number param2, number param3 ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Material&#039;&#039;&#039;&lt;br /&gt;
  ({&lt;br /&gt;
    ambient   = {number r, number g, number b[, number a]},&lt;br /&gt;
    diffuse   = {number r, number g, number b[, number a]},&lt;br /&gt;
    ambidiff  = {number r, number g, number b[, number a]},&lt;br /&gt;
    emission  = {number r, number g, number b[, number a]},&lt;br /&gt;
    specular  = {number r, number g, number b[, number a]},&lt;br /&gt;
    shininess = number specularExponent&lt;br /&gt;
  }) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Hardware relevant =&lt;br /&gt;
&#039;&#039;&#039;gl.HasExtension&#039;&#039;&#039;&lt;br /&gt;
  ( string extname ) -&amp;gt; boolean&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.GetNumber&#039;&#039;&#039;&lt;br /&gt;
  ( number ext, int count ) -&amp;gt; number [, number, number, ... #count ]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.GetString&#039;&#039;&#039;&lt;br /&gt;
  ( number ext ) -&amp;gt; string&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DrawGroundPrimitives =&lt;br /&gt;
&#039;&#039;&#039;gl.DrawGroundCircle&#039;&#039;&#039;&lt;br /&gt;
  ( number x, number y, number z, number radius, number divs [, number slope ] ) -&amp;gt; nil&lt;br /&gt;
&amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Note: number divs is the number of sides the circle will have. the higher the smoother the circle (and more GPU intensive) &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.DrawGroundQuad&#039;&#039;&#039; &amp;lt;font color=&amp;quot;#55ee99&amp;quot;&amp;gt;Note: x1,z1,x2 &amp;amp; z2 are rounded, so don&#039;t use it for very small or moving objects. x and z are correspond to the coordinates displayed by the tooltip &amp;lt;/font&amp;gt;&lt;br /&gt;
  ( number x1, number z1, number x2, number z2,&lt;br /&gt;
    [ boolean useNorm, &amp;lt;span class=warning&amp;gt;(does nothing!)&amp;lt;/span&amp;gt;&lt;br /&gt;
      [ number tu1, number tv1, number tu2, number tv2 |&lt;br /&gt;
        boolean useTextureCoord ] ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Queries =&lt;br /&gt;
&#039;&#039;&#039;gl.CreateQuery&#039;&#039;&#039; &amp;lt;span class=warning&amp;gt;needs &amp;gt;=OpengGL2.0!&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( ) -&amp;gt; nil | userdata query&lt;br /&gt;
&#039;&#039;&#039;gl.DeleteQuery&#039;&#039;&#039; &amp;lt;span class=warning&amp;gt;needs &amp;gt;=OpengGL2.0!&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( userdata query ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;gl.RunQuery&#039;&#039;&#039; &amp;lt;span class=warning&amp;gt;needs &amp;gt;=OpengGL2.0!&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( userdata query, function, arg1, arg2, ... ) -&amp;gt; nil&lt;br /&gt;
&#039;&#039;&#039;gl.GetQuery&#039;&#039;&#039; &amp;lt;span class=warning&amp;gt;needs &amp;gt;=OpengGL2.0!&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( userdata query ) -&amp;gt; nil | number renderedFragments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Extended =&lt;br /&gt;
&#039;&#039;&#039;gl.ActiveTexture&#039;&#039;&#039;&lt;br /&gt;
  ( int texNum, function [, arg1,... ] ) -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.GetGlobalTexNames&#039;&#039;&#039;&lt;br /&gt;
  () -&amp;gt; { [1] = string texture, etc ... }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.GetGlobalTexCoords&#039;&#039;&#039; &amp;lt;span class=note&amp;gt;gets the texcoord of a 3do texture in the 3do texture atlas&amp;lt;/span&amp;gt;&lt;br /&gt;
  ( string 3doTextureName ) -&amp;gt; number xstart, number ystart, number xend, number yend&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.UnsafeState&#039;&#039;&#039;&lt;br /&gt;
  ( number state [, boolean disable_state ], function, arg1, arg2, ... ) -&amp;gt; nil&lt;br /&gt;
  &amp;lt;span class=note&amp;gt;Calls glEnable(state) or glDisable(state) (if disable_state==true) and&amp;lt;br&amp;gt;then calls the lua_function and afterwards reverts the state.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.GetShadowMapParams&#039;&#039;&#039;&lt;br /&gt;
  () -&amp;gt; number xmid, number ymid, number p17, number p18&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.GetMatrixData&#039;&#039;&#039;&lt;br /&gt;
  ( GL.PROJECTION [, int i] ) -&amp;gt; nil | number, etc.. | number Matrix[i]&lt;br /&gt;
  ( GL.MODELVIEW  [, int i] ) -&amp;gt; nil | number, etc.. | number Matrix[i] &lt;br /&gt;
  ( GL.TEXTURE    [, int i] ) -&amp;gt; nil | number, etc.. | number Matrix[i]&lt;br /&gt;
  ( &amp;quot;shadow&amp;quot; )                -&amp;gt; nil | number, etc.. &lt;br /&gt;
  ( &amp;quot;camera&amp;quot; )                -&amp;gt; nil | number, etc.. &lt;br /&gt;
  ( &amp;quot;caminv&amp;quot; )                -&amp;gt; nil | number, etc.. &lt;br /&gt;
  ( &amp;quot;camprj&amp;quot; )                -&amp;gt; nil | number, etc.. &lt;br /&gt;
  ( &amp;quot;billboard&amp;quot; )             -&amp;gt; nil | number, etc.. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Flush&#039;&#039;&#039;&lt;br /&gt;
  () -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gl.Finish&#039;&#039;&#039;&lt;br /&gt;
  () -&amp;gt; nil&lt;br /&gt;
&lt;br /&gt;
= Shaders (GLSL) =&lt;br /&gt;
  [[Lua_GLSL_Api]]&lt;br /&gt;
&lt;br /&gt;
[[category: Lua]]&lt;/div&gt;</summary>
		<author><name>Ikinz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Lobby_Development&amp;diff=10630</id>
		<title>Lobby Development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Lobby_Development&amp;diff=10630"/>
		<updated>2014-04-29T12:54:45Z</updated>

		<summary type="html">&lt;p&gt;Ikinz: /* Weblobby */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
=Documentation=&lt;br /&gt;
&lt;br /&gt;
==Protocol==&lt;br /&gt;
* [http://springrts.com/dl/LobbyProtocol/ HTML] (is updated once a day)&lt;br /&gt;
* [https://github.com/spring/LobbyProtocol/blob/master/ProtocolDescription.xml XML] (raw, always latest)&lt;br /&gt;
&lt;br /&gt;
==Download Systems==&lt;br /&gt;
* [http://springrts.com/wiki/Dev:LobbyDownloadSystems Lobby Download Systems]&lt;br /&gt;
&lt;br /&gt;
=Lobby client development=&lt;br /&gt;
&lt;br /&gt;
==Useable lobby clients==&lt;br /&gt;
&lt;br /&gt;
===[[SpringLobby]]===&lt;br /&gt;
&lt;br /&gt;
===Zero-K Lobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Windows/Linux&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C#&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;Licho&amp;lt;/font&amp;gt; &amp;amp; &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;quantum&amp;lt;/font&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[https://code.google.com/p/zero-k/ Zero-K project page]&lt;br /&gt;
&lt;br /&gt;
===TASClient===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Windows&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Delphi&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;Satirik&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can download the sources from the [http://springrts.com/svn/spring/Lobby/TASClient/ subversion repository] (svn://springrts.com/svn/spring/Lobby/TASClient/) and browse them on the [http://springrts.com/websvn/listing.php?repname=Spring&amp;amp;path=%2FLobby%2FTASClient%2F#_Lobby_TASClient_ websvn]. Latest binary version is always available here:&lt;br /&gt;
http://springrts.com/dl/tasclient/TASClientLatest.7z&lt;br /&gt;
&lt;br /&gt;
[http://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=18999 How to compile TASClient]&lt;br /&gt;
&lt;br /&gt;
[http://springrts.com/phpbb/viewtopic.php?f=14&amp;amp;t=19014 How to customize TASClient]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===flobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Linux&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C++&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;cleanrock&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/cleanrock/flobby github page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Weblobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C++&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;CarRepairer&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://code.google.com/p/springweblobby/ project site]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [http://weblobby.springrts.com weblobby.springrts.com] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Work in progress or abandoned==&lt;br /&gt;
&lt;br /&gt;
===Alphalobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Windows&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;unmaintained&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alphalobby is still very much work in progress. If you still wish to use it, source available from the [http://code.google.com/p/alphalobby/source/checkout mercurial repository], binary available on the [http://springfiles.com/spring/lobby-clients/alphalobby springfiles page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CheeseLobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Java&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;Cheesecan&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://springrts.com/phpbb/viewtopic.php?f=64&amp;amp;t=24905 forum thread]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/jahwag/cheeselobby binaries and code]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===QtLobby===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;C++&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;unmaintained&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/tizbac/qtlobby project page]&lt;br /&gt;
&lt;br /&gt;
===muslce (most useless spring lobby client ever)===&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;android&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;java&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;unmaintained&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://springrts.massive.ch/muslce/Muslce-20130617.tar.bz2&lt;br /&gt;
&lt;br /&gt;
=Libraries and frameworks=&lt;br /&gt;
&lt;br /&gt;
==Spring-PythonBotFramework==&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Python&amp;lt;/font&amp;gt;, by&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;BrainDamage&amp;lt;/font&amp;gt; &amp;amp; &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;koshi&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A bot framework written in python. [https://github.com/renemilk/tasbot/wiki GitHub wiki]&lt;br /&gt;
&lt;br /&gt;
==Go SpringLobbyClient==&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Go&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A simple client implementation of the lobby protocol in Go.&lt;br /&gt;
[https://github.com/Agon/go-slc/ project page]&lt;br /&gt;
&lt;br /&gt;
=Lobby server development=&lt;br /&gt;
&lt;br /&gt;
==SpringLS==&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Java&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;hoijui&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The longest-running lobby server, created by Betalord. You can fetch the sources through &#039;&#039;git&#039;&#039;. Details can be found on the [http://github.com/spring/SpringLS development site].&lt;br /&gt;
&lt;br /&gt;
==UberServer==&lt;br /&gt;
&amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;cross-platform&amp;lt;/font&amp;gt;,&lt;br /&gt;
&amp;lt;font color=&amp;quot;#00AAFF&amp;quot;&amp;gt;Python&amp;lt;/font&amp;gt;,&lt;br /&gt;
by &amp;lt;font color=&amp;quot;#00CC00&amp;quot;&amp;gt;aegis&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The primary lobby server currently running on springrts.com. All protocol commands in the primary documentation should be fully-functional and compatible between both uberserver and SpringLS. See the dedicated [[uberserver]] for mor info.&lt;br /&gt;
&lt;br /&gt;
[[Category: Lobby]]&lt;/div&gt;</summary>
		<author><name>Ikinz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=EvoGreenLitFAQ&amp;diff=6445</id>
		<title>EvoGreenLitFAQ</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=EvoGreenLitFAQ&amp;diff=6445"/>
		<updated>2014-04-21T10:40:47Z</updated>

		<summary type="html">&lt;p&gt;Ikinz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;EvolutionRTS emergency FAQ&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before you ask a question in chat, please see if it is already answered on this list.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Playable at the moment?==&lt;br /&gt;
Looks like it!&lt;br /&gt;
&lt;br /&gt;
http://www.vemags.de/wp-content/uploads/2012/06/Status_LSA_gruen1.jpg&lt;br /&gt;
&lt;br /&gt;
There seem to be at least 1, often 2 and more team games running all the time.&lt;br /&gt;
&lt;br /&gt;
==Engine download stuck==&lt;br /&gt;
&lt;br /&gt;
First of all, make sure that your automatic windows updates are enabled. If you disabled them, then most likely you don&#039;t have the KB2533623 update that is necessary. Either reenable windows update or install KB2533623 separately if you&#039;re a power user.&lt;br /&gt;
&lt;br /&gt;
http://support.microsoft.com/kb/2533623&lt;br /&gt;
&lt;br /&gt;
Close the lobby and start it again.&lt;br /&gt;
&lt;br /&gt;
Look for common\EvolutionRTS\evo_data in your steam folder. If evo_data is not empty, copy everything in it into Documents\My games\Spring\&lt;br /&gt;
&lt;br /&gt;
==Downloads fail (because windows user name has special characters)==&lt;br /&gt;
http://i.imgur.com/6qZTQOZ.png&lt;br /&gt;
&lt;br /&gt;
If the lobby states it is downloading the engine but nothing happens:&lt;br /&gt;
&lt;br /&gt;
Check if your windows account name contains any &amp;quot;funny&amp;quot; characters or umlauts like Ã¶Ã¼Ã¤Ã´Ã¡ etc.&lt;br /&gt;
&lt;br /&gt;
As a workaround use a windows account name without such characters. This is will be fixed of course.&lt;br /&gt;
&lt;br /&gt;
==Singleplayer?==&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;  Create a multiplayer battleroom with the button at the bottom and make it private by giving it a password. The lobby will download the necessary files and once it&#039;s done, you can play. See below for adding bots.&lt;br /&gt;
&lt;br /&gt;
Or go to the Singleplayer tab and create a custom battle (&amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt; launch game directly) with engine 96.0 and the latest version of Evolution RTS you can find in the list.&lt;br /&gt;
&lt;br /&gt;
==Cannot start command: Downloading Engine 96.0: assign: The parameter is incorrect==&lt;br /&gt;
&lt;br /&gt;
Are you on windows XP? Unfortunately the lobby does not work with Windows XP. You can use the Java Weblobby version by visiting http://www.weblobby.evolutionrts.info directly or you can try a different lobby: http://steamcommunity.com/app/291150/discussions/0/540738051772337468/&lt;br /&gt;
&lt;br /&gt;
==Automatic download of game files does not work==&lt;br /&gt;
NOTE: the GAME file, not the engine.&lt;br /&gt;
&lt;br /&gt;
Best idea is to wait a bit, the lobby should eventually download it.&lt;br /&gt;
If it &amp;lt;b&amp;gt;really absolutely&amp;lt;/b&amp;gt; does not work:&lt;br /&gt;
1. Go to http://packages.springrts.com/builds/&lt;br /&gt;
2. download the .sdz with the latest evolutionRTS version. (Currently that is 7.37 but check vs what is played in lobby)&lt;br /&gt;
3. Put the .sdz file into: Documents/My Games/Spring/games&lt;br /&gt;
Do not unzip it, just move it there. When you&#039;re done, close and reopen the lobby.&lt;br /&gt;
&lt;br /&gt;
As said, that is only for advanced users and should not be necessary.&lt;br /&gt;
&lt;br /&gt;
==AI does not work!==&lt;br /&gt;
The evolutionRTS AI is the &amp;quot;Survial Spawner AI.&amp;quot;&lt;br /&gt;
It spawns random enemies for you to shot at.&lt;br /&gt;
&lt;br /&gt;
The NullAI bot can also be used: It does &#039;&#039;nothing&#039;&#039; which is nice to try out the game without enemies.&lt;br /&gt;
&lt;br /&gt;
==Sandbox mode? I want to try the game without being rushed!==&lt;br /&gt;
Start a singleplayer game against the NullAI bot.&lt;br /&gt;
&lt;br /&gt;
==Missions?==&lt;br /&gt;
Not there yet.&lt;br /&gt;
&lt;br /&gt;
==It crashed!==&lt;br /&gt;
There is a logfile: [[Infolog.txt]]&lt;br /&gt;
&lt;br /&gt;
The page also explains how to find and share it. You can post it in forum, on steam or in chat.&lt;br /&gt;
&lt;br /&gt;
==Which maps should I play?==&lt;br /&gt;
Eye of Horus is a good map that works for team games, free-for-all, 1v1 and with bots.&lt;br /&gt;
&lt;br /&gt;
==Why so many problems?==&lt;br /&gt;
Surprised by so many players.&lt;br /&gt;
&lt;br /&gt;
==Hooray, I am ingame! How to play?==&lt;br /&gt;
http://www.wiki.evolutionrts.info/doku.php/evolution_rts:quick_start_guide&lt;br /&gt;
&lt;br /&gt;
Or just try out things :)&lt;br /&gt;
&lt;br /&gt;
==How to chat ingame?==&lt;br /&gt;
Press the RETURN key and type your message.&lt;br /&gt;
&lt;br /&gt;
==Graphics problems! / the game runs very bad!==&lt;br /&gt;
Some problems can probally be solved by the general spring-engine FAQ: [[FAQ:trouble]]&lt;br /&gt;
&lt;br /&gt;
==Cursor is painfully slow!==&lt;br /&gt;
Click Settings (the wrench) &amp;gt; Interface &amp;gt; Mouse Cursor &amp;gt; enable Hardware Cursor&lt;br /&gt;
&lt;br /&gt;
==As a player, how can I help?==&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;If you have bugs to report&#039;&#039;&#039;: It is okay to do so in the steam forum: http://steamcommunity.com/app/291150&lt;br /&gt;
&lt;br /&gt;
(Or if you know how to use the google.code bugtracker: https://code.google.com/p/evolutionrts/issues/list )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Give as much &#039;&#039;info&#039;&#039; as possible:&#039;&#039;&#039;&lt;br /&gt;
*Operation system&lt;br /&gt;
&lt;br /&gt;
*computer hardware (laptop or desktop, cpu, ram, graphics card,..)&lt;br /&gt;
&lt;br /&gt;
*This logfile: [[Infolog.txt]]&lt;br /&gt;
&lt;br /&gt;
*Lobby logfile: /Documents/My games/Spring/weblobby/&#039;&#039;&#039;weblobby.log&#039;&#039;&#039; , share via pastebin.com&lt;br /&gt;
&lt;br /&gt;
*Screenshots can be uploaded to imgur.com or similiar&lt;br /&gt;
&lt;br /&gt;
After a while check back on your post, devs might need more informations from you!&lt;br /&gt;
&lt;br /&gt;
Reporting bugs in chat is pretty much useless, there get overlooked there or forgotten.&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;If you can play:&#039;&#039;&#039; help others players with their problems in chat.&lt;br /&gt;
&lt;br /&gt;
3. Be patient  :)&lt;br /&gt;
&lt;br /&gt;
==More Information About Common Bugs==&lt;br /&gt;
https://code.google.com/p/springweblobby/wiki/EvoSteamBugs&lt;/div&gt;</summary>
		<author><name>Ikinz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=EvoGreenLitFAQ&amp;diff=6442</id>
		<title>EvoGreenLitFAQ</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=EvoGreenLitFAQ&amp;diff=6442"/>
		<updated>2014-04-16T19:39:17Z</updated>

		<summary type="html">&lt;p&gt;Ikinz: /* Engine download stuck at 100% */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;EvolutionRTS emergency FAQ&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before you ask a question in chat, please see if it is already answered on this list.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Playable at the moment?==&lt;br /&gt;
Looks like it!&lt;br /&gt;
&lt;br /&gt;
http://www.vemags.de/wp-content/uploads/2012/06/Status_LSA_gruen1.jpg&lt;br /&gt;
&lt;br /&gt;
There seem to be at least 1, often 2 and more team games running all the time.&lt;br /&gt;
&lt;br /&gt;
==Downloads fail (because windows user name has special characters)==&lt;br /&gt;
http://i.imgur.com/6qZTQOZ.png&lt;br /&gt;
&lt;br /&gt;
If the lobby states it is downloading the engine but nothing happens:&lt;br /&gt;
&lt;br /&gt;
Check if your windows account name contains any &amp;quot;funny&amp;quot; characters or umlauts like Ã¶Ã¼Ã¤Ã´Ã¡ etc.&lt;br /&gt;
&lt;br /&gt;
As a workaround use a windows account name without such characters. This is will be fixed of course.&lt;br /&gt;
&lt;br /&gt;
==Singleplayer?==&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;  Create a multiplayer battleroom with the button at the bottom and make it private by giving it a password. The lobby will download the necessary files and once it&#039;s done, you can play. See below for adding bots.&lt;br /&gt;
&lt;br /&gt;
Or go to the Singleplayer tab and create a custom battle (&amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt; launch game directly) with engine 96.0 and the latest version of Evolution RTS you can find in the list.&lt;br /&gt;
&lt;br /&gt;
==Cannot start command: Downloading Engine 96.0: assign: The parameter is incorrect==&lt;br /&gt;
&lt;br /&gt;
Are you on windows XP? Unfortunately the lobby does not work with Windows XP. You can use the Java Weblobby version by visiting http://www.weblobby.evolutionrts.info directly or you can try a different lobby: http://steamcommunity.com/app/291150/discussions/0/540738051772337468/&lt;br /&gt;
&lt;br /&gt;
==Engine download stuck at 100%==&lt;br /&gt;
&lt;br /&gt;
First of all, make sure that your automatic windows updates are enabled. If you disabled them, then most likely you don&#039;t have the KB2533623 update that is necessary. Either reenable windows update or install KB2533623 separately if you&#039;re a power user.&lt;br /&gt;
&lt;br /&gt;
Close the lobby and start it again.&lt;br /&gt;
&lt;br /&gt;
Look for common\EvolutionRTS\evo_data in your steam folder. If evo_data is not empty, copy everything in it into Documents\My games\Spring\&lt;br /&gt;
&lt;br /&gt;
==Automatic download of game files does not work==&lt;br /&gt;
NOTE: the GAME file, not the engine.&lt;br /&gt;
&lt;br /&gt;
Best idea is to wait a bit, the lobby should eventually download it.&lt;br /&gt;
If it &amp;lt;b&amp;gt;really absolutely&amp;lt;/b&amp;gt; does not work:&lt;br /&gt;
1. Go to http://packages.springrts.com/builds/&lt;br /&gt;
2. download the .sdz with the latest evolutionRTS version. (Currently that is 7.37 but check vs what is played in lobby)&lt;br /&gt;
3. Put the .sdz file into: Documents/My Games/Spring/games&lt;br /&gt;
Do not unzip it, just move it there. When you&#039;re done, close and reopen the lobby.&lt;br /&gt;
&lt;br /&gt;
As said, that is only for advanced users and should not be necessary.&lt;br /&gt;
&lt;br /&gt;
==AI does not work!==&lt;br /&gt;
The evolutionRTS AI is the &amp;quot;Survial Spawner AI.&amp;quot;&lt;br /&gt;
It spawns random enemies for you to shot at.&lt;br /&gt;
&lt;br /&gt;
The NullAI bot can also be used: It does &#039;&#039;nothing&#039;&#039; which is nice to try out the game without enemies.&lt;br /&gt;
&lt;br /&gt;
==Sandbox mode? I want to try the game without being rushed!==&lt;br /&gt;
Start a singleplayer game against the NullAI bot.&lt;br /&gt;
&lt;br /&gt;
==Missions?==&lt;br /&gt;
Not there yet.&lt;br /&gt;
&lt;br /&gt;
==It crashed!==&lt;br /&gt;
There is a logfile: [[Infolog.txt]]&lt;br /&gt;
&lt;br /&gt;
The page also explains how to find and share it. You can post it in forum, on steam or in chat.&lt;br /&gt;
&lt;br /&gt;
==Which maps should I play?==&lt;br /&gt;
Eye of Horus is a good map that works for team games, free-for-all, 1v1 and with bots.&lt;br /&gt;
&lt;br /&gt;
==Why so many problems?==&lt;br /&gt;
Surprised by too many players.&lt;br /&gt;
&lt;br /&gt;
==Hooray, I am ingame! How to play?==&lt;br /&gt;
http://www.wiki.evolutionrts.info/doku.php/evolution_rts:quick_start_guide&lt;br /&gt;
&lt;br /&gt;
Or just try out things :)&lt;br /&gt;
&lt;br /&gt;
==How to chat ingame?==&lt;br /&gt;
Press the RETURN key and type your message.&lt;br /&gt;
&lt;br /&gt;
==Graphics problems! / the game runs very bad!==&lt;br /&gt;
Some problems can probally be solved by the general spring-engine FAQ: [[FAQ:trouble]]&lt;br /&gt;
&lt;br /&gt;
==Cursor is painfully slow!==&lt;br /&gt;
Click Settings (the wrench) &amp;gt; Interface &amp;gt; Mouse Cursor &amp;gt; enable Hardware Cursor&lt;br /&gt;
&lt;br /&gt;
==As a player, how can I help?==&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;If you have bugs to report&#039;&#039;&#039;: It is okay to do so in the steam forum: http://steamcommunity.com/app/291150&lt;br /&gt;
&lt;br /&gt;
(Or if you know how to use the google.code bugtracker: https://code.google.com/p/evolutionrts/issues/list )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Give as much &#039;&#039;info&#039;&#039; as possible:&#039;&#039;&#039;&lt;br /&gt;
*Operation system&lt;br /&gt;
&lt;br /&gt;
*computer hardware (laptop or desktop, cpu, ram, graphics card,..)&lt;br /&gt;
&lt;br /&gt;
*This logfile: [[Infolog.txt]]&lt;br /&gt;
&lt;br /&gt;
*Lobby logfile: /Documents/My games/Spring/weblobby/&#039;&#039;&#039;weblobby.log&#039;&#039;&#039; , share via pastebin.com&lt;br /&gt;
&lt;br /&gt;
*Screenshots can be uploaded to imgur.com or similiar&lt;br /&gt;
&lt;br /&gt;
After a while check back on your post, devs might need more informations from you!&lt;br /&gt;
&lt;br /&gt;
Reporting bugs in chat is pretty much useless, there get overlooked there or forgotten.&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;If you can play:&#039;&#039;&#039; help others players with their problems in chat.&lt;br /&gt;
&lt;br /&gt;
3. Be patient  :)&lt;br /&gt;
&lt;br /&gt;
==More Information About Common Bugs==&lt;br /&gt;
https://code.google.com/p/springweblobby/wiki/EvoSteamBugs&lt;/div&gt;</summary>
		<author><name>Ikinz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=EvoGreenLitFAQ&amp;diff=6441</id>
		<title>EvoGreenLitFAQ</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=EvoGreenLitFAQ&amp;diff=6441"/>
		<updated>2014-04-16T15:37:19Z</updated>

		<summary type="html">&lt;p&gt;Ikinz: Updated with latest developments.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;EvolutionRTS emergency FAQ&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before you ask a question in chat, please see if it is already answered on this list.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Playable at the moment?==&lt;br /&gt;
Looks like it!&lt;br /&gt;
&lt;br /&gt;
http://www.vemags.de/wp-content/uploads/2012/06/Status_LSA_gruen1.jpg&lt;br /&gt;
&lt;br /&gt;
There seem to be at least 1, often 2 and more team games running all the time.&lt;br /&gt;
&lt;br /&gt;
==Downloads fail (because windows user name has special characters)==&lt;br /&gt;
http://i.imgur.com/6qZTQOZ.png&lt;br /&gt;
&lt;br /&gt;
If the lobby states it is downloading the engine but nothing happens:&lt;br /&gt;
&lt;br /&gt;
Check if your windows account name contains any &amp;quot;funny&amp;quot; characters or umlauts like Ã¶Ã¼Ã¤Ã´Ã¡ etc.&lt;br /&gt;
&lt;br /&gt;
As a workaround use a windows account name without such characters. This is will be fixed of course.&lt;br /&gt;
&lt;br /&gt;
==Singleplayer?==&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039;  Create a multiplayer battleroom with the button at the bottom and make it private by giving it a password. The lobby will download the necessary files and once it&#039;s done, you can play. See below for adding bots.&lt;br /&gt;
&lt;br /&gt;
Or go to the Singleplayer tab and create a custom battle (&amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt; launch game directly) with engine 96.0 and the latest version of Evolution RTS you can find in the list.&lt;br /&gt;
&lt;br /&gt;
==Cannot start command: Downloading Engine 96.0: assign: The parameter is incorrect==&lt;br /&gt;
&lt;br /&gt;
Are you on windows XP? Unfortunately the lobby does not work with Windows XP. You can use the Java Weblobby version by visiting http://www.weblobby.evolutionrts.info directly or you can try a different lobby: http://steamcommunity.com/app/291150/discussions/0/540738051772337468/&lt;br /&gt;
&lt;br /&gt;
==Engine download stuck at 100%==&lt;br /&gt;
Close the lobby and start it again.&lt;br /&gt;
&lt;br /&gt;
Look for common\EvolutionRTS\evo_data in your steam folder. If evo_data is not empty, copy everything in it into Documents\My games\Spring\&lt;br /&gt;
&lt;br /&gt;
If that doesn&#039;t help, look in Documents/My games/Spring/weblobby/weblobby.log (open with Notepad). Look specifically for lines similar to &amp;lt;code&amp;gt;[WARNING] [2014-04-09 07:44:14] Could not load unitsync at C:/Users/User/Documents/My Games/Spring/weblobby/engine/96.0\unitsync.dll: 87&amp;lt;/code&amp;gt;. If you have this error, you must have disabled your automatic Windows updates and don&#039;t have the update named KB2533623.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Pointless since preload exists.&lt;br /&gt;
If that doesn&#039;t help, you can try this:&lt;br /&gt;
Download this file... http://springrts.com/dl/buildbot/default/master/96.0/win32/spring_96.0_minimal-portable.7z&lt;br /&gt;
&lt;br /&gt;
Unzip the files into: Documents\My Games\Spring\weblobby\engine\96.0 (if this path doesn&#039;t exist, you should create it)&lt;br /&gt;
&lt;br /&gt;
Start Lobby--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Automatic download of game files does not work==&lt;br /&gt;
NOTE: the GAME file, not the engine.&lt;br /&gt;
&lt;br /&gt;
Best idea is to wait a bit, the lobby should eventually download it.&lt;br /&gt;
If it &amp;lt;b&amp;gt;really absolutely&amp;lt;/b&amp;gt; does not work:&lt;br /&gt;
1. Go to http://packages.springrts.com/builds/&lt;br /&gt;
2. download the .sdz with the latest evolutionRTS version. (Currently that is 7.37 but check vs what is played in lobby)&lt;br /&gt;
3. Put the .sdz file into: Documents/My Games/Spring/games&lt;br /&gt;
Do not unzip it, just move it there. When you&#039;re done, close and reopen the lobby.&lt;br /&gt;
&lt;br /&gt;
As said, that is only for advanced users and should not be necessary.&lt;br /&gt;
&lt;br /&gt;
==AI does not work!==&lt;br /&gt;
The evolutionRTS AI is the &amp;quot;Survial Spawner AI.&amp;quot;&lt;br /&gt;
It spawns random enemies for you to shot at.&lt;br /&gt;
&lt;br /&gt;
The NullAI bot can also be used: It does &#039;&#039;nothing&#039;&#039; which is nice to try out the game without enemies.&lt;br /&gt;
&lt;br /&gt;
==Sandbox mode? I want to try the game without being rushed!==&lt;br /&gt;
Start a singleplayer game against the NullAI bot.&lt;br /&gt;
&lt;br /&gt;
==Missions?==&lt;br /&gt;
Not there yet.&lt;br /&gt;
&lt;br /&gt;
==It crashed!==&lt;br /&gt;
There is a logfile: [[Infolog.txt]]&lt;br /&gt;
&lt;br /&gt;
The page also explains how to find and share it. You can post it in forum, on steam or in chat.&lt;br /&gt;
&lt;br /&gt;
==Which maps should I play?==&lt;br /&gt;
Eye of Horus is a good map that works for team games, free-for-all, 1v1 and with bots.&lt;br /&gt;
&lt;br /&gt;
==Why so many problems?==&lt;br /&gt;
Surprised by too many players.&lt;br /&gt;
&lt;br /&gt;
==Hooray, I am ingame! How to play?==&lt;br /&gt;
http://www.wiki.evolutionrts.info/doku.php/evolution_rts:quick_start_guide&lt;br /&gt;
&lt;br /&gt;
Or just try out things :)&lt;br /&gt;
&lt;br /&gt;
==How to chat ingame?==&lt;br /&gt;
Press the RETURN key and type your message.&lt;br /&gt;
&lt;br /&gt;
==Graphics problems! / the game runs very bad!==&lt;br /&gt;
Some problems can probally be solved by the general spring-engine FAQ: [[FAQ:trouble]]&lt;br /&gt;
&lt;br /&gt;
==Cursor is painfully slow!==&lt;br /&gt;
Click Settings (the wrench) &amp;gt; Interface &amp;gt; Mouse Cursor &amp;gt; enable Hardware Cursor&lt;br /&gt;
&lt;br /&gt;
==As a player, how can I help?==&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;If you have bugs to report&#039;&#039;&#039;: It is okay to do so in the steam forum: http://steamcommunity.com/app/291150&lt;br /&gt;
&lt;br /&gt;
(Or if you know how to use the google.code bugtracker: https://code.google.com/p/evolutionrts/issues/list )&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Give as much &#039;&#039;info&#039;&#039; as possible:&#039;&#039;&#039;&lt;br /&gt;
*Operation system&lt;br /&gt;
&lt;br /&gt;
*computer hardware (laptop or desktop, cpu, ram, graphics card,..)&lt;br /&gt;
&lt;br /&gt;
*This logfile: [[Infolog.txt]]&lt;br /&gt;
&lt;br /&gt;
*Lobby logfile: /Documents/My games/Spring/weblobby/&#039;&#039;&#039;weblobby.log&#039;&#039;&#039; , share via pastebin.com&lt;br /&gt;
&lt;br /&gt;
*Screenshots can be uploaded to imgur.com or similiar&lt;br /&gt;
&lt;br /&gt;
After a while check back on your post, devs might need more informations from you!&lt;br /&gt;
&lt;br /&gt;
Reporting bugs in chat is pretty much useless, there get overlooked there or forgotten.&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;If you can play:&#039;&#039;&#039; help others players with their problems in chat.&lt;br /&gt;
&lt;br /&gt;
3. Be patient  :)&lt;br /&gt;
&lt;br /&gt;
==More Information About Common Bugs==&lt;br /&gt;
https://code.google.com/p/springweblobby/wiki/EvoSteamBugs&lt;/div&gt;</summary>
		<author><name>Ikinz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=EvoGreenlitList&amp;diff=6456</id>
		<title>EvoGreenlitList</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=EvoGreenlitList&amp;diff=6456"/>
		<updated>2014-04-16T15:09:46Z</updated>

		<summary type="html">&lt;p&gt;Ikinz: Edit because I had it open in a tab and it looked too grim.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of most urgent problems currently preventing players from playing evo.&lt;br /&gt;
&lt;br /&gt;
=Current=&lt;br /&gt;
&lt;br /&gt;
==engine detection==&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;s&amp;gt;unknown reasons&amp;lt;/s&amp;gt; http://code.google.com/p/springweblobby/wiki/EvoSteamBugs &#039;&#039;&#039;often does not work.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;stops at 100%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;nothing happens&amp;quot;&lt;br /&gt;
&lt;br /&gt;
or errors like http://springrts.com/phpbb/viewtopic.php?f=64&amp;amp;p=556182#p556131&lt;br /&gt;
&lt;br /&gt;
=Addressed/Fixed=&lt;br /&gt;
&lt;br /&gt;
==Maps==&lt;br /&gt;
&lt;br /&gt;
===Solved===&lt;br /&gt;
&lt;br /&gt;
A limited maplist was introduced, unsynced players are auto-specced.&lt;br /&gt;
&lt;br /&gt;
The maps from maplist were added in the steam distribution in the operation dubbed &amp;quot;Preload&amp;quot;, as well as the engine and pool/packages with the game.&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Too much random map changes. Too much downloading, too much unsync = no games start.&lt;br /&gt;
&lt;br /&gt;
Some commonly chosen maps are unplayable (space maps etc)&lt;br /&gt;
&lt;br /&gt;
Solve: &#039;&#039;&#039;Maplist&#039;&#039;&#039; on ALL hosts.&lt;br /&gt;
&lt;br /&gt;
Best only put ONE map so that players do not have to download much and can just play.&lt;br /&gt;
Map could be:&lt;br /&gt;
http://springfiles.com/spring/spring-maps/eye-horus-v2&lt;br /&gt;
&lt;br /&gt;
Progress:&lt;br /&gt;
unsynced players are specced and can not delay gamestart but does not seem to help so much&lt;br /&gt;
&lt;br /&gt;
==Singleplayer==&lt;br /&gt;
&lt;br /&gt;
===Solved===&lt;br /&gt;
&lt;br /&gt;
Preload.&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Does not work with fresh install because there are no files.&lt;br /&gt;
&lt;br /&gt;
One must first join a MP to download engine,map,mod.&lt;br /&gt;
&lt;br /&gt;
Solve: &#039;&#039;&#039;Download files on login&#039;&#039;&#039; or something.&lt;br /&gt;
&lt;br /&gt;
==empty room, use !lock==&lt;br /&gt;
&lt;br /&gt;
===Soved===&lt;br /&gt;
&lt;br /&gt;
Springie seems to work correctly now.&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
The common solution to select an empty autohost and then lock the room does not work:&lt;br /&gt;
&lt;br /&gt;
Players need to be manually to use !lock command. The empty hosts are impossible to find because players randomly join&amp;amp;leave all the time. Even if you join an empty host, hardly does one have enough time to type !lock before another player joins.&lt;br /&gt;
&lt;br /&gt;
==Bots, AIs==&lt;br /&gt;
&lt;br /&gt;
===Solved===&lt;br /&gt;
&lt;br /&gt;
Bot filter specific to evo was created.&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Needs &#039;&#039;&#039;filter&#039;&#039;&#039; for add-bot menu. Only evo-compatible bots must be listed.&lt;br /&gt;
AAI is too often choosen because top of list but it does not work.&lt;br /&gt;
&lt;br /&gt;
Solve:&lt;br /&gt;
If nessecarly hard-coded hack in lobby might be needed?&lt;br /&gt;
(real solution like implenting validAI.lua probally no time)&lt;br /&gt;
&lt;br /&gt;
CarRepairer: Actually the REAL real solution is to remove AIs from the engine, which should have been done years ago like widgets. That would solve it for future versions only so a validAI list would be needed now of course.&lt;br /&gt;
&lt;br /&gt;
The evo-AIs reportedly &amp;quot;do nothing.&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
Under investigation at: http://springrts.com/phpbb/viewtopic.php?p=556029#p556029 &amp;lt;br /&amp;gt;&lt;br /&gt;
Possible quick fix: play on metal maps (Trololo, Trench_Linked).&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ikinz</name></author>
	</entry>
</feed>