<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=LUPS</id>
	<title>LUPS - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=LUPS"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;action=history"/>
	<updated>2026-11-09T04:07:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10329&amp;oldid=prev</id>
		<title>Abma at 15:58, 28 February 2016</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10329&amp;oldid=prev"/>
		<updated>2016-02-28T15:58:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:58, 28 February 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot;&gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== github ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== github ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://github.com/jk3064/lups&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://github.com/jk3064/lups&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Download ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Lups is available via [[rapid]] and can be downloaded via the usual tags, i.e. lups:stable.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Abma</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10328&amp;oldid=prev</id>
		<title>Knorke: github link</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10328&amp;oldid=prev"/>
		<updated>2014-12-06T19:18:57Z</updated>

		<summary type="html">&lt;p&gt;github link&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:18, 6 December 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Licensed under the terms of the GNU GPL, v2 or later.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Licensed under the terms of the GNU GPL, v2 or later.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== github ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https://github.com/jk3064/lups&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Knorke</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10327&amp;oldid=prev</id>
		<title>Funkencool: Should look a little nicer now</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10327&amp;oldid=prev"/>
		<updated>2013-06-11T20:55:14Z</updated>

		<summary type="html">&lt;p&gt;Should look a little nicer now&lt;/p&gt;
&lt;a href=&quot;https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;amp;diff=10327&amp;amp;oldid=10326&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Funkencool</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10326&amp;oldid=prev</id>
		<title>Flozi: -&gt;Category:Libraries (page needs a real overhaul)</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10326&amp;oldid=prev"/>
		<updated>2013-03-23T17:55:25Z</updated>

		<summary type="html">&lt;p&gt;-&amp;gt;&lt;a href=&quot;/wiki/Category:Libraries&quot; title=&quot;Category:Libraries&quot;&gt;Category:Libraries&lt;/a&gt; (page needs a real overhaul)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:55, 23 March 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l184&quot;&gt;Line 184:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 184:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;quot;x,y,z | r=random(), if (r&amp;gt;10) then x=10; y=30; z=0; else x=-10; y=-30; z=-0; end&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;quot;x,y,z | r=random(), if (r&amp;gt;10) then x=10; y=30; z=0; else x=-10; y=-30; z=-0; end&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Game development&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Libraries&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flozi</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10325&amp;oldid=prev</id>
		<title>Flozi: Category:Game development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10325&amp;oldid=prev"/>
		<updated>2013-03-08T21:26:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/mediawiki/index.php?title=Category:Game_development&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Category:Game development (page does not exist)&quot;&gt;Category:Game development&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:26, 8 March 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l183&quot;&gt;Line 183:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 183:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;quot;random(),random(),random()&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;quot;random(),random(),random()&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;quot;x,y,z | r=random(), if (r&amp;gt;10) then x=10; y=30; z=0; else x=-10; y=-30; z=-0; end&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;quot;x,y,z | r=random(), if (r&amp;gt;10) then x=10; y=30; z=0; else x=-10; y=-30; z=-0; end&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Game development]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Flozi</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10324&amp;oldid=prev</id>
		<title>Picassoct: Created page with &quot;  Lua Particle System (LUPS)  Licensed under the terms of the GNU GPL, v2 or later.     ** Implementation ** First, you need to differ between synced and unsynced FX, so there...&quot;</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=LUPS&amp;diff=10324&amp;oldid=prev"/>
		<updated>2012-07-16T17:17:38Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;  Lua Particle System (LUPS)  Licensed under the terms of the GNU GPL, v2 or later.     ** Implementation ** First, you need to differ between synced and unsynced FX, so there...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
 Lua Particle System (LUPS)&lt;br /&gt;
&lt;br /&gt;
Licensed under the terms of the GNU GPL, v2 or later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ** Implementation **&lt;br /&gt;
First, you need to differ between synced and unsynced FX,&lt;br /&gt;
so there are 2 LUPS instances running:&lt;br /&gt;
 one in LuaUI (widget) and&lt;br /&gt;
 one in LuaRules (gadget).&lt;br /&gt;
