Staredit Network > Forums > SC1 UMS Mapmaking Assistance > Topic: [EUD] Documentation Thread
[EUD] Documentation Thread
Jan 13 2018, 12:36 am
By: Sie_Sayoka  

Jan 13 2018, 12:36 am Sie_Sayoka Post #1

Post your findings here until we get a better place to organize them.

CUnit Descriptions
Supported EUDs
EUD Editor 2
EPD Editor


I changed the drawing functions of archon energy to see what each would do. I have not tested it on other images but it should give you a general idea.

DatEdit Descriptions:

0: Normal Draw
1: Unk 1
2: Enemy Unit Cloaking (+Spell)
3: Own Unit Cloaking (+Spell)
4: Ally Cloaking
5: Own Unit Cloaking (+Spell)
6: Own Unit Cloaking (+Drawing)
7: (Crash)
8: EMP Shockwave
9: Use Remapping
10: Shadow/FoW (dark.pcx)
11: Unk 11
12: Warp Flash (Crash on Staredit)
13: Don't Mirror Frames
14: Unk 14
15: Hide Graphics
16: Hallucinated
17: Warp Flash

Farty1billion Descriptions

8: For some reason it will duplicate the archon beings. They do not shoot 2 beams.
11: It will crash SC.
12: Not visible in remastered. Uses Warp Texture (210 in images) texture when a building warps in.
15: Selection box will change size because of the archon animations.
17: It will fade from pure white and play a death animation. This is only visual. Most useful for using on things with short visual time like bullets. Normally used at the completion of a Protoss building.

Post has been edited 7 time(s), last time on Apr 25 2018, 5:26 am by Sie_Sayoka.


Jan 13 2018, 12:39 am Lanthanide Post #2

Farty's description of these is better than the Datedit one:
0 - normal
1 - doesn't draw hallucination
2 - non-vision cloaking
3 - non-vision cloaked
4 - non-vision uncloaking
5 - vision cloaking
6 - vision cloaked
7 - vision uncloaking
8 - EMP
9 - uses remapping
10 - shadow
11 - HP bar
12 - warp flash
13 - selection circle remapping
14 - draw original player color (used for flags -- player color stored in draw data)
15 - draw update rect
16 - hallucination
17 - warp flash


Jan 14 2018, 8:02 am Sie_Sayoka Post #3


Some spells require animations and units without cast spell animations (castspell in iscript) can not use them. Spells not on this list are assumed to not require an animation and thus can be used by any unit. You can view them yourself by going to datedit>orders and looking at each spell. 7 is the animation value that requires animations whilst 28 is one that doesn't.

Current status: Untested

Requires Cast Spell Animation:

Yamato Gun
Dark Swarm
Spawn Broodling
EMP Shockwave
Psionic Storm
Stasis Field
Disruption Web
Mind Control
Optical Flare

Post has been edited 1 time(s), last time on Jan 15 2018, 10:49 am by Sie_Sayoka.


Jan 15 2018, 10:22 am dpblh Post #4

Quote from Sie_Sayoka
Some spells require animations and units without cast spell animations (castspell in iscript) can not use them.

Is there any way to change behavior of spell? For example make them not require any animation when cast.


Jan 15 2018, 10:45 am Sie_Sayoka Post #5

Quote from dpblh
Quote from Sie_Sayoka
Some spells require animations and units without cast spell animations (castspell in iscript) can not use them.

Is there any way to change behavior of spell? For example make them not require any animation when cast.
I haven't tested it but I assume not with the current whitelisted EUDs. The orders.dat requires those spells to use a cast spell animation which we cannot edit. It may be possible to mimic spells by replacing others but I haven't tested it.


Jan 15 2018, 11:14 am dpblh Post #6

Quote from Sie_Sayoka
I haven't tested it but I assume not with the current whitelisted EUDs. The orders.dat requires those spells to use a cast spell animation which we cannot edit. It may be possible to mimic spells by replacing others but I haven't tested it.

Just curios, was it possible before SC:R?


