.ale wiki page
-
I was thinking that we should create a page on the wiki (I know its already their waiting to be filled) to explain all the different bits of an .ale file and what all the different syntax do. I was hoping to get the more experienced .ale modders to back thins so that people won’t get disheartened when they see no tutorials or much written on the subject, we can always point them to that page so they can see what it all does. I spent the last 15 minuets building the page to see the “do not submit copyrighted work” bit at the bottom and when i looked at the help files i was using to get all the syntax names there was a copyright sign so I’ve had to scratch that (although I’ve got a copy of the wiki code here so i can put it back up if it’s alright to use it.) So could I use the list of syntax from Digital Brilliance’s ale help file provided with the ale decoder?
So what do you think? will people back this so we can understand the file format a little better or are people going to jealously guard their ale modding knowledge? And can i put all those syntax from the help file up their?
Ozed.
-
Of course you can post it, the copyright is so you know who to credit
-
Great, I will get up and post the table. I don’t know much about .ale’s (which is part of the reason i’m doing this) so I hope other more experienced can help fill this page. Some one will need to go over my definitions, I can’t say they will be 100% correct.
Ozed.
-
You might want to take a look at the XML Project’s source/output, too.
-
My output is a bit more verbose than Lancer’s, but whether it’s easier to understand/modify is up to the individual… As an example, here’s the complete XML of FX\MISC\gf_tlr_tube.ale (the smallest XML file).
<utfxml filename="gf_tlr_tube.ale" path="DATA\FX\MISC"><utf_root><aleffectlib><aleffectlib type="ALEffectLib" version="1" count="1"><effect name="gf_TLR_tube"><fx count="3">1, 3, 0, gf_TLR_tube_Sphere.emt 2, 3, 0, gf_TLR_tube.app 3, 32768, 1, 0xEE223B51</fx> <pairs count="1">1, 2</pairs></effect></aleffectlib></aleffectlib> <alchemynodelibrary><alchemynodelibrary type="AlchemyNodeLibrary" version="1.1" count="2"><node name="FxSphereEmitter"><effect type="0x103" name="Node_Name">gf_TLR_tube_Sphere.emt</effect> <effect type="0x003" name="Node_LifeSpan">Infinite</effect> <effect type="0x105" name="Node_Transform">0x435</effect> <effect type="0x200" name="Emitter_LODCurve"><float_header type="4" count="1">0: <float type="4" count="1">0: 1</float></float_header></effect> <effect type="0x002" name="Emitter_InitialParticles">1</effect> <effect type="0x202" name="Emitter_Frequency"><single type="4" count="1">0: 100 <loop count="1">0: 0, 0, 0</loop></single></effect> <effect type="0x202" name="Emitter_EmitCount"><single type="4" count="1">0: 0</single></effect> <effect type="0x202" name="Emitter_InitLifeSpan"><single type="4" count="1">0: 2 <loop count="1">0: 100e6, 0, 0</loop></single></effect> <effect type="0x202" name="Emitter_Pressure"><single type="4" count="1">0: 10 <loop count="1">0: 0, 0, 0</loop></single></effect> <effect type="0x202" name="Emitter_VelocityApproach"><single type="4" count="1">0: 0</single></effect> <effect type="0x202" name="SphereEmitter_MinRadius"><single type="4" count="1">0: 0</single></effect> <effect type="0x202" name="SphereEmitter_MaxRadius"><single type="4" count="1">0: 1 <loop count="1">0: 0, 0, 0</loop></single></effect></node> <node name="FxMeshAppearance"><effect type="0x103" name="Node_Name">gf_TLR_tube.app</effect> <effect type="0x003" name="Node_LifeSpan">Infinite</effect> <effect type="0x105" name="Node_Transform">0x435</effect> <effect type="0x002" name="MeshApp_MeshId">0</effect> <effect type="0x103" name="MeshApp_MeshName">TLRtube</effect> <effect type="0x001" name="MeshApp_UseParticleTransform">true</effect> <effect type="0x105" name="MeshApp_ParticleTransform">0x435</effect></node></alchemynodelibrary></alchemynodelibrary></utf_root></utfxml> ```As you can see, I didn't decode the top-level **fx**, and **pairs** simply describes how it's stored, not what it is. They're called **single** and **loop** because of a warning. Now that I think about it, I could probably have named the **type**, rather than using the raw number.