<?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=Archangel+of+Death</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=Archangel+of+Death"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/Archangel_of_Death"/>
	<updated>2026-11-09T00:32:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7867</id>
		<title>Game and Unit development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7867"/>
		<updated>2006-05-24T07:26:33Z</updated>

		<summary type="html">&lt;p&gt;Archangel of Death: /* specific information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Mod devlopement=&lt;br /&gt;
Mods, next to Maps, is the content used in Spring.&amp;lt;br&amp;gt;&lt;br /&gt;
A mod is simply a combined file containing a small structure of files and directories holding all the data required.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Mod_Development | Mod Development]] wiki is a starting page, linking to very useful information on the files included in a mod, their hierarchy and more.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Almost the entire mod developing is the creation of units. Which isn&#039;t an easy job.&amp;lt;br&amp;gt;&lt;br /&gt;
Information about the creation of units are everywere, but not combined.&amp;lt;br&amp;gt;&lt;br /&gt;
This is a gathered list of all Tutorials and helpfull forums threads I could find:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===general===&lt;br /&gt;
*http://taspring.clan-sy.com/wiki/Create_units - old Wiki&amp;lt;br&amp;gt;&lt;br /&gt;
*http://taspring.clan-sy.com/wiki/Mod_Development - general mod info&amp;lt;br&amp;gt;&lt;br /&gt;
*http://taspring.clan-sy.com/wiki/Mod_specification - general mod info&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===s3o units===&lt;br /&gt;
* http://lassie.student.utwente.nl/vliet/springtut.pdf - Maestro&#039;s tutorial of Upspring and textures.&lt;br /&gt;
* http://taspring.clan-sy.com/phpbb/viewtopic.php?t=4715 - Argh&#039;s unit creation * tutorial. (covers most aspects exept scripting)&lt;br /&gt;
* http://taspring.clan-sy.com/w/index.php?title=Basic_s3o_unit_making_guide - Mongus Unit creation guide&amp;lt;br&amp;gt;&lt;br /&gt;
* http://taspring.clan-sy.com/wiki/Simple_Mod_Tutorial - SinbadEV&#039;s Guide&amp;lt;br&amp;gt;&lt;br /&gt;
* http://taspring.clan-sy.com/wiki/Units:CreateModel - Das Bruces guide&amp;lt;br&amp;gt;&lt;br /&gt;
* http://taspring.clan-sy.com/phpbb/viewtopic.php?t=4519 - about s3o textures&amp;lt;br&amp;gt;&lt;br /&gt;
* http://taspring.clan-sy.com/phpbb/viewtopic.php?t=2660 - the main s3o thread&amp;lt;br&amp;gt;&lt;br /&gt;
* http://taspring.clan-sy.com/phpbb/viewtopic.php?t=3766 - another genearal s3o thread&amp;lt;br&amp;gt;&lt;br /&gt;
* http://taspring.clan-sy.com/phpbb/viewtopic.php?t=3641 - s3o errors thread&amp;lt;br&amp;gt;&lt;br /&gt;
* http://taspring.clan-sy.com/phpbb/viewtopic.php?p=75495 - various things about unit making. (Also contains an illustrated alpha-channel tut)&lt;br /&gt;
&lt;br /&gt;
===3do units===&lt;br /&gt;
* [http://www.tauniverse.com/forum/forumdisplay.php?s=&amp;amp;forumid=13 TAU Unit Discusion Forums]&lt;br /&gt;
* [http://www.tadesigners.com TA Designers] has some tutorials, and most utilities.&lt;br /&gt;
* [http://www.tadesigners.com/guides/Maestro/TA-DesignGuideTOC.shtml A unit design guide] made by Maestro And Team S.TA.R..&lt;br /&gt;
* [http://membres.lycos.fr/furtivefox/ Furtive Fox] left long ago Well, so I assume, but his site is still up with good tutorials, but in French.&lt;br /&gt;
* Maestro has nice tutorials hidden on his [http://www.angelfire.com/mh/maestro/ site], such as this [http://www.angelfire.com/mh/maestro/efitex.htm Texture Guide].&lt;br /&gt;
* Nexus was planning to do some [http://www.tauniverse.com/forum/forumdisplay.php?s=&amp;amp;forumid=112 workshop &amp;amp; modding classes], maybe one day it&#039;ll happen.&lt;br /&gt;
* [http://www.fileuniverse.com FileUniverse] has nearly all known utilities and tutorials, but it can be overwhelming if you don&#039;t know what you&#039;re looking for.&lt;br /&gt;
* [http://www.planetannihilation.com/madta/ta_downloads.asp M.A.D. TA] also host a few utilities and tutorials.&lt;br /&gt;
* Storm&#039;s [http://urc.tauniverse.com/UHT/08.htm Ultimate Help Topic] (mostly offline)&lt;br /&gt;
* [http://www.fileuniverse.com/uploads/tadesign.zip TA Design Guide] : the most complete and awesome reference guide I ever saw. Explain all script functions, all weapons .tdf tags, all units .fbi tags, and much more. &#039;&#039;&#039;A must have&#039;&#039;&#039;.&lt;br /&gt;
* [http://www.tadesigners.com/guides/Maestro/maeweap0.htm Mastreo&#039;s Weapons Reference]&lt;br /&gt;
* [http://www.fileuniverse.com/uploads/Rhino%20Tutorial.zip Wizzball&#039;s Rhino3D modelling Tutorial]&lt;br /&gt;
* [http://fileuniverse.com/?page=download&amp;amp;unity=/uploads/MADTA-scriptank.zip&amp;amp;ID=122 How to script a basic tank tutorial]&lt;br /&gt;
&lt;br /&gt;
===specific information===&lt;br /&gt;
*[[Units:FBI]]&lt;br /&gt;
*[[Units:Buildpics]]&lt;br /&gt;
*[[Units:High-poly]]&lt;br /&gt;
*[[Units:Download TDF]]&lt;br /&gt;
*[[Units:Textures]]&lt;br /&gt;
*[[Units:Weapons]]&lt;br /&gt;
*[[Units:WeaponMainDir]]&lt;br /&gt;
*[[Units:Design]]&lt;br /&gt;
*[[Mod Development:Armor]]&lt;br /&gt;
*[[Mod Development:Spawn]]&lt;br /&gt;
*[[Mod Development:Cursors]]&lt;br /&gt;
*[[Mod Development:Archives]]&lt;br /&gt;
*[[Mod Development:Sidepics]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Unit development]]&lt;/div&gt;</summary>
		<author><name>Archangel of Death</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Gamedev:WeaponMainDir&amp;diff=8821</id>
		<title>Gamedev:WeaponMainDir</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Gamedev:WeaponMainDir&amp;diff=8821"/>
		<updated>2006-04-02T20:49:41Z</updated>

		<summary type="html">&lt;p&gt;Archangel of Death: /* WeaponMainDir: The lowdown */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==WeaponMainDir: The lowdown==&lt;br /&gt;