(To start a new instance simply include lups/lups.lua)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ** Why differ between synced and unsynced FX? **&lt;br /&gt;
LuaUI has only a limited access to engine values, so it&lt;br /&gt;
could never determine the unittype of enemy units in airlos,&lt;br /&gt;
nor is it able to catch weapon explosion or to interact with&lt;br /&gt;
cob.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ** Which files are used by LUPS? **&lt;br /&gt;
the core uses the following:&lt;br /&gt;
 lups/*&lt;br /&gt;
 bitmaps/GPL/lups/*&lt;br /&gt;
 LuaUI/Widgets/lups_wrapper.lua&lt;br /&gt;
 LuaRules/Gadgets/lups_wrapper.lua (only if you want synced&lt;br /&gt;
	FX like shockwaves/nanolasers)&lt;br /&gt;
and there are the managers:&lt;br /&gt;
 LuaUI/Widgets/gfx_lups_manager.lua&lt;br /&gt;
 LuaRules/Gadgets/gfx_lups_manager.lua&lt;br /&gt;
the shockwaves gadget:&lt;br /&gt;
 LuaRules/Gadgets/lups_shockwaves.lua&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ** What are those managers? **&lt;br /&gt;
LUPS itself doesn&amp;#039;t start any FX. It needs other lua files&lt;br /&gt;
to tell LUPS when it should start a new FX.&lt;br /&gt;
There are many widgets and gadgets, which start LUPS FXs,&lt;br /&gt;
but the most interesting ones are the managers (and perhaps&lt;br /&gt;
the shockwaves gadget).&lt;br /&gt;
Also the manager in LuaRules differ from that one in LuaUI.&lt;br /&gt;
The manager in LuaUI starts FXs everytime an new unit gets&lt;br /&gt;
finished or an enemy unit enters the LOS, so those FX only&lt;br /&gt;
vanish if the unit dies or leaves the LOS again.&lt;br /&gt;
The LuaRules manager is much less customizable, it creates&lt;br /&gt;
very special FXs like cloaking and it also manage parts of&lt;br /&gt;
the LUPS nano particle handling.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ** How do I implement my own FX? **&lt;br /&gt;
Okay, in the case you use the LuaUI manager and you want to&lt;br /&gt;
create a per-unit FX (like a fusion FX, airjets, ...):&lt;br /&gt;
&lt;br /&gt;
 1. open LuaUI/Widgets/gfx_lups_manager.lua&lt;br /&gt;
    (don&amp;#039;t shock the file seems huge, but most is only config,&lt;br /&gt;
     and yeah it needs a cleanup ... someday :x)&lt;br /&gt;
 2. scroll down (~50% scrollbar)&lt;br /&gt;
    you will find the following table/array:&lt;br /&gt;
    &amp;quot;local UnitEffects = {...}&amp;quot;&lt;br /&gt;
    It holds the FX per-unitdef.&lt;br /&gt;
 3. create a new sub-table like the following:&lt;br /&gt;
  [UnitDefNames[&amp;quot;%UNITDEF_NAME%&amp;quot;].id] = {&lt;br /&gt;
    {class=&amp;#039;%FXCLASS%&amp;#039;,options=%MY_FXOPTIONS_TABLE%}&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ** What FXClasses exist and how do I know their options? **&lt;br /&gt;
All FXClasses are located here:&lt;br /&gt;
 /lups/ParticleClasses/*&lt;br /&gt;
If you open on of those files, you will see a function like this:&lt;br /&gt;
&lt;br /&gt;
  function ShieldSphereParticle.GetInfo()&lt;br /&gt;
    return {&lt;br /&gt;
      name      = &amp;quot;ShieldSphere&amp;quot;,&lt;br /&gt;
    }&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
That returned name is what you fill in %FXCLASS% (uppercase&lt;br /&gt;
doesn&amp;#039;t matter), also it is in most cases same as the filename.&lt;br /&gt;
To see possible options of the FXClass scroll a bit down, you&lt;br /&gt;
will find a table like this:&lt;br /&gt;
&lt;br /&gt;
 ShieldSphereParticle.Default = {&lt;br /&gt;
   pos        = {0,0,0}, -- start pos&lt;br /&gt;
   layer      = -23,&lt;br /&gt;
   life       = 0, --in frames&lt;br /&gt;
   size       = 0,&lt;br /&gt;
   sizeGrowth = 0,&lt;br /&gt;
   margin     = 1,&lt;br /&gt;
   colormap1  = { {0, 0, 0, 0} },&lt;br /&gt;
   colormap2  = { {0, 0, 0, 0} },&lt;br /&gt;
   repeatEffect = false,&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The table contains all options and their default values.&lt;br /&gt;
So an example fx placed in LuaUI/Widgets/gfx_lups_manager.lua&lt;br /&gt;
could look like this:&lt;br /&gt;
  [UnitDefNames[&amp;quot;armcom&amp;quot;].id] = {&lt;br /&gt;
    {class=&amp;#039;ShieldSphere&amp;#039;,options={ life=3000, repeatEffect=true, size=300, colormap1={1,0,0,0.5}, colormap2={0,1,0,0.5} } }&lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  ** How do I start my own FX from my widget/gadget? **&lt;br /&gt;
First, you need a link to the interface, to do so you need&lt;br /&gt;
to access the global shared table of the widget-/gadgetHandler.&lt;br /&gt;
for LuaUI:&lt;br /&gt;
  local LupsApi = WG.Lups&lt;br /&gt;
for LuaRules:&lt;br /&gt;
  local LupsApi = GG.Lups&lt;br /&gt;
(nil check those, it is possible that Lups hasn&amp;#039;t started yet!)&lt;br /&gt;
&lt;br /&gt;
That Api contains the following functions:&lt;br /&gt;
  LupsApi.GetStats()&lt;br /&gt;
  LupsApi.GetErrorLog(minPriority)&lt;br /&gt;
-&amp;gt;  LupsApi.AddParticles(class,options)   //returns a fxID&lt;br /&gt;
-&amp;gt;  LupsApi.RemoveParticles(fxID)&lt;br /&gt;
  LupsApi.AddParticlesArray({ {class=className, ..FX options..},{class=className, ..FX options..},.. } )&lt;br /&gt;
  LupsApi.HasParticleClass(className)&lt;br /&gt;
and&lt;br /&gt;
  LupsApi.Config = {...}  //contains the options of lups.cfg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  ** Example usage of AddParticles() **&lt;br /&gt;
LupsApi.AddParticles(&amp;#039;ShieldSphere&amp;#039;, {&lt;br /&gt;
  unit=unitID,&lt;br /&gt;
  piece=&amp;quot;head&amp;quot;,&lt;br /&gt;
  pos={0,100,0},&lt;br /&gt;
  life=3000,&lt;br /&gt;
  repeatEffect=true,&lt;br /&gt;
  size=300,&lt;br /&gt;
  colormap1={1,0,0,0.5},&lt;br /&gt;
  colormap2={0,1,0,0.5}&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  ** How do I bind a FX to an unit/unitpiece? **&lt;br /&gt;
There are some special options tags, those are:&lt;br /&gt;
  unit := binds fx to unitID&lt;br /&gt;
  piece:= binds fx to pieceNAME&lt;br /&gt;
  pos  := worldspace coord or offset coord from the unit/unitpiece center&lt;br /&gt;
  onActive := only show FX if the unit is active (e.g. used for airjets - a plane is active, if it flies)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  ** Can I modify FX on runtime? **&lt;br /&gt;
Sure you can. There is only one issue in 76b1 (it will&lt;br /&gt;
be fixed in the next spring release):&lt;br /&gt;
you can&amp;#039;t modify widgets if they are in a .sdd, so you&lt;br /&gt;
have to copy it to your local widgets folder,&lt;br /&gt;
then you can run:&lt;br /&gt;
 /luaui reload&lt;br /&gt;
each time you modified the file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  ** I heard some options can contain Lua code? **&lt;br /&gt;
Yeah, but only the SimpleParticles class support them and&lt;br /&gt;
_only_ in the &amp;quot;partpos&amp;quot; param:&lt;br /&gt;
&lt;br /&gt;
LupsApi.AddParticles(&amp;#039;SimpleParticles&amp;#039;, {&lt;br /&gt;
  ...&lt;br /&gt;
  partpos = &amp;quot;r*cos(beta)*sin(alpha),r*cos(alpha),r*sin(beta)*sin(alpha) | r=random()*20, alpha=2*math.pi*random(), beta=2*math.pi*random()&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
The syntax is a bit extended so it looks similar to the&lt;br /&gt;
definitions of a mathical sets, but it can still contain&lt;br /&gt;
any lua code.&lt;br /&gt;
&lt;br /&gt;
Valid examples are:&lt;br /&gt;
  &amp;quot;x,y,z | x=10,y=30,z=0&amp;quot;&lt;br /&gt;
  &amp;quot;10,30,0&amp;quot;&lt;br /&gt;
  &amp;quot;random(),random(),random()&amp;quot;&lt;br /&gt;
  &amp;quot;x,y,z | r=random(), if (r&amp;gt;10) then x=10; y=30; z=0; else x=-10; y=-30; z=-0; end&amp;quot;&lt;/div&gt;</summary>
		<author><name>Picassoct</name></author>
	</entry>
</feed>