API format

104,671pages on
this wiki
Add New Page
Talk1 Share
WoW Lua

Creates a formatted string from format and substitution parameters, similar to sprintf in C.

local s = string.format(formatstring, e1, e2, ...)
local s = format(formatstring, e1, e2, ...)

Parameters Edit

  • formatstring - the format string
  • ... - list of substitutions of any relevant type

Returns Edit

  • formatted string

Details Edit

Create a formatted string from the format and arguments provided. This is similar to the printf("format",...) function in C. An additional option %q returns string in a format that can safely be read back by Lua interpreter (puts quotes around a string and escapes special characters), but used by World of Warcraft to preparse all strings before saving them between sessions. Lua supports the following subset of the C format specifiers, plus Lua specific 'q'

Substitution escapes Edit

  • c, d, E, e, f, g, G, i, o, u, X, x (expect a number as argument)
  • q, s (expect a string as argument)
  •  % (escape char, to produce % use %%)

Examples Edit

String and quoted string

string.format("%s %q", "Hello", "Lua user!")
Hello "Lua user!"


string.format("%c%c%c", 76,117,97)


string.format("%e, %E", math.pi, math.pi) 
3.141593e+000, 3.141593E+000

Float and compact float

string.format("%f, %g, %.2f", math.pi, math.pi, math.pi) 
3.141593, 3.14159, 3.14

Signed, signed, unsigned integer

string.format("%d, %i, %u", -100,-100,-100) 
-100, -100, 4294967196

Octal, hex, hex

string.format("%o, %x, %X", -100,-100,-100)
37777777634, ffffff9c, FFFFFF9C

Note: if you want a % character to be output as part of your format string, you need to enter %%

string.format("Ratio is %u %%",12)
Ratio is 12 %

Macro Example Edit

This macro prints out the time remaining on the Polymorph debuff in seconds, rounded to the nearest whole number:

/run for i=1,40 do local n,_,_,_,_,_,x,_,_=UnitDebuff("focus",i);if (n=="Polymorph")or (n=="Polymorph(Pig)")or (n=="Polymorph(Turtle)")then SendChatMessage(format("%.0f",-1*(GetTime()-x)).." secs left on "..UnitName("focus").."'s CC!","EMOTE");end end

External links Edit

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Also on Fandom

Random Wiki