After so many months, I finally figured out how to get the angles I want in WeaponMainDir! It defines the position of a point that the engine gets the vector of from the weapon origin, like so:&lt;br /&gt;
o----&amp;gt;o&lt;br /&gt;
First o is the weapon origin, defined in the query function of your script. The second is defined by the coordinates of WeaponMainDir. So, to figure out your numbers (still using o&#039;s as the two points):&lt;br /&gt;
Draw a triangle&lt;br /&gt;
DistanceX OR DistanceY&lt;br /&gt;
 o _____________&lt;br /&gt;
   \            |&lt;br /&gt;
     \          |&lt;br /&gt;
       \        |&lt;br /&gt;
         \      | DistanceZ&lt;br /&gt;
           \    |&lt;br /&gt;
             \  | &amp;lt;--- This is your desired angle. &lt;br /&gt;
               \| &lt;br /&gt;
                o &amp;lt;--- Weapon origin&lt;br /&gt;
Ignore the DistanceY for now.&lt;br /&gt;
&lt;br /&gt;
Lets say you want your gun to aim in a forward facing, 12 degree cone. Well, the degrees in MaxAngleDif start at the vector, and go around clockwise (for X/Z, not certain about Y/Z, but I think it is counter-clockwise) from there, so the default value of straight forward, 0 0 1, will aim straight forward and 12 degrees to the unit&#039;s right). Looking like so: (0 to 12 degrees)&lt;br /&gt;
__ &lt;br /&gt;
|/&lt;br /&gt;
You need to have that vector be 6 degrees to the left so the cone is actually centered on 0: (-6 to 6 degrees)&lt;br /&gt;
__&lt;br /&gt;
\|/&lt;br /&gt;
&lt;br /&gt;
Now, if you&#039;re comfortable with trigonometry, you can look at the big diagram above and see that the distance you need is opposite the angle/ adjacent the angle = TAN(of the angle). Pull out your handy dandy scientific calculator (or change the one in windows to scientific mode) and plug in TAN(6), getting 0.105104.... Now start trying out fractions of X/Z using the &amp;quot;guess then narrow it down&amp;quot; method (thats the first number and last number of the three defined in MaxAngleDif), to try to get them close (3rd or 4th decimal place should be close enough accuracy) to that decimal number. &#039;&#039;&#039;They have to be whole numbers!&#039;&#039;&#039; (Why? Because I&#039;m not testing it) If your a trig wizz, which I am not, you may have picked the best numbers just by looking at it. You should find 2/19 produces a good value of 0.105264... Check your values by doing arctan(X/Z) (may be tan(superscript)-1 on your calculator, not to be confused with 1/tan, so don&#039;t try that if you can&#039;t find it). This should give a number very close to your angle, if you went to the 3rd decimal place in accuracy when picking your X/Z, then the value will be about that accurate as well. In our case, arctan(2/19)=6.009006...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Booya!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want that 12 degree cone to be centered around 90 degrees left of the unit, you&#039;d take your 6 degree angle, and add it to 90, so you&#039;d do the process on 96 degrees. You&#039;ll find tan(96) comes out negative, thats because your Z value is going to be negative. Go ahead and graph it on a piece of paper if you don&#039;t see why its negative.&lt;br /&gt;
&lt;br /&gt;
Now, that DistanceY I told you to ignore! Lets look at it now. You work it the same as for DistanceX. Lets just say when working out your numbers for X you were looking top-down at your unit, for Y your looking at the side. If your using X/Z already, you&#039;ll have to use that same Z value in your Y/Z. Well, at least it makes figuring out Y easier, just multiply the value from tan(angle) by Z. Problem is it will probably be a decimal that you can&#039;t round without it being horribly inaccurate. If it is (which is very likely), you might try finding your Y/Z values as when you found X/Z, then use &amp;quot;Least Common Denominators&amp;quot; to have equal Z values and still the desired accuracy on X and Y.&lt;br /&gt;
&lt;br /&gt;
[[Category:Unit development]]&lt;/div&gt;</summary>
		<author><name>Archangel of Death</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Gamedev:WeaponMainDir&amp;diff=8819</id>
		<title>Gamedev:WeaponMainDir</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Gamedev:WeaponMainDir&amp;diff=8819"/>
		<updated>2006-03-06T21:32:31Z</updated>

		<summary type="html">&lt;p&gt;Archangel of Death: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==WeaponMainDir: The lowdown==&lt;br /&gt;
After so many months, I finally figured out how to get the angles I want in WeaponMainDir! It defines the position of a point that the engine gets the vector of from the weapon origin, like so:&lt;br /&gt;
o----&amp;gt;o&lt;br /&gt;
First o is the weapon origin, defined in the query function of your script. The second is defined by the coordinates of WeaponMainDir. So, to figure out your numbers (still using o&#039;s as the two points):&lt;br /&gt;
Draw a triangle&lt;br /&gt;
DistanceX OR DistanceY&lt;br /&gt;
 o _____________&lt;br /&gt;
   \            |&lt;br /&gt;
     \          |&lt;br /&gt;
       \        |&lt;br /&gt;
         \      | DistanceZ&lt;br /&gt;
           \    |&lt;br /&gt;
             \  | &amp;lt;--- This is your desired angle. &lt;br /&gt;
               \| &lt;br /&gt;
                o &amp;lt;--- Weapon origin&lt;br /&gt;
Ignore the DistanceY for now.&lt;br /&gt;
&lt;br /&gt;
Lets say you want your gun to aim in a forward facing, 12 degree cone. Well, the degrees in MaxAngleDif start at the vector, and go around clockwise (for X/Z, not certain about Y/Z, but I think it is counter-clockwise) from there, so the default value of straight forward, 0 0 1, will aim straight forward and 12 degrees to the unit&#039;s right). Looking like so: (0 to 12 degrees)&lt;br /&gt;
__ &lt;br /&gt;
|/&lt;br /&gt;
You need to have that vector be 6 degrees to the left so the cone is actually centered on 0: (-6 to 6 degrees)&lt;br /&gt;
__&lt;br /&gt;
\|/&lt;br /&gt;
&lt;br /&gt;
Now, if you&#039;re comfortable with trigonometry, you can look at the big diagram above and see that the distance you need is opposite the angle/ adjacent the angle = TAN(of the angle). Pull out your handy dandy scientific calculator (or change the one in windows to scientific mode) and plug in TAN(6), getting 0.105104.... Now start trying out fractions of X/Z using the &amp;quot;guess then narrow it down&amp;quot; method (thats the first number and last number of the three defined in MaxAngleDif), to try to get them close (3rd or 4th decimal place should be close enough accuracy) to that decimal number. &#039;&#039;&#039;They have to be whole numbers!&#039;&#039;&#039; (Why? Because I&#039;m not testing it) If your a trig wizz, which I am not, you may have picked the best numbers just by looking at it. You should find 2/19 produces a good value of 0.105264... Check your values by doing arctan(X/Z) (may be tan(superscript)-1 on your calculator, not to be confused with 1/tan, so don&#039;t try that if you can&#039;t find it). This should give a number very close to your angle, if you went to the 3rd decimal place in accuracy when picking your X/Z, then the value will be about that accurate as well. In our case, arctan(2/19)=6.009006...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Booya!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want that 12 degree cone to be centered around 90 degrees left of the unit, you&#039;d take your 6 degree angle, and at it to 90, so you&#039;d do that process on 96 degrees. You&#039;ll find tan(96) comes out negative, thats because your Z value is going to be negative. Go ahead and graph it on a piece of paper if you don&#039;t see why its negative.&lt;br /&gt;
&lt;br /&gt;
Now, that DistanceY I told you to ignore! Lets look at it now. You work it the same as for DistanceX. Lets just say when working out your numbers for X you were looking top-down at your unit, for Y your looking at the side. If your using X/Z already, you&#039;ll have to use that same value in your Y/Z. Well, at least it makes figuring out Y easier, just multiple the value from tan(angle) by Z. Problem is it will probably be a decimal that you can&#039;t round without it being horribly inaccurate. If it is (which is very likely), you might try finding your Y/Z values as when you found X/Z, then use &amp;quot;Least Common Denominators&amp;quot; to have equal Z values and still the desired accuracy on X and Y.&lt;br /&gt;
&lt;br /&gt;
[[Category:Units]]&lt;/div&gt;</summary>
		<author><name>Archangel of Death</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Gamedev:WeaponMainDir&amp;diff=8818</id>
		<title>Gamedev:WeaponMainDir</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Gamedev:WeaponMainDir&amp;diff=8818"/>
		<updated>2006-03-06T21:22:44Z</updated>

		<summary type="html">&lt;p&gt;Archangel of Death: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==WeaponMainDir: The lowdown==&lt;br /&gt;
After so many months, I finally figured out how to get the angles I want in WeaponMainDir! It defines the position of a point that the engine gets the vector of from the weapon origin, like so:&lt;br /&gt;
o----&amp;gt;o&lt;br /&gt;
First o is the weapon origin, defined in the query function of your script. The second is defined by the coordinates of WeaponMainDir. So, to figure out your numbers (still using o&#039;s as the two points):&lt;br /&gt;
Draw a triangle&lt;br /&gt;
DistanceX OR DistanceY&lt;br /&gt;
 o _____________&lt;br /&gt;
   \            |&lt;br /&gt;
     \          |&lt;br /&gt;
       \        |&lt;br /&gt;
         \      | DistanceZ&lt;br /&gt;
           \    |&lt;br /&gt;
             \  | &amp;lt;--- This is your desired angle. &lt;br /&gt;
               \| &lt;br /&gt;
                o &amp;lt;--- Weapon origin&lt;br /&gt;
Ignore the DistanceY for now.&lt;br /&gt;
&lt;br /&gt;
Lets say you want your gun to aim in a forward facing, 12 degree cone. Well, the degrees in MaxAngleDif start at the vector, and go around clockwise (for X/Z, not certain about Y/Z, but I think it is counter-clockwise) from there, so the default value of straight forward, 0 0 1, will aim straight forward and 12 degrees to the unit&#039;s right). Looking like so: (0 to 12 degrees)&lt;br /&gt;
__ &lt;br /&gt;
|/&lt;br /&gt;
You need to have that vector be 6 degrees to the left so the cone is actually centered on 0: (-6 to 6 degrees)&lt;br /&gt;
__&lt;br /&gt;
\|/&lt;br /&gt;
&lt;br /&gt;
Now, if you&#039;re comfortable with trigonometry, you can look at the big diagram above and see that the distance you need is opposite the angle/ adjacent the angle = TAN(of the angle). Pull out your handy dandy scientific calculator (or change the one in windows to scientific mode) and plug in TAN(6), getting 0.105104.... Now start trying out fractions of X/Z using the &amp;quot;guess then narrow it down&amp;quot; method (thats the first number and last number of the three defined in MaxAngleDif), to try to get them close (3rd or 4th decimal place should be close enough accuracy) to that decimal number. &#039;&#039;&#039;They have to be whole numbers!&#039;&#039;&#039; (Why? Because I&#039;m not testing it) If your a trig wizz, which I am not, you may have picked the best numbers just by looking at it. You should find 2/19 produces a good value of 0.105264... Check your values by doing arctan(X/Z) (may be tan(superscript)-1 on your calculator, not to be confused with 1/tan, so don&#039;t try that if you can&#039;t find it). This should give a number very close to your angle, if you went to the 3rd decimal place in accuracy when picking your X/Z, then the value will be about that accurate as well. In our case, arctan(2/19)=6.009006...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Booya!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want that 12 degree cone to be centered around 90 degrees left of the unit, you&#039;d take your 6 degree angle, and at it to 90, so you&#039;d do that process on 96 degrees. You&#039;ll find tan(96) comes out negative, thats because your Z value is going to be negative. Go ahead and graph it on a piece of paper if you don&#039;t see why its negative.&lt;br /&gt;
&lt;br /&gt;
Now, that DistanceY I told you to ignore! Lets look at it now. You work it the same as for DistanceX. Lets just say when working out your numbers for X you were looking top-down at your unit, for Y your looking at the side. If your using X/Z already, you&#039;ll have to use that same value in your Y/Z. Well, at least it makes figuring out Y easier, just multiple the value from tan(angle) by Z. Problem is it will probably be a decimal that you can&#039;t round without it being horribly inaccurate. If it is (which is very likely), you might try finding your Y/Z values as when you found X/Z, then use &amp;quot;Least Common Denominators&amp;quot; to have equal Z values and still the desired accuracy on X and Y.&lt;/div&gt;</summary>
		<author><name>Archangel of Death</name></author>
	</entry>
</feed>