Jan 16 2018, 9:27 am Sie_Sayoka Post #7

Probably, I wouldn't know though.


Jan 25 2018, 9:40 pm Sie_Sayoka Post #8


The psi field sprite is split into 4 different images (584-587). Replacing another units' sprite with psi field will result in the full circle.

584 Top Right
585 Bottom Right
586 Top Left
587 Bottom Left

There are only 3 draw functions that work on Psi Fields that persist. It seems like the remapping is hardcoded? so you can only get blue, however, for some reason the shadow draw function will overlap it. You can see the results in the image posted.

6: Own Unit Cloaking (+Drawing)
10: Shadow/FoW (dark.pcx)
17: Warp Flash

Warp Flash will fade and turn invisible. It does not start out white. The various other cloaking draw functions do work but only for the duration of the cloaking animation.


Apr 10 2018, 2:07 pm Sie_Sayoka Post #9


By using Firegraft within EUD Editor 2 we can get any unit to create buildings. Drone buildings will consume the unit but cancelling the morph will replace it with a drone. Issuing a different order while creating a Terran building will halt the construction.

1. Firegraft>Button Set. Select the unit you want to be your builder and add the build tree or specific buildings you want to make. The button info can be copy/pasted from other cards.
2. Firegraft>Requirements>Unit. Select always under each building that you want to create. If you want it locked behind specific tech then just remove the 'current unit is' tag.
3. Firegraft>Requirements>Order. Select always for Drone Start Mutate/Build (SCV)/Build (Probe)
4. Done

If you would like to resume construction for Terran buildings after halting:

1. Firegract>Order. Set 'Is Building (SCV)' to always.
2. Datedit>Unit>AI Actions. Right-click Action to Harvest&Repair.

Unfortunately we can not use this method to create men or special buildings.


This method will let us create medics that can attack, heal, and cast spells. Unfortunately the animations and sound effects do have some issues for all units using medic sprites.

1. Datedit>Unit>AI Actions. Set all of the idle actions to 'Idle (Medic)'. This will allow the unit to heal.
2. Datedit>Sprite. Change the unit that you want to be a combat medic's sprite to that of a Medic.
3. Datedit>Image. Change the Medic's Iscript to a Ghost's. This will prevent rock sprites from creating by adding in casting animations. This is the only iscript that I've found to be compatible.
4. Firegraft>Button Set. Add in medic spells.
5. Firegraft>Requirements>Technology Using. Set the medic spells to always or if you'd like to gate them behind research remove the current unit is tag.
6. Firegraft>Requirements>Order. Set 'Cast Spell (Heal)' to always. The other spells do not have requirements.
7. Because we are doing visual changes the unit can't be pre-placed. Create it via triggers or training.

Attached is cryptocurrency malware both the map and eud editor files.

Hits: 1 Size: 328.18kb

Post has been edited 3 time(s), last time on Apr 10 2018, 2:30 pm by Sie_Sayoka.


Apr 11 2018, 6:28 pm lifebot Post #10

Very nice finds Sayoka. Saw you testing all day yesterday


Apr 14 2018, 11:45 am Sie_Sayoka Post #11



Turrets are a complicated mess and I haven't fully tested what can be done with them yet. However there are a few factors that determine if a unit can use a subunit.

The image must have a .lol file. This determines if the image can hold a subunit/turret, or in the case of BCs it's for Yamato overlay. Both archons use them for other things and can't hold subunits. Floor missile trap and Missile turret could possibly be other units that can use subunits but we can't edit the sprites for them. In conclusion only Goliath/BC/Vessel/Tank/Wraith can hold subunits.

1. Datedit>Sprite. Change a turret to the image you want the new turret to be.

And that's it. Normal units work as well and even doodads!

If adding a turret onto a BC/Vessel:

1. Datedit>Unit>Advanced>Subunit1. Change it to tank turret (6).

The Vessel turret is tied to the iscript and can not be changed into a different sprite.

