X-Plane Taxiway Sign Specification
In the beginning the taxiway sign specification was a joint effort between FlightGear and X-Plane. The products have since drifted apart; this specification may no longer be applicable to FlightGear. FlightGear users will want to consult their own source.
What is a Taxi Sign?
A taxi sign string is a string of instructions and glyphs that describe an airport sign, usually seen near the sign of a runway or taxiway. See appendix C for examples. We may refer to these throughout the document.
Taxi signs are case sensitive! Throughout the document is phrases like “A-Z”. This means the capital letters A through Z. “a-z” would refer to lower case letters.
Syntax of a Taxi Sign
This is the solid grammar of the spec. It explains what is allowed and not allowed for any reason and would not be logical. -rewrite
The basic rules of a taxi sign are:
- No spaces, new lines, tabs (aka whitespace)
- Only ASCII printable characters which are supported (see the appendix for quick table of non supported characters)
- No incomplete or invalid curly brace pairs
Curly brace pairs
Curly braces, { and }, make up the structure and “clauses” of the string. The 3 rules for curly braces are:
- Every curly brace must have one and only one partner
- Every curly brace pair must not be empty
- No curly brace pair may be in a nesting situation
These rules are not affected or changed by surrounding or containing glyphs, instructions, or semantics.
With this in mind let’s see some examples and why they will fail. (Content of taxi signs here chosen at random and is meaningless)
Example |
Why it fails |
Correction |
{@Y,Q |
No right brace |
{@Y,Q} |
@Y,Q} |
No left brace |
{@Y,Q} |
{@Y,Q}{}{@R,K} |
Every curly brace having a buddy, but the middle pair has nothing inside it |
{@Y,Q}{@R,K} |
{@Y,Q}{@R,K{@L,1}} |
{@L,1} is inside of {@R,K}, causing nesting |
{@Y,Q}{@R,K}{@L,1} |
Glyphs:
A glyph is a symbol representing something, you’re looking at them right now. Letters, icons, symbols are all glyphs, hence why we say “glyphs” instead of “letters”. In the taxi sign string system we have two groups of glyphs, single glyphs and multi glyphs. They each have limitations on where and how they can be expressed. They are also not necessarily in a one to one relationship. To make a space one uses a “_” instead of a ” “. Despite taking up 1 character worth of space a single roman numeral must declared with two characters: “r1”.

Single glyphs

Single glyphs (highlighted above) are glyphs that can generally represent themselves in a single character, for example A, -, 6, etc. Single glyphs can appear inside of a curly brace pair or outside of it. The following are single letter glyphs
- A-Z
- 0-9
- – (produces a hyphen)
- * (produces a dot)
- . (produces a period)
- ,
- /
- _ (produces a space)
Multi letter glyphs:

