Jump to content

List of Control Characters

From SkyTemple
(Redirected from List of Text Tags)

This article is unfinished. You can help expanding it.


Control Characters

Character Hex Description
~ 0x7E Reads the following 2 characters as hex and prints the result. Can be used to print normally unprintable characters such as brackets and 0x7E itself. Example: ~5B ~5D will result in [ ] in-game.
Note: ~7E results in a second small tilde (˜) in-game. Use the Shift-JIS character described below for a full tilde.
0x81 Shift-JIS activator. Used normally in Japanese, but the international versions also use it to display the following extra characters from kanji.dat/table 129:
Character Hex Note
~ 0x8160 The only way to display a full tilde in-game. To input in SkyTemple, enter a Japanese wave dash ().
0x81A8 This character can be entered normally in SkyTemple.
0x81A9 This character can be entered normally in SkyTemple.
0x81AA This character can be entered normally in SkyTemple.
0x81AB This character can be entered normally in SkyTemple.
0x81F4 This character can be entered normally in SkyTemple.

Lowercase Text Tags

<TODO: parameters, (technical) descriptions, potential organization>

Tag Description
[area:#]
[adverb:#] Unused.
[bank:#]
[bank_left:#]
[c_kind:<actor>] Prints the Pokémon species of the specified actor, using the light green text color for species (see [CS:K]).
[c_i:#]
[c_name:<actor>]
[c_stammer:<actor>] Prints the first character of the specified actor's name. Used only in JP.
[class:#] Unused.
[digits:#]
[digits_c:#]
[dungeon:#]
[equip_list]
[experience:#]
[floor:0] Prints the job's destination floor.
[gadget_bag] Prints the current name of the player's inventory. Used by the base game to specify the One-Item Inventory or Treasure Bag depending on the player's progress.
[gender:#]
[gold:#]
[gold_left:#]
[hero] Prints the hero's name. Special Episodes instead use [c_name:NPC_HERO_FIRST].
[item:#]
[kind:]
[kind:#]
[move:]
[move:#]
[me_play:#]
[move_hit_ratio]
[move_power]
[name:#]
[now_team]
[partner] Prints the partner's name. Special Episodes instead use [c_name:NPC_PARTNER_FIRST].
[partner2] Unused. [partner2] and [partner2:0] both seem to invariably crash the game.
[player] Prints the current leader's name using a blue text color.
[purpose:#] Unused. Seems to print "Recover the stolen item." as seen within the "Mission objectives" menu inside Beach Cave on the first visit, regardless of the player's progress.
[rank:#]
[range:#] Unused.
[s_item:#]
[string0]
[string:#]
[se_play:#]
[type:#]
[trap:#]
[tactics:#]
[team]
[team:]
[team:#]
[time:#]
[value0:#:#]
[value:#:#]
[value_i:#]
[value_i:#:#]
Unused.
[weather:#]
[wiseness:]
[wiseness:#]

Capitalized Text Tags (Parse-on-Print)

All text tags that begin with a capital letter are parsed immediately before they would be printed. They typically apply formatting, insert objects, or adjust print control flow. There is a hard limit on how many can be in one text string, but that limit is not currently known.

Object Insert Tags

These text tags draw something that isn't text in the textbox.

Tag Description
[BAR] Inserts a bar covering the entire line, then applies a line break.
[LINE:X:#] Inserts a line of type (135,139) [type X=0] or (135,140) [type X=1], with thickness #. Used only in JP. Functional in other regions, but only produces redacted text.
[M:X], [M:#] Inserts an icon from markfont.dat as specified by X. Alternatively, a raw index for the icon can be provided. See the [M:X] Icon Table for more info.

As a side note, [D:0], [D:1] and [D:2] are intended to display the , and icons respectively, but this functionality has been deliberately disabled in all available versions of the base game, which will simply ignore the debug tags. The tags can still be widely seen in many of the game's unused strings.

[M:X] Icon Table

A detailed table of all [M:X]/[M:#] subtags.

Tag
(Name + #)
Description Icon Tag
(Name + #)
Description Icon Tag
(Name + #)
Description Icon
Int JP Int JP Int JP
[M:B0] [M:0] Start [M:B23] [M:23] Check/Maru Gold Block [M:H5] [M:46] Heart yellow small
[M:B1] [M:1] Select [M:B24] [M:24] X Gold Block [M:H6] [M:47] Heart yellow
[M:B2] [M:2] A [M:B25] [M:25] Up Gold Block [M:H7] [M:48] Heart yellow big
[M:B3] [M:3] B [M:B26] [M:26] Down Gold Block [M:H8] [M:49] Heart pink unshaded
[M:B4] [M:4] X [M:B27] [M:27] Left Gold Block [M:R0] [M:50] Dash
[M:B5] [M:5] Y [M:B28] [M:28] Right Gold Block [M:R1] [M:51] Half Star
[M:B6] [M:6] L [M:B29] [M:29] Rewind Gold Block [M:R2] [M:52] Amber Gem?
[M:B7] [M:7] R [M:B30] [M:30] FF Gold Block [M:R3] [M:53] Unopened Mail
[M:B8] [M:8] D-Pad [M:B31] [M:31] Sort Gold Block [M:R4] [M:54] Open Mail
[M:B9] [M:9] - Block [M:B32] [M:32] Search Gold Block [M:R5] [M:55] Letter
[M:B10] [M:10] Check/Maru Block [M:S0] [M:33] P-Money [M:R6] [M:56] Newspaper
[M:B11] [M:11] X Block [M:S1] [M:34] Space [M:R7] [M:57] ! Box
[M:B12] [M:12] Up Block [M:S2] [M:35] Check [M:R8] [M:58] Wi-Fi
[M:B13] [M:13] Down Block [M:S3] [M:36] Star [M:R9] [M:59] E-Mail
[M:B14] [M:14] Left Block [M:S4] [M:37] X [M:T0] [M:60] Colon/Hook Bracket
[M:B15] [M:15] Right Block [M:S5] [M:38] Check X [M:T1] [M:61] Text Bubble/Asterisk
[M:B16] [M:16] Rewind Block [M:S6] [M:39] Bag [M:T2] [M:62] Space Indicator
[M:B17] [M:17] FF Block [M:S7] [M:40] Hut [M:T3] [M:63] Space Indicator Red
[M:B18] [M:18] Sort Block [M:H0] [M:41] Heart pink vsmall [M:T4] [M:64] 仮 'Kari' (temp)
[M:B19] [M:19] Search Block [M:H1] [M:42] Heart pink small [M:T5] [M:65] 未 'Mi' (unimplemented)
[M:B20] [M:20] D-Pad U-D Block [M:H2] [M:43] Heart pink [M:T6] [M:66] デ 'De' (debug)
[M:B21] [M:21] D-Pad L-R Block [M:H3] [M:44] Heart pink big [M:I0] [M:67] TM
[M:B22] [M:22] - Gold Block [M:H4] [M:45] Heart yellow vsmall [M:I1] [M:68] Orb

Text Formatting Tags

These text tags alter the properties of normal text characters that follow them.

Tag Description
[CS:X],[CS:#,X] Sets colored text with color code X. Or more accurately, adds one layer of colored text. Has an optional numerical param "#" with an unknown use. See the [CS:X] Color Set Table for specifics on the types of colors and their vanilla usages.
[CR], [CR:#] Reverts colored text. Or more accurately, reverts the top-most layer of colored text. Has an optional numerical param "#" with an unknown use.
[FT:#] Sets the current font to the #th font. 0 = Normal, 1 = Unown, 2 = Credits Small, 3 = Credits Large. Fonts 2 and 3 do not function as intended outside of the credits sequence, with 2 being entirely icons, and 3 being empty characters.
[LS:#] Starts a link to another text string. Used in move/item/status/etc. descriptions for subtopics. Ex: Sleep Seed may link the description of the Sleep status.
[LE] Ends a link to another text string. Used in move/item/status/etc. descriptions for subtopics. Ex: Sleep Seed may link the description of the Sleep status.

[CS:X] Color Set Table

A detailed table of all [CS:X] subtags and their intended purpose in the base game.

The colors are stored in FONT/text_pal.pal, and are stored slightly brighter than they appear in-game. When loaded in-game, the last three bits of each value (R, G, & B) are trimmed off to make the whole color fit within 2 bytes rather than 4, so a number like FF (0b11111111) would become F8 (0b11111000). The colors as coded in FONT/text_pal.pal are listed in the "Internal Color" column, and their location in the file is also provided.

Tag Color Use Case Identical to FONT/text_pal.pal Offset Internal Color
[CS:A] Cream
#F8C8C8
Effectively unused; described in ADEBUG as "Identified Item". [CS:I] 0x58 #FFCFCF
[CS:B] Red
#F80000
Forbidden choice. [CS:r], [CS:W] 0x4C #FF0000
[CS:C] Yellow
#F8F800
Used for rare miscellaneous and debug messages. [CS:F], [CS:U] 0x24 #FFFF00
[CS:D] White
#F8F8F8
Standard text color. This is also the default case in GetColorCodePaletteOffset, so if an invalid CS code is used, it will be treated as this. None 0x1C #FFFFFF
[CS:E] Cyan
#00F8F8
Used by subjects, stats, abilities, weather, etc. Described in ADEBUG as "Bold Text". [CS:G], [CS:N], [CS:V] 0x20 #00FFFF
[CS:F] Yellow
#F8F800
Names of other members of the player's team, including the partner. However, this is not used for Special Episode allies in cutscenes. [CS:C], [CS:U] 0x34 #FFFF00
[CS:G] Cyan
#00F8F8
Money. [CS:E], [CS:N], [CS:V] 0x64 #00FFFF
[CS:H] Pink
#F87878
Trap names. None 0x70 #FF7F7F
[CS:I] Cream
#F8C8C8
Item names. In cutscenes, this is not used for unobtainable story objects such as Perfect Apples or Time Gears, but is used for items the player could obtain themselves. [CS:A] 0x58 #FFCFCF
[CS:j] Dark Cream
#F8C060
The color is used by already-recruited Pokémon species whenever one requests to join within dungeons, and Chimecho uses the tag while explaining this text color. [CS:P] 0x44 #FFC767
[CS:J] Light Yellow
#F8F8A0
Status effects. None 0x74 #FFFFA7
[CS:K] Light Green
#00F800
Pokémon species names, including those in shop names. Should not be used to refer to a character ([CS:N]), even if they use the name of their species as their personal name. [CS:M] 0x3C #00FF00
[CS:L] Green
#00E060
The tag itself is effectively unused in the base game, but the same text color is used for [LS:#] hyperlinks in item/move descriptions. The kiosk demo uses the tag to note the title of the game. None 0x6C #00E767
[CS:M] Light Green
#00F800
Move names. Also commonly used on the word "move" itself in non-dialogue strings. [CS:K] 0x40 #00FF00
[CS:N] Cyan
#00F8F8
Regular character names. The hero and partner will also fall back to this if they're not in a primary story role, as seen in Special Episode 5's intro scene. [CS:E], [CS:G], [CS:V] 0x38 #00FFFF
[CS:O] Dark Green
#009800
Unused. None 0x78 #009F00
[CS:P] Dark Cream
#F8C060
Dungeon names and other destinations such as Fogbound Lake and Shaymin Village. Not used in the base game for other location names such as Treasure Town or the Hot Spring in dialogue. [CS:j] 0x44 #FFC767
[CS:Q] Blue
#0080F8
Unused. None 0x54 #0087FF
[CS:r] Red
#F80000
Unused. [CS:B], [CS:W] 0x14 #FF0000
[CS:R] Pale Green
#40F840
The tag itself is effectively unused, but the text color is used for displaying the selling price at shops. Described in ADEBUG as "Selling Price". None 0x68 #47FF47
[CS:S] Purple
#6080E0
Effectively unused. Described in ADEBUG as "Multiple Items Selected", but doing this in shop or storage menus changes the color of the surrounding background rather than the text itself. None 0x50 #6787E7
[CS:T] Transparent Unused and seemingly useless, as it makes the text unreadable. None N/A N/A
[CS:U] Yellow
#F8F800
Effectively unused. Described in ADEBUG as "Unidentified Item". [CS:C], [CS:F] 0x5C #FFFF00
[CS:V] Cyan
#00F8F8
Used for "bold" numbers. Base game example: You can get only [CS:V]two wrong[CR], OK? [CS:E], [CS:G], [CS:N] 0x48 #00FFFF
[CS:W] Red
#F80000
Used by item-boosted stats in a Pokémon's summary and a few debug messages, particularly warnings. [CS:B], [CS:r] 0x28 #FF0000
[CS:X] Bright Pink
#F8A0F8
Any team's name, not including the word "team". Also used by the names of other players in multiplayer-related strings. None 0x2C #FFA7FF
[CS:Y] Light Blue
#0098F8
Used for the current leader's name, including the hero and Special Episode protagonists. Regular recruited Pokémon will also use this color if set as the leader, even if spoken to in Spinda's Café. None 0x30 #009FFF
[CS:Z] Light Purple
#8080F8
Exclusive item names. This includes the Water Float and Defend Globe when referred to in cutscenes. None 0x60 #8787FF

Language Based Insertion Tags

These text tags insert different characters depending on the system language.

Tag Description
[MP] Inserts the language-appropriate equivalent for the thousands-place separator: comma, period, space, etc.
[GP] Seems to be a carbon copy of [MP]? Only exists in EU, will crash NA and JP.
[F:X] Displays certain "Foreign" characters by abbreviation. Can differ by language in EU, see the [F:X] Character Insertion Table for more info.

[F:X] Character Insertion Table

A detailed table of all available [F:X] subtags.

[F:X] Text Tag Character Hex Id Description
Tag Abbrev. German Other German Other
[F:ER] - er 0x96 0x96 e and r condensed into one superscript character, a masculine ordinal indicator for number 1. Used in French when referring to Sky Peak Station Pass 1.
[F:RE] - re 0x97 0x97 r and e condensed to one superscript character, a feminine ordinal indicator for number 1. Unused.
[F:O] - º 0xBA 0xBA Masculine ordinal indicator for numbers 2+. Unused?
[F:E] - 0x8D 0x8D Superscript "e", an ordinal indicator for numbers 2+. Used in French when referring to Sky Peak Station Pass 2+.
[F:RQ] Reverse Question? ¿ 0xBF 0xBF Reverse question mark. Unused, as the Spanish script simply writes out the character regularly.
[F:S1] Start 1? 0xB8 0x91 Start of a single quote. Differs in German, to match the language's quotation mark convention. Unused.
[F:E1] End 1? 0x91 0x92 End of a single quote. Differs in German, to match the language's quotation mark convention. Unused.
[F:S2] Start 2? 0xB7 0x93 Start of a double quote. Differs in German, to match the language's quotation mark convention. Used frequently in EU.
[F:E2] End 2? 0x93 0x94 End of a double quote. Differs in German, to match the language's quotation mark convention. Used frequently in EU.

Control Flow Tags

These text tags alter the rate that text is printed, and/or create a line break.

Tag Description
[K] Pauses text printing until the player makes an input with A, B, or the Touch Screen.
[W:#] Waits # frames before continuing to print text.
[C] Begins the next page of text, erasing the current block of text instantly.
[P] Scrolls the currently printed text off the window, then begins the next page of text. A pause in dialogue.
[STS] Ends instant text printing for the line prematurely.
[STE] Begins instant text printing, until the next line break.
[R] Two characters longer than an actual new line, or one if "\n" is used. Redundant.
[HR] Does a line break, but only moves down by half the normal amount.

Position Adjustment Tags

These text tags alter the printing position of characters that follow them.

Tag Description
[CN] Begins text centering, until the next line break.
[CLUM_SET:#] Moves the cursor left or right to the #th pixel in the window. Can be used to move backwards horizontally in a textbox.
[CLUM_OFFSET:#] Offsets the cursor's current horizontal position by #. Most likely identical to [S:#].
[MS:#] Inserts 6*# horizontal pixels of space.
[S:#] Inserts # horizontal pixels of space.

Audio Based Tags

These text tags create audio effects when they are parsed, but do not affect the textbox visually.

Tag Description
[ME_PLAY:#] Plays the #th me_effect directly!
[SE_PLAY:#] Plays the #th sound effect directly!