A. Trigger Duplicator Manual (for version 0.95)

    Thank you for downloading Trigger Duplicator by: MindArchon(U)

    Trigger duplicator is a program that will allow the user to quickly and efficiently duplicate mass triggers in order to simplify the process of creating a map in starcraft. This manual will go over everything that you need to know about the program and how to use it efficiently.

B. Quick Reference

    1. Using Trigger Duplicator
    2. Conditions Listings
    3. Actions Listings
    4. Misc Unit Listings
    5. Misc Variables Listings
    6. Tips and Tricks
1. Using Trigger Duplicator

    Step One: "Opening a map."
    After viewing the Trigger Duplicator splash picture, you will be given the duplicator's interface. To begin, open a map by either selecting open from the file menu or pressing ctrl+O. Select the file you wish to duplicate in. Because this program can write directly into the current map its best to make a backup before attempting to use this program with your map.





    Step Two: "Selecting target players."
    Upon opening a file, select which player(s) you wish to apply and duplicate triggers into by checking off the boxes. There are a variety of hidden players and forces available. You may select multiple different players at the same time if you wish.





    Step Three: "Inserting the actions and conditions to be duplicated."
    You will be able to insert conditions and actions within the two boxes labeled conditions and actions. Note that the conditions and actions have a separate language compared to other programs like Starforge, thus you cannot simply copy and paste into this program without some modification that will fit this program's coding language. You can find the condition and action coding on this manual.



    To pull location numbers or string numbers to be used in the conditions or actions, simply click on the boxes at the bottom labeled: "Get String Number," or "Get Location Number." Select the location you want, and press the button on the bottom to copy the number to the clipboard. Select where you want to put the number and press ctrl+v to paste the number.



    If you already have triggers on your map, and you wish to use those to duplicate, such as you want to duplicate a kill trigger, you can easily select the triggers that already exist on the map by going to: "Options>Trigger Section>View Triggers" or pressing ctrl+r.



    You may select the trigger you want to insert into your map and click on the button at the bottom to paste both conditions and actions into the current box. You may also copy and paste certain parts of the conditions or actions into your box if you want.





    Step Four: "Inserting Variables."
    This program applies numbers for almost every textual items, for instance, a medic will have 34 as its call number. Attempting to use locations in the conditions or actions also calls for numbers as well as text. The usage of numbers for just about everything allows the user to fully control the boolean coding (equations like 1+1) that can be used in this program. For units, you may insert the default unit name without spaces instead of the number.

    You may use variables during the conditions and actions with up to 11 different variables labeled a, b, c, d, e, f, g, h, i, j, and x. X is visible on the panel, while the a-j must be accessed by the "Options>Other variables" or by pressing ctrl+a. Note that you cannot set a variable to another variable. Such as setting variable a = b. The program will not like this and you may lose all your work if you attempt this feat.





    You must assign each variable a number, as well as an interval, meaning each time that x moves from one number to the next, it will add the interval. These variables may be added, subtracted, multiplied, or divided. You may perform multiple operations with multiple different variables. To insert a variable, you have to put a "$" in front of the variable and the variable must be taking a place within a condition or action that is a number.

    Think of x as the "master variable." This variable controls how many steps or "duplications" to take before finishing. You do not need to use x in the conditions or actions, its really just there to count how many times to duplicate. You may however, use it if you wish. To tell the program to duplicate 10 times, insert a "1" and "10" into the corosponding boxes. The program will count 0 as 1 if you use it. This number must be a raw number, not a variable.



    In reguards to locations, the new feature that lets you change location numbers called the "Modify Trigger Numbers" ctrl+L. Each location is given a number as it is placed. This set number cannot be changed by simply changing the string. The new feature allows for you to move around the location number and shift it for your needs. You can literally move the 250th location all the way to being location number one. Simply click on the move up or move down to move the location wherever you need it to be. After you finish, click save and it will automatically update and close the location number editor. It also shows some unique statistics at the bottom such as the amount of triggers that the location uses (just some fun information). Be warned however, as location 64 is the anywhere location. Try by all means to leave it where it should be. Map glitches will occur that will cause some serious issues if you attempt to move it somewhere else.





    The other new option, the "$X Variable Skipping," ctrl+I, allows for you to skip an entire interval (this allows for you to avoid and dodge certain locations and or triggers and gives you more availability on the modifications of the triggering to your needs. Simply open up the section and select a value to skip and drop it in by clicking add. Now, when you use the parent variable to create triggers, if X passes through that number it will be ignored and skipped.

    Example: Setting For i = 1 to 10, with a skip of 5. The end result would write triggers like this: 1,2,3,4,6,7,8,9,10. It skipped writing the 5th trigger, because I added in a skip of 5.





    After you are satisfied with the triggers to be duplicated and you are ready, select "File>Compile Triggers" or ctrl+t to start duplicating. Should you run into any problems, the program will notify you that there is some sort of error in your conditions, actions, or steps. Make sure you have the correct condition and action outline and make sure you are using them in the right places.



    With sucess comes the completion message following with the amount of triggers duplicated. Good Job.


    Step Five: "Saving a map."
    Whoa hold on you aren't done yet! After the triggers are duplicated, they have to be saved! Select: "File>Save Map" or ctrl+s to save your duplicated triggers.



    You may set the sound compression if you wish before saving it, by going to "Options>Sound Compression," this allows you to customize how compressed a sound is. The default is medium.

    Now you are done. Be sure to check on your triggers in a map editor to make sure that your triggers turned out the way you wanted them to turn out.

2. Conditions Listings

    Accumulate(Player, Comparison, Amount, Resource);
    Always();
    Briefing();
    Bring(Player, Comparison, Amount, Unit, Location#);
    Command(Player, Unit, Comparison, Amount);
    CommandLeast(Unit);
    CommandLeastAt(Unit, Location#);
    CommandMost(Unit);
    CommandMostAt(Unit, Location#);
    CountdownTimer(Amount, Comparison);
    Deaths(Player, Comparison, Amount, Unit);
    ElapsedTime(Comparison, Amount);
    HighestScore(ScoreType);
    Kill(Player, Comparison, Amount, Unit);
    LeastKills(Unit);
    LeastResources(Resource);
    LowestScore(ScoreType);
    MostKills(Unit);
    MostResources(Resource);
    Never();
    Opponents(Player, Comparison, Amount);
    Score(Player, Comparison, Amount, Score);
    Switch(Switch#, State);

3. Actions Listings

    CenterView(Location#);
    Comment(String#);
    CreateUnit(Player, Unit, Amount, Location#);
    CreateUnitProperty(Player, Unit, Amount, Location#, SlotNumber);
    Defeat();
    DisplayText(String#, AlwaysDisplay);
    Draw();
    GiveUnits(StartPlayer, EndPlayer, Unit, Amount, Location#);
    KillUnit(Player, Unit);
    KillUnitAt(Player, Unit, Amount, Location#);
    LeaderBoardControlAt(Unit, Location#, String#);
    LeaderBoardControl(Unit, String#);
    LeaderBoardGreed(Amount);
    LeaderBoardKills(Unit, String#);
    LeaderBoardPoints(ScoreType, String#);
    LeaderBoardResources(ResourceType, String#);
    LeaderBoardGoalControlAt(Unit, Location#, String#, Amount);
    LeaderBoardGoalControl(Unit, String#, Amount);
    LeaderBoardGoalKills(Unit, String#, Amount);
    LeaderBoardGoalPoints(ScoreType, String#, Amount);
    LeaderBoardGoalResources(ResourceType, String#, Amount);
    LeaderBoardComputerPlayers(State);
    MinimapPing(Location#);
    ModifyUnitEnergy(Location#, Player, Percent, Unit, Amount);
    ModifyUnitHangarCount(Location#, Player, HangarCount, Unit, Amount);
    ModifyUnitHitPoints(Location#, Player, Percent, Unit, Amount);
    ModifyUnitResourceAmount(Location#, Player, ResourceAmount, Unit, Amount);
    ModifyUnitShieldPoints(Location#, Player, Percent, Unit, Amount);
    MoveLocation(Location#, Player, Unit, LocationToMove#);
    MoveUnits(Player, Unit, Amount, Location1#, Location2#);
    MuteUnitSpeech();
    Order(Player, Unit, LocationStart#, LocationGo#, Order);
    PauseGame();
    PauseTimer();
    PlayWav(String#);
    PreserveTrigger();
    RemoveUnit(Player, Unit);
    RemoveUnitAt(Player, Unit, Location#, Amount);
    RunAIScript(Number);
    RunAIScriptAt(Location#, Number);
    SetAlliance(Player, Status);
    SetCountdownTimer(Modifier, Amount);
    SetDeaths(Player, Unit, Modifier, Amount);
    SetDoodadState(Player, Modifier, Unit, Location#);
    SetInvincibility(Player, Modifier, Unit, Location#);
    SetMissionObjectives(String#);
    SetNextScenario(String#);
    SetResources(Player, Modifier, ResourceType, Amount);
    SetScore(Player, Modifier, Score, Amount);
    SetSwitch(Switch#, Modifier);
    TalkingPortrait(Unit, Time);
    Transmission(Location#, Wav#, Modifier, TransTime, WavTime, Unit, String#);
    UnmuteUnitSpeech();
    UnpauseGame();
    UnpauseCountdownTimer();
    Victory();
    Wait(Time);

4. Unit Listings

    0=marine
    1=ghost
    2=vulture
    3=goliath
    4=goliathturret
    5=siegetank(tankmode)
    6=tankturret(tankmode)
    7=scv
    8=wraith
    9=sciencevessel
    10=guimontang(firebat)
    11=dropship
    12=battlecruiser
    13=spidermine
    14=nuclearmissile
    15=civilian
    16=sarahkerrigan
    17=alanschezar
    18=alanschezarturret
    19=jimraynor(vulture)
    20=jimraynor(marine)
    21=tomkazansky
    22=magellan
    23=edmundduke(siegetank)
    24=edmundduketurret
    25=edmundduke(siegemode)
    26=edmundduketurret
    27=arcturusmengsk
    28=hyperion
    29=norad2
    30=siegetank(siegemode)
    31=tankturret(siegemode)
    32=firebat
    33=scannersweep
    34=medic
    35=larva
    36=egg
    37=zergling
    38=hydralisk
    39=ultralisk
    40=broodling
    41=drone
    42=overlord
    43=mutalisk
    44=guardian
    45=queen
    46=defiler
    47=scourge
    48=torrarsque
    49=matriarch
    50=infestedterran
    51=infestedkerrigan
    52=uncleanone
    53=hunterkiller
    54=devouringone
    55=kukulza
    56=kukulza
    57=yggdrasill
    58=valkyriefrigate
    59=mutalisk/guardiancocoon
    60=corsair
    61=darktemplar
    62=devourer
    63=darkarchon
    64=probe
    65=zealot
    66=dragoon
    67=templar
    68=archon
    69=shuttle
    70=scout
    71=arbiter
    72=carrier
    73=interceptor
    74=darktemplar
    75=zeratul
    76=tassadar/zeratul
    77=fenix(zealot)
    78=fenix(dragoon)
    79=tassadar
    80=mojo
    81=warbringer
    82=gantrithor
    83=reaver
    84=observer
    85=scarab
    86=danimoth
    87=aldaris
    88=artanis
    89=rhynadon
    90=bengalaas
    91=cargoship
    92=mercenarygunship
    93=scantid
    94=kakaru
    95=ragnasaur
    96=ursadon
    97=egg
    98=raszagal
    99=samirduran
    100=alexeistukov
    101=maprevealer
    102=gerarddugalle
    103=lurker
    104=infestedduran
    105=disruptionweb
    106=commandcenter
    107=comsatstation
    108=nuclearsilo
    109=supplydepot
    110=refinery
    111=barracks
    112=academy
    113=factory
    114=starport
    115=controltower
    116=sciencefacility
    117=covertops
    118=physicslab
    119=starbase
    120=machineshop
    121=repairbay
    122=engineeringbay
    123=armory
    124=missileturret
    125=bunker
    126=noradii
    127=ioncannon
    128=urajcrystal
    129=khaliscrystal
    130=infestedcommandcenter
    131=hatchery
    132=lair
    133=hive
    134=nyduscanal
    135=hydraliskden
    136=defilermound
    137=greaterspire
    138=queensnest
    139=evolutionchamber
    140=ultraliskcavern
    141=spire
    142=spawningpool
    143=creepcolony
    144=sporecolony
    145=unusedbuilding
    146=sunkencolony
    147=overmind(withshell)
    148=overmind
    149=extractor
    150=chrysalis
    151=cerebrate
    152=cerebratedaggoth
    153=unusedbuilding5
    154=nexus
    155=roboticsfacility
    156=pylon
    157=assimilator
    158=unusedbuilding
    159=observatory
    160=gateway
    161=unusedbuilding
    162=photoncannon
    163=citadelofadun
    164=cyberneticscore
    165=templararchives
    166=forge
    167=stargate
    168=stasiscell/prison
    169=fleetbeacon
    170=arbitertribunal
    171=roboticssupportbay
    172=shieldbattery
    173=khaydarincrystalformation
    174=temple
    175=xel'nagatemple
    176=mineralfield(type1)
    177=mineralfield(type2)
    178=mineralfield(type3)
    179=cave
    180=cave-in
    181=cantina
    182=miningplatform
    183=independantcommandcenter
    184=independantstarport
    185=independantjumpgate
    186=ruins
    187=kyadarincrystalformation
    188=vespenegeyser
    189=warpgate
    190=psidisruptor
    191=zergmarker
    192=terranmarker
    193=protossmarker
    194=zergbeacon
    195=terranbeacon
    196=protossbeacon
    197=zergflagbeacon
    198=terranflagbeacon
    199=protossflagbeacon
    200=powergenerator
    201=overmindcocoon
    202=darkswarm
    203=floormissiletrap
    204=floorhatch
    205=leftupperleveldoor
    206=rightupperleveldoor
    207=leftpitdoor
    208=rightpitdoor
    209=floorguntrap
    210=leftwallmissiletrap
    211=leftwallflametrap
    212=rightwallmissiletrap
    213=rightwallflametrap
    214=startlocation
    215=flag
    216=youngchrysalis
    217=psiemitter
    218=datadisc
    219=khaydarincrystal
    220=mineralclustertype1
    221=mineralclustertype2
    222=vespenegasorbtype1
    223=vespenegasorbtype2
    224=vespenegassactype1
    225=vespenegassactype2
    226=vespenegastanktype1
    227=vespenegastanktype2
    229=anyunit
    230=men
    231=buildings
    232=factories

5. Misc Variables Listings


    Players-valid Values:

         P1-P12
         Foes
         Allies
         CurrentPlayer
         Force1
         Force2
         Force3
         Force4
         AllPlayers
         NonAlliedVictoryPlayers


    Resources:

         Ore
         Gas
         OreAndGas


    Modifiers:

         All
         Set [This modifier is used for switches]
         Clear
         Toggle
         Randomize
         Move
         Patrol
         Attack
         SetTo [This modifier is used for minerals,score,timers,etc.]
         Add
         Subtract
         Enable
         Disable


    Score:

         Kills
         Razings
         KillsAndRazings
         Custom


6. Tips and Tricks
  1. Tailoring your mapping to the program. "Locations."
    If you are planning on creating events for many locations, and you want it to create certain things in a certain order, be sure to place locations in that specific order. For instance, you want to duplicate a trigger that will create a row of 10 missle turrets as you attain a certain amount of kills. Place each location one after the other! By doing this, each location is given a sequencial number. This makes life so much easier, as you can run the duplicator in sequencial order; allowing you to duplicate that kind of trigger. If you placed the locations randomly and not all at one time, the locations would be named differently, thus disabling you from duplicating the trigger!

  2. Tailoring your mapping to the program. "Units."
    If you are planning on using deaths to track events on a map, be sure to use the units in sequencial order! The unit listing is above. You should tailor your map to these unit orders if you wish to use the trigger duplicator to its optimum performance. Say you wanted to create a bound tournament where you set deaths to determine which square will be an explosion. If you create a 5x5 box to bound in, you would need 25 units and 25 locations. Setting the player's deaths to 1 could create an explosion. Tieing a unit to each of the units in a 25 unit order would simplify your life greatly; such as using unit numbers 1-25 for explosions could potentially allow for you to set up all explosions for all players in less then 2 minutes!



    On a final note, just remember that this program is a sequencial kind of thing. It strives on ordered numbers. Make sure you do things one after the other to use it to its fullest potential.

    Good luck.

Trigger Duplicator Copyright (C) MindArchon(U) 2005-2006, all rights reserved.
Starcraft and Staredit Copyright (C) Blizzard 1998-2006, all rights reserved.