There's a lot of tweaking that can be done to achieve desired effects. You can copy the settings of a tank turret onto another unit to use that as a subunit. Then you can different types of tanks.

Because the walk animations of Goliath turrets are weird, Siege turrets lack movement frames, and the muzzle flash of Tank Turrets may not be desirable you can change the iscript of them into a Vulture's. Vulture iscript only has directional frames, lacks sound, and has no muzzle flash.

1. Datedit>Image>Image of subunit you want to change. Change it into vulture.
2. Datedit>Image>Vulture Shadow. Change the draw function to 11. This hides the shadow after a brief period.

Normally a unit has to stop to attack however we can bypass this by changing the unit AI. Note that the Goliath turret can't turn 360 degrees like the tank.

1. Datedit>Unit>AI Actions>Attack Unit. Change 'Attack (Subunit)' to 'Attack (Building)'.


Changing a Powerup sprite into something else and picking it up will revert it back into its original sprite while being held by the worker. However by enabling a unit to be picked up it will affect the sprite being held by the worker. This held sprite will not be that of the original unit but that of a completely different unit. What determines this held sprite is a 177 difference between the original Unit ID and the held sprite's Image ID. More info and links here. An incomplete list of effects can be found here.

1. Datedit>Unit>Unit you want to pick up>AI Actions. Change both computer idle and human idle to 'Idle (Power-Up)'.
2. Have a worker pick up the unit.

The held sprite will perform attack animations when the worker attacks. If the held sprite is a unit that can't attack we need to disable some of its iscript functions.

1. Datedit>Image>Held Unit>General Properties. Uncheck 'Use Full Iscript'.

This will also prevent movement frames but not directional frames.

However because of the way this works there are a number of drawbacks.

1. Only a few images are able to be changed as Unit IDs only go up to 227.
2. The original unit will be unstable because of the changes to its AI and may crash when not being held.
3. Killing the worker holding the unit may crash the game.

It may be possible to make it more stable by removing the unit as soon as its not being held but more testing is necessary. It also may be possible to make more stable effects by changing the iscript of the held images or disabling 'full iscript' or 'graphics turn'.

Post has been edited 4 time(s), last time on Apr 18 2018, 5:57 pm by Sie_Sayoka.


Apr 20 2018, 10:20 pm Sie_Sayoka Post #12


You can make any unit into a subunit by changing its flags.

Datedit>Unit>Advanced. Check Subunit, remove Full-Auto Attack for the unit you want to be a subunit.
Datedit>Unit>AI Actions. You may want to change the behavior of the subunit as they will attack while the base unit is moving.
Datedit>Unit>Advanced. Select the unit you want to hold the subunit (e.g. Goliath) and choose the subunit through the Subunit1 field. Subunit2 doesn't do anything.


You can add additional images to units by changing the iscripts of their shadows. This will only work if the iscript you use creates an image. Iscripts will point directly to the GRP file which we can not edit.

Datedit>Image>Unit Shadow. Change the shadow iscript.

Some interesting, yet flawed, iscripts to use would be Psi Field Type1 and Science Vessel(Base). The psi field iscript generates 3 quarters of the pylon aura with the first quarter seen at the top right. Since we can't edit the GRP files there is no way to fill in that quarter. The vessel iscript creates a turret. In order for the base unit to attack you will need to disable the attack frame calls.

Datedit>Image>Science Vessel (Turret)>General Properties. Uncheck Use Full Iscript.


Emulating the Mutalisk's Glave Wurm is difficult because of the requirements of the weapon behavior. Normally if you set a weapon's behavior to Bounce it will not actually bounce because the requirements haven't been met.

Glave Wurm has SpecialState1 frames which allow it to create an additional bullet. Most images do not have this property and the ones that do are not ideal as bullets. However, Nuke Beam has both the SpecialState1 frames and a very small profile.

Datedit>Image>Nuke Beam>Iscript ID. Change it to Glave Wurm. If you don't want to to be red you can change the draw function to something else.

Because nuke beam isn't a unit or bullet we will have to jump through a lot of hoops to turn it into a bullet.