Multi glyphs are glyphs that can only be described using more than one character. Multi letter glyphs include arrows, roman numerals, and special signs such as hazard and no-entry. These must be inside curly braces. Here is the table for it
Multi Letter Glyph Names |
Description |
^u |
Up Arrow |
^d |
Down Arrow |
^l |
Left Arrow |
^r |
Right Arrow |
^lu |
Left Up Arrow |
^ru |
Right Up Arrow |
^ld |
Left Down Arrow |
^rd |
Right Down Arrow |
r1 |
Roman Numeral I |
r2 |
Roman Numeral II |
r3 |
Roman Numeral III |
no-entry |
no-entry sign (white circle with horizontal bar on red background) |
critical |
ILS Critical Area Boundary sign |
safety |
Runway Safety Area |
hazard |
Taxiway Ending Marker |
comma |
The multiglyph version of “,”. Allows to use commas inside curly braces. |
Instructions:
Instructions are what tell X-Plane what to do next with the sign. Not all glyphs can be used with all sign instructions. The below table describes the relationship between instruction and glyph.
An instruction must be inside a curly brace and come after a separator. The left curly brace “{” and the comma “,” are these separators.
One can only declare Y, R, L, B, or @ instructions. Once a color instruction has been declared the parser will stick with it. There is no need for something like {@L}123{@L}ABC, however re-declaring a color instruction is harmless.
Instruction Id |
Description |
Glyphs Supported/Notes |
Y |
“Direction, Destination, Boundary” (black on yellow) |
Supports all valid glyphs |
R |
“Mandatory Instruction” (white on red with black outline) |
Supports all valid glyphs |
L |
“Location” (yellow text and frame on black) |
Supports only A-Z,0-9 |
B |
“Runway Distance Remaining” (white on black) |
Supports only 0-9 |
@ |
Changing drawing sides |
Switches the sign drawing from the front to the back, only allowed once per sign |
The “@” Instruction aka Frontside/Backside switching:
Signs in X-Plane are single-sided by default, but there is a way to make a sign have content on the front and back of it. The switch side instruction “@” causes X-Plane’s taxi sign builder to start drawing on the opposite side. Look in Appendix C for an example of this.
The @ instruction only switches the side of the sign. The only restriction is that it can only be used once per taxi sign – simply, because a sign only has one front and back!
Here is how the sign “{@Y}FRONT{@@}BACK” would appear in WED with text indicating what side is which appears along which heading:
As stated above, once a color instruction has been declared there is no need to redeclare it. The @ instruction does not change the color. Something like {@Y}123{@@}{@Y}ABC is unnecessary, but harmless.
NOTE: The @ instruction is different from @ used as a declarer; for instance, to use the instruction @, you would need to write “@@”; the first @ declaring that you’re using an instruction and the second @ being the instruction.
Sign Framing
A sign “frame” refers to the separating lines that can appear between parts of a sign. Framing happens automatically when the sign color is changed.
For example, when the sign switches from @L to @R
It can also be induced manually using the “|” or “pipe bar” character, found underneath the backspace key on most keyboards. Observe “{@Y}BOOK|CASE” on the left and “{@Y}BOOKCASE”
The pipe bar has some conditions for its usage.
- The pipe bar must have the same color glyph next to it on the left and right side. For example {@Y}{^l}|{@R}RIGHT fails because to the left of the pipe bar is a yellow left arrow and to the right is a red R.
- The pipe bar can only be used with glyphs that are of colors @Y,@R, and @L. @B is not affected by the pipe bar and as such a sign like “{@B}123” and “{@B}1|2|3” will both appear as the same image on a sign.
- Independently colored glyphs (see Appendix D) glyphs cannot be used with the pipe bar.
- Pipe bars cannot be adjacent to another pipe bar or a non existent glyph, ex. the start or end of the string. For example the following all fail:
- {@Y}123||A – Pipe bars adjacent
- |{@Y}123 – Pipe bar at start of the string
- {@Y}123| – Pipe bar at end
Separators in a Taxi Sign:
Taxi signs contain, as you know by now, glyphs and instructions. These can be thought of as “elements” of a sign. Each element must be separated from one another. This can be accomplished by using curly braces and commas. The comma, when used inside of a pair of curly braces, becomes a separator. In the sign {@Y,^lu} the comma separates the instruction @Y from the multi glyph ^lu.
Appendix A: Unsupported Characters
These characters are not supported for any reason
- !
- “
- #
- $
- %
- &
- ‘
- (
- )
- [
- ]
- +
- :
- ;
- <
- =
- >
- ?
- ~
- b
- g
- j
- k
- q
- v
- w
- x
Appendix B: Special rules
- ^ is a character which is only allowed to be part of a multi glyph, the string {@Y,^} is syntactically valid but it does not make sense because ^ is not a single letter glyph. An error
Appendix C: Table of Examples
Taxi Sign String |
X-Plane Rendering |
{@L}A |
|
{@Y}{^l}C |
|
{@Y}17-35{^r} |
|
{@B}1 |
|
{@R}11-29 |
|
{@L}B7{@R}10CAT{r2}/{r3} |
|
{@Y}{^lu}B{@L}C{@Y}C{^u}|F{^r} |
|
{@Y}WEST_APRON{^r}
|
|
{@L}P2{@R}16-34CAT{r1}{@Y}{@@}{^lu}P2{@L}P2 |
Front: Rear: |
Appendix D: Independent glyphs
The following glyphs are of the color I. They will always produce one image and are not affected by the current color (in the way that {@Y}{^l} and {@R}{^r} produce a different image
- critical
- hazard
- no-entry
- safety
Appendix E: Hidden instructions and error reporting
The following table is a table of instructions that are only used for error reporting and internal usage. They cannot be used by hand.
I |
Glyph specific |
These are the signs “critical”, no-entry, safety, and hazard, cannot be declared by hand |
P |
Represents a pipebar, only for error reporting |
Indicates the glyph is a pipe bar and should be checked if valid |
X |
Only for error reporting |
Indicates that parsing stopped before any valid color has been found |