Text Styling - Breezebuilder/Steamodded-Wiki GitHub Wiki
Balatro includes a very basic formatting syntax for styling and formatting displayed text in-game. Where supported, text can be styled with the use of style modifier codes included within the text string. For example, the text string:
{C:blue}+1{} hand |
produces
|
|
Most SMODS objects that display description text will parse and style text strings automatically when loading from localization files or loc_txt. This includes the text strings of descriptions for Achievements, Consumables, Decks, Jokers, Vouchers, and more.
Style modifiers are not additive - text will only be styled by the modifiers contained within the previous set of curly braces. Using empty braces {} will reset text styling for text after it.
Additionally, multiple modifiers can be combined in a single set of curly braces. For example, the text string:
{X:mult,C:white}X0.5{} |
produces
|
|
Valid style modifiers are as follows:
| Defined text colour |
{C:colour-key}
|
| Defined background colour |
{X:colour-key}
|
| Variable/custom text colour |
{V:colour-index}
|
| Variable/custom background colour |
{B:colour-index}
|
| Text motion |
{E:motion-index}
|
| Text hover tooltip |
{T:tooltip-key}
|
| Text scale |
{s:scale}
|
| No modifiers (use default styling) |
{}
|
Important
Modifiers are case sensitive – {s:} must be lowercase, while all other modifiers are UPPERCASE.
{C:colour-key} changes the color of the text, where colour-key is the key of a colour defined in G.ARGS.LOC_COLOURS.
| Text string | loc_vars | Result |
{C:mult}+4{} Mult |
|
|
{C:attention}1{} free {C:green}Reroll{} |
|
|
{C:green}#1# іn #2#{} chance |
vars = {
G.GAME.probabilities.normal, -- 1
card.ability.extra.odds -- 6
} |
|
{X:colour-key} sets the background color of the text, where colour-key is the key of a colour defined in G.ARGS.LOC_COLOURS.
This modifier is usually combined with the text colour modifier to make
This modifier uniquely strips all whitespace from the styled text, so text like {X:gold} W I D E {} is rendered as . This can be helpful for improving the readability of otherwise dense strings.
| Text string | loc_vars | Result |
{X:mult,C:white}X3{} Mult{} |
|
|
{X:chips,C:white} X 1 . 5 {} Chips{} |
|
|
{X:mult,C:white} X#1# {} |
vars = {
card.ability.extra.xmult -- 0.5
} |
|
{V:index} changes the colour of the text to a custom colour provided as an entry in the loc_vars vars.colours table. See Localization for more details.
index is the array index of the colour entry in the vars.colours table.
| Text string | loc_vars | Result |
{V:1}FF00FF{} |
vars = {
colours = { HEX('FF00FF') }
} |
|
{V:2}#2#{} suit{} |
vars = {
'Spade',
'Heart',
'Club',
'Diamond',
colours = {
G.C.SUITS.Spades,
G.C.SUITS.Hearts,
G.C.SUITS.Clubs,
G.C.SUITS.Diamonds
}
} |
|
Note
This modifier is added by Steamodded and is not supported by vanilla Balatro.
{B:index} changes the colour of the background to a custom colour provided as an entry in the loc_vars vars.colours table. See Localization for more details.
index is the array index of the colour entry in the vars.colours table.
Unlike the similar Defined background modifier {X:}, {B:} does not remove or change the whitespace of styled text, so displayed contents will remain the same as their input string.
| Text string | loc_vars | Result |
{B:1}00FF00{} |
vars = {
colours = { HEX('00FF00') }
} |
|
{B:1,V:2}Oh no!{} Anyway... |
vars = {
colours = {
{1, 0, 0, 1}, --#FF0000
{0, 0, 0, 1} --#000000
}
} |
|
{B:1,V:2}#1#{B:2,V:1}#2#{} |
vars = {
'Spa',
'rts',
colours = {
G.C.SUITS.Spades,
G.C.SUITS.Hearts,
}
} |
|
{E:1} applies a pop-in effect when the text is first displayed, and a floating animation to each letter in the text.
{E:2} applies a bumping animation to each letter in sequence.
{E:} is incompatible with background modifiers {X:} and {B:}. If background modifiers are set, {E:1} will only show a pop-in effect with no motion, and {E:2} will be ignored.
| Text string | Result |
{C:green,E:1}probabilities{} |
|
{E:2}Joker{} |
|
{C:red,E:2}self destructs{} |
|
{T:tooltip-key} adds tooltip functionality to the text, which displays a small tooltip UI above the text when the text is hovered over.
tooltip-key must be the name of a key found in either G.P_CENTERS or G.P_TAGS. See the entries in the SMODS.Center category and SMODS.Tag for more.
| Text string | Result |
{C:tarot,T:v_crystal_ball}Crystal Ball{} |
|
Important
This modifier requires the lowercase s, unlike other modifiers which must be UPPERCASE.
{s:scale} changes the size of the text.
scale is a decimal value where the default size is 1.0.
Vanilla Balatro only uses s:0.8, s:0.85 and s:1.1 text scales.
| Text string | Result |
{s:0.8}0.8 {s:1.0}1.0 {s:1.1}1.1{} |
|
Some style codes can be combined within one set of curly braces, like {X:mult,C:white}.
-
{T:}and{s:}are compatible with all other modifiers. -
Background modifiers
{X:}or{B:}can be used in conjunction with text colour modifiers{C:}or{V:}. -
Text motion modifier
{E:}is incompatible with background modifiers{X:}and{B:}- if background modifiers are set,{E:1}will only show a pop-in effect with no motion, and{E:2}will be ignored. -
{C:}and{V:}are exclusive - if both are used,{C:}will be ignored. -
{X:}and{B:}are exclusive - if both are used,{X:}will be ignored.
| Text string | loc_vars | Result |
{X:mult,C:white}X0.5{} |
|
|
{C:edition,E:1,s:2}YOU WIN!{} |
|
|
{s:0.8}({V:1,s:0.8}lvl.#1#
{s:0.8}){} Level up{} |
vars = {
G.GAME.hands[card.config.hand_type].level,
colours = {
G.C.HAND_LEVELS[math.min(7,
G.GAME.hands[card.config.hand_type].level
)]
}
} |
|
| Colour | Key | Value | Example | Note |
|
|
red
|
G.C.RED
|
|
|
|
|
mult
|
G.C.MULT
|
|
|
|
|
blue
|
G.C.BLUE
|
|
|
|
|
chips
|
G.C.CHIPS
|
|
|
|
|
green
|
G.C.GREEN
|
|
|
|
|
money
|
G.C.MONEY
|
|
|
|
|
gold
|
G.C.GOLD
|
|
|
|
|
attention
|
G.C.FILTER
|
|
|
|
|
purple
|
G.C.PURPLE
|
|
|
|
|
white
|
G.C.WHITE
|
|
|
|
|
inactive
|
G.C.UI.TEXT_INACTIVE
|
|
|
|
|
spades
|
G.C.SUITS.Spades
|
|
Suit colours affected by High Contrast setting |
|
|
hearts
|
G.C.SUITS.Hearts
|
|
|
|
|
clubs
|
G.C.SUITS.Clubs
|
|
|
|
|
diamonds
|
G.C.SUITS.Diamonds
|
|
|
|
|
tarot
|
G.C.SECONDARY_SET.Tarot
|
|
|
|
|
planet
|
G.C.SECONDARY_SET.Planet
|
|
|
|
|
spectral
|
G.C.SECONDARY_SET.Spectral
|
|
|
|
|
edition
|
G.C.EDITION
|
|
Animated colours |
|
|
dark_edition
|
G.C.DARK_EDITION
|
|
|
|
|
common
|
G.C.RARITY.Common
|
Added by Steamodded |
|
|
|
uncommon
|
G.C.RARITY.Uncommon
|
||
|
|
rare
|
G.C.RARITY.Rare
|
||
|
|
legendary
|
G.C.RARITY[4] (vanilla)G.C.RARITY.Legendary (SMODS)
|
|
|
|
|
enhanced
|
G.C.SECONDARY_SET.Enhanced
|
|
|
|
|
default |
G.C.UI.TEXT_DARK
|
|
This dictionary is initially assigned by the loc_colour function in functions/misc_functions.lua.
Steamodded automatically adds additional entries to LOC_COLOURS for all custom objects in:
which can be used as colour keys in the same way by {C:} and {X:}. When referring to custom Rarity, Gradient, Consumable or Suit colours added by SMODS, the key must be prefixed with the mod prefix.