Arsenal Zero Tutorial

Unkown Author || Please Email Otak

Unless you've been living far away in gui land you've heard of Arsenal zero, it seems to have several posibilities, but its documentation is very obscure. So I'll begin this multi part series.

Table of contents:

The Dangers of Arsenal Zero
Where to find it
Sample Editing
Part II


-The Dangers of Arsenal Zero

Despite its broad reaching abilities thier are some things that are lacking (or dangerous) in Arsenal zero:

All math must be done by hand
You have to calculate all your flags and such by manually adding up all the numbers required, so unless you are willing to keep a calculator on hand (or decompile a Arsenal III dat file, you cheater) then Arsenal zero is not for you

Corrupted files
Although Arsenal zero will normally generate completely incorupt files, you dat files depend on the azf files for editing. Some of the one's that come with az are corrupt (the units.azf and techdata.azf files specifically) *gasp*

No Gui
This is the ultimant strenth and problem with az, you have to edit in text only mode. So watch out, you have no pretty icons to indicate what you're doing just your wits!


-Where to find it

Since camsys is now 100% gone here's a list of where to find this valuble utility:
Mac version: http://customs.macstarcraft.com/util/

Windows: http://camsys.org/softwares/StarCraft/Arsenal_Zero.zip


-Sample Editing

To get started you just need three simple steps:

1. just select the dat file you wish to decompile and then type in the path of the txt file you want to write to.
2. check the "dat to txt" box
3. click on the "compile/decompile" button

You now have your file to edit.

To make your txt back into a dat file:
1. just select the txt file you wish to decompile and then type in the path of the dat file you want to write to.
2. check the "txt to dat" box
3. click on the "compile/decompile" button

For this example I'll use this small section from a decompiled version of units.dat, taken from the "Terran Marine"
due to space limitations I am only including sections I'm useing, so follow me ok?
[Terran Marine]
...bunch of data...
Special Ability Flags=201359360
Subunit Attack Range=0
Sight Range=7
Armor Upgrade Group=0
Size=1
Armor Amount=0
...even more data...

misc. data
Most of this is strait forward, sight, subunit attack range, armor amount, etc...

If you don't get this, please refer to "config 101" in the next class :P

group items
Thier are a few exceptions though, all "group" items are focused on one of several catagories, and for these you will have to refer to lists of all the possible answers.

If you have a copy of Arsenal III handy you can look up the data there, personally I'd recomend useing my custom data files, that fully document all this though ^_~

flag items
These are the most compicated of the items, anything with the word "flag" in it refers to one of two things

1. If it's a 1 byte boolean value, it can be on or off, only 2 choices available
2. If it's a big honkin multibyte string (2+) or has more possible values that 0 or 1 then we have the ugly flag

The first type of flag is very strait forward and is either true or false, not much choice there.

For the second type we have a more complicated option, so here goes:
Flags are represented by strings of bits, for the bigger flast they are identicle to the first type, they just have more possiblilities here's an example:

A simple 3 bit unix flag, used for the "chmod" command (don't ask about it, just listen) now chmod is used to set the premissions for users and is used like so:
chmod ###
each # is used to represent the owner/group/everbody permissions for the file.

so let's show this:
chmod 755
which is binary for:
111 101 101
so for each of these each bit is a flag, we have "read" "write" then "execute" three bits three values. For the owner all are on, "group" and "everybody" permissions only have the "read" and "execute" flags set.


Starcraft's flags work the same way, so lets take a look:
So I first I pull out my handy reference sheet:
*0000000001 Building
*0000000002 Add-on
*0000000004 Flyer
*0000000008 Worker
*0000000016 Sub-Unit (Turret)
*0000000026 Flying Building
*0000000064 Hero
*0000000128 Regenerates HP
*0000000160 Animated Idle
*0000000320 Cloakable
*0000000640 2 Units in 1 Egg
*0000001280 Neutral accessories
*0000001600 Resource Depot
*0000003200 Contains gas
*0000006400 Robotic Unit
*0000012800 Detector
*0000016000 Organic unit
*0000032000 Creep Building
*0000064000 Unused
*0000128000 Requires PSI
*0000160000 Burrowable
*0000320000 Mana bar
*0000640000 Permanent cloak
*0001280000 NPC / accessories
*0001600000 Morph from other unit
*0003200000 Large Unit ???
*0006400000 Huge Unit ???
*0012800000 Auto attack and move
*0160000000 Attack
*0320000000 Invincible
*0640000000 Mechanical
*1280000000 Produces Units

We have:
402718720
Special Ability Flags=201359360

in binary we get:
0001100000000001000000000000000

So what's set? Starting from the right we start at the top (kinda wierd, but you read backwards)
The 17th bit is set, so our unit is organic
The fourth bit is set so it can attack
The fifth bit is set, so the unit will attack automatically

For the average joe all you got to do is work up the list and add the needed values, the biggest ones are at the bottom (for the more valuble "left" bits) and the tiny values are at the top for the tiny "right" bits.


-Part II
[This section can not be found, if you have it please email it to Otak]

Coming to part II!
The tutorial on editing the azf files, and the mistakes to watch out for!

All content copyright © 2001- 2005 Stormcoast Fortress