Datedit>Sprite>Image>Nuke Beam. Choose a unit you won't use like an unused unit.
Datedit>Flingy>Unused Unit. Change the speeds to what you want. Change the Move Control to Partially Morbile, Weapon.
Datedit>Weapon>Graphics>Unused Unit. Change the weapon you want.

Note that because we used the Glave Wurm iscript it will create both 'Glave Wurm/Seeker Spores Hit' and 'Glave Wurm Trail' images. You can change these sprites to what you want and/or change the draw functions of them. If you do change them then the normal Mutalisk's glave wurm will be affected by these changes.


Apr 30 2018, 2:46 am Sie_Sayoka Post #13


By using these EUDs we can pinpoint the screen location to the pixel. There are, however, limitations to what we can do with this.
  • The values are counted in pixels. Each terrain tile has 32 pixels.
  • The values start from the top left both for the map (which can be seen at the bottom left in SCMD) and for the screen.
  • Because the values start at the top left you will not be able to detect the rightmost and bottommost screen positions.
  • The screen resolution of BW is 640x480. You can calculate the center of the screen by offsetting the EUD values by 320x240. I'm not sure how it works in remastered.
  • The player ID for screen coordinates is shared for all players locally. This means that if you use a trigger that affects all players (e.g. create unit) it will desync.
  • Trigger actions that would be safe to use would be things such as display text, center view, play wav, etc.


Because we can detect the location of the screen we can implement directional sound within maps. 1.18 allows us to use .ogg audio files which can support stereo. By editing sound effects we can emulate both the direction and distance from a sound source. Unfortunately 1.18 also changed the behavior of how mute unit speech works and normal sound effects will be played at full volume. It may be possible to change the volume through EUDs but I haven't looked into it yet.

First we need to edit the sound effects to give it a sense of direction and distance. I use Audacity. It's free and suits our purposes just fine. I wont go too much into how to edit the sounds as it will probably depend on what kind of audio you're editing.
  • If the file you're editing is mono (such as SC wavs) you will need to convert it to stereo.
  • Panning left or right will make the audio sound like its coming from... the left or right.
  • Increased pitch will make it sound like its coming from above. Decreased pitch from below.
  • Lowering the volume and higher frequencies will make it sound like its far away.

You may end up with some artifacts due to pitch scaling so you can try tremble.

For the purposes of this example I'm only going to use 9 different audio files. One for the center and 8 for directions. sound.scx has triggers you can view as well as the sound effects. sound2.scx just adds the explosion visual. The map contains a grid of 4x4 squares. Because each tile is 32 pixels, a square will be 128x128 pixels which can be viewed within the triggers. Hotkey the barracks and create a marine to cause an explosion. The explosion occurs at the low platform square. The explosion sfx will change direction depending on where the low platform square is on the screen.

Ideally within an actual map you'd have automated triggers to calculate both the sound source and the screen position.

Hits: 0 Size: 180.42kb
Hits: 0 Size: 287.62kb


  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[12:59 pm]
TF- -- Anitoch
[05:57 am]
Voyager7456 -- Mini Moose 2707
Mini Moose 2707 shouted: OK, I give a shit about some of you, but I'm also kinda horny
[04:03 am]
Pr0nogo -- yes you do
[03:00 am]
KrayZee -- But I don't want shit
[02:26 am]
Mini Moose 2707 -- OK, I give a shit about some of you, but I'm also kinda horny
[02:02 am]
Pr0nogo -- nah, you just want kisses again
[02:02 am]
Mini Moose 2707 -- I give a shit about all of you (◕‿◕)
[10:59 pm]
Pr0nogo -- u
[10:49 pm]
O)FaRTy1billion[MM] -- u
[08:12 pm]
Dem0n -- FaRTy1billion
FaRTy1billion shouted: Dem0n why would you want a footer when a signature is a thing?
because who gives a shit
Please log in to shout.

Members Online: Roy, Excalibur, Voyager7456, TF-