RTS Helper Documentation



To edit build orders, edit the corresponding TXT file in 'Build Orders/[Game Name]' directory. To create a new one, create a new TXT file. In the build order file every new line is a step. A step is a set of instructions that will appear one after another after a time interval. Separate instructions with 3 spaces to see them in diferent lines. After each step a sound will play and the screen will flash telling you that a new set of instructions have been loaded.

Line Breaks

You can add new lines in the current step using 3 spaces, /n or \n. You can use space or 2 spaces before and after /n, \n and and that extra space will be ignored. All the following lines are the same:

Villager to wood   Villager to food
Villager to wood/nVillager to food
Villager to wood /n Villager to food
Villager to wood\nVillager to food
Villager to wood  \n  Villager to food

Last Line

You can make the last instruction in the step appear in the bottom of RTS Helper window. This is useful for example for the amount of villagers in each resource. Use /f or \f before the final line, like this:

Villager to wood   Villager to food /f 3@F 4@W
Villager to stone   Villager to stone \f 3@F 4@W 2@S

Web Addresses

Any web address starting with http or https will be automatically converted to a clickable link, you don't need any special markup. If you don't want to show the full address, you can add : at the end of the address followed by the text that you want in the link using _ instead of spaces, like this: http://vixark.com/age-of-empires-ii:Visit_Vixark.com.


Add comments with ||. You can add comments in any part of the text. You close the comment again with ||. If your comment is the last text in the line, you don't need to close it.

The steps with comments at the end will show a green icon with a i letter in the application interface. The comment can be read in a tooltip by placing the mouse on top of the icon or as a dialog message after clicking it. If you don't want certain comment to appear, close it with ||. If you want to have a first comment not shown as an icon and a second comment shown as an icon in the same step, close the first comment with |||| and write the second comment afterwards. To add new lines inside comments use \n.

Names and Display

You can write the name of the entities (units, tecnologies, buildings, etc) in the build order using its name in any language, abbreviations and acronym and by default they will be displayed as the corresponding image. See all the possible english names here. For other languages you can use the in-game name. To use them, add the name between square brackets [], like this:

3 [Militia]   [Aldeano] to [F]   [Vil] to [Food]   [Villager] [Build] [House]

Aldeano is villager in spanish, F is the abbreviation of food and Vil the abbreviation of villager. You can use all of them and mix them up in the build order file and all will be recognized properly. For example, you can use [MAA], [M@A], [Men-at-Arms] or [KT], [KNT], [Kts], [knight] [knights] or [vil], [v], [villager], [VILLAGERS] and all of them will render correctly to the corresponding image.

Display Priorities

Instead of showing entities images, you can choose to display them in any language or abbreviation, so this allows to partialy translate the build order written in certain language to your own language. To do it, go to Settings > Display Priority and move your display preference to the top. If certain entity doesn't have a value for the selected display type, RTS Helper will look for the second display preference and so on.

Custom Names

You can also use custom names if you want to further personalize your build orders, for example, if you want to use Pointy Bois for Pikemen. In Settings > Custom Names enter your own name and you will be able to use it in your own build orders (but not to share it with others because they won't have this custom name) or you can use it to display build orders with your own custom names, selecting custom as the highest priority in Settings > Display Priority section.

The custom names feature also allows you to choose per entity basis the kind of display. For example, you may want to use images for resources and acronyms for buildings. To do this, use one of the following texts between squared brackets as a custom name: [Complete], [Common], [Abbreviation], [Acronym], [CommonPlural], [AbbreviationPlural], [AcronymPlural], [Image], [BR], [DE], [ES], [KO], [FR], [IT], [HI], [MS], [MX], [PL], [RU], [TR], [TW], [JP], [VI], [ZH].


The formating markup is done with angle brackets < >. It uses a pseudo HTML format, but simplified. The format option is added inside the angle bracket like this <formatsetting1 formatsetting2>. There's no closing angle bracket like in HTML, the format applies until other format is specified. If you don't want any special format, use <> to start a new section. You can use any character in your text except <, [ and ]. It works like this:

<b L>Title <i> Remarks:<>Never stop creating villagers.   Scout the map.   Find the sheep.

"Title" will be in a bigger font size (because of L) and it will be in bold text (because of b). The next line will have "Remarks:" in italics (because of i) and the rest of the text will be in normal font, color and size (because of <>).

The formating options are:


b: Bold.
i: Italics.
u: Underline.
nb: No bold. Makes the font regular, if the user has specified bold as default in settings.


Color Name: Any color name in this list.
Color Code: 3 or 6 letters hexadecimal code for color. For example, #FFF for white, #F00 for red, #000 for black, etc.


The text size is relative to the size choosed in settings by the user. You can't specify a fixed text size in the build order, you can only make it larger or smaller.
XXXS: Smallest.
M: Medium size. It's the font size choosed in settings.
XXXL: Largest.

Image Size

Percentage of image size relative to the normal text size.
IS##: Image will be ##% the size of the text.
Examples: IS400 (very big image), IS50 (very small image).


sub: Subscript text.
sup: Superscript text.
normalpos: Normal text. Only used internally because all text is normal by default.

Font Name

The name of the font should be written without spaces. The supported font names are: arial, arialblack, calibri, cambria, cambriamath, candara, comicsansms, consolas, constantia, corbel, couriernew, ebrima, franklingothicmedium, gabriola, georgia, impact, lucidaconsole, lucidasansunicode, malgungothic, microsofthimalaya, microsoftjhenghei, microsoftnewtailue, microsoftphagspa, microsoftsansserif, microsofttaile, microsoftyahei, microsoftyibaiti, mongolianbaiti, msgothic, mvboli, palatinolinotype, segoeprint, segoescript, segoeui, segoeuisymbol, simsun, sylfaen, symbol, tahoma, timesnewroman, trebuchetms, verdana, webdings and wingdings.

You can use font1 and font2 for using the primary and secondary fonts choosed in settings.


<b i u L red>Fast Castle    <>Build one villager    Keep Exploring the map    <b XXS>3F 6W

The format markup only applies to current step (a line in the text file). For next step (next line in the text file) the default format is applied without resetting it with <>. If you want to specify a format for all the build order, you can do it at the start of the file with the global format markup, read about that below.

HTML Comparison: Since there isn't a closing tag, every time that a new tag < > is found, it starts a new formatted section. Nesting multiple < > with formats is not supported like it can be done with HTML. For example, this HTML doesn't work:
<b>Bold Text<i>Bold and Italics</i></b>Normal Text
To get the same result as previous HTML in RTS Helper markup, you should write:
<b>Bold Text<b i>Bold and Italics<>Normal Text.


The markup for behaviors is done with braces { }. The most common behavior setting is the step duration. Example:

{t=130}<b l>Research Feudal Age   <>Explore the map and find the opponent.

Behavior options:

t: The duration of current step. It allows to have a step from different duration from the default duration. It's a number without quotes (""). Useful for creating steps for longer periods of time, for example when advancing age.

p: Progress in each step. The progress usually is the economic unit count, like villagers in Age of Empires II. It allows to sync the app with your game progress if you had idle time in the building that produces the economic units (Town Center in Age of Empires II). It also allows the app to measure your idle time and show you stats for it at the end of the game.

s: The sound to play when the step starts. The name should go between quotes ("") and should be one of name of files in RTS Helper\Sounds\Short or "none". You can use M3U playlists: s="Playlists\Example.m3u". You can join many sounds together with |, like this: s="AOE2 The Wonder, The Wonder, The... No!.mp3|AOE2 You Played Two Hours to Die Like This.mp3|AOE2 (Herb Laugh).mp3".

sv: Sound volume. It can be a number from 0 to 100.

es: Ending sound. The sound to play before the step ends. The name should go between quotes ("") and should be one of name of files in RTS Helper\Sounds\Long or "none".

esv: Ending sound volume. It can be a number from 0 to 100.

fc: Flashing color. It can be "none" to disable the flashing in color starting the step, a color name or a 3 or 6 characters hexadecimal code of a color. It should go between quotes ("").

fco: Flashing color opacity. A number from 0 to 1.

sns: Show next step. It can be "yes" and "no" or "true" or "false". Useful when the step instructions are longer than expected and you prefer use the area of next step for current step content.

sps: Show previous step. It can be "yes" and "no" or "true" or "false". Useful when the step instructions are longer than expected and you prefer use the area of previous step for current step content.


{t=190 s="Sheep Bah.mp3" fc="Red" fo=0.5}<b S #F0F> Research Imperial Age   <u XS>Something   More text    <>Final instruction   <b XXS>3F 7W

The behavior options only apply to current step and should appear before anything else in the line. If you want to specify the same settings for next step, you can copy paste them or add them in the start of the file as global behavior options, read about that below.

Global Format

If you want to override the default format for all the build order, you can specify it at the start of the file with double angled brackets << >>, like this:

<<L blue>>
Text in blue large font   <XS>Text in blue small font

The global format will be used for all the steps in the build order unless you specify something different using normal format markup < >.

Global Behaviors

If you want to override the default behavior settings for all the build order, you can specify it at the start of the text file with double bracers {{ }}. This line can only be added as a single line at the start of the build order file (it can go before of after the global format markup). Example:

A step with 50s duration
Another step with also 50s duration
{t=125} This step has 125s duration

This a build order that has a step duration of 50s. This behavior will be used for all the steps in the build order unless you specify something different at the start of each step using normal behaviors markup { }. It's supported to change the default sounds and flashing color, but if you are going to share your build order with others, it's not recommended to do it because the user probably prefers to have their selected sounds and flashing color. Also, the user can choose in settings to don't allow build orders to change their sounds and flashing colors.


If you have certain text that you repeat a lot in your build order, you can create a group for it and write it only once. Add the groups inside double square brackets, like this:

[[vdg=[[v]<p>[drop gold]<x>[gold mine]<>] v@s=[v<x>[stone mine]<>]]]

And use it anywhere else in the build order writting [vdg]. For the group name you can use letters, numbers and any of !@#$%^&*()_+-?. The groups line should go after the global format markup line.

You can reuse groups in groups definition as long as you reuse them in the following definitions. For example, you could define the group [+]=[+<>] and then reuse it inside the group definition [+4]=[[+][4]].

Build Order Information

In order to show info about the autor, recommended map, civilization or any other info at the start of the build order, add an extra line at the start of the build order file using double parenthesis. This line can only be added as a single line at the start of the text file, like this:

((author:Vixark author url=http://vixark.com" game=Age of Empires II map="[Arabia]" civilization="[Huns]"))

The text inside the double square parenthesis will be treated as a normal step text, so you can use images and format markup inside it, but no behaviors. It will be shown when loading the build order before the user presses ▷. This information line should go after the groups line.

Format Classes

Instead of writing <b S red> multiple times everytime that you want a small bold red text, you can create a format class 'alert' in the global format markup and use <alert>. The class name can only contain letters, numbers, - or _. Example:

<<i alert=<b S red>>>
This text is italics   <alert>This is a red alert in small font bold and italics<>   This again normal italics text.

You can combine format classes with format markup and the format markup will override the format in the class, the order doesn't matter. For example, if you have <alert blue> or <blue alert>, you will have an effective format of small bold blue font in both cases.

Behavior Classes

Instead of writing {t=5 s="Beep.mp3"} multiple times everytime that you want a a short step with a beep at the start, you could create a behavior class 'short' in the global behavior markup and use {short}. The class name can only contain letters, numbers, - or _ and it shouldn't have the same name as one of the keywords of the behaviors. Create the behavior class like this:

{{t=15 s="none" short={t=5 s="Beep.mp3"}}}
This step has a 15s duration and no sound.
{short}This step has 5s duration and beep sound.
{short}Again 5s duration and beep.
This step has 15s duration and no sound.

empty is a special behavior class name that is reserved for steps without any instructions. It's automatically used and you don't need to add it to each step, just define what behaviors do you want to associate with empty steps in the global behavior markup, like this:

{{t=25 empty={fc="none" s="none"}}}

If you like RTS Helper, please consider to