Skip to content
Image & Canvas canvasDrawText

$canvasDrawText[]

$canvasDrawText draws a line of text on the current canvas. It returns an empty string.

Syntax

bdfd
$canvasDrawText[text;x;y;fontSize;color;(textAlign);(maxWidth);(container)]

Canvas functions work on the current canvas, the last one made with $canvasCreate; they have no canvas-name argument. Called before any $canvasCreate they have no effect. Numeric arguments must be whole numbers; text that is not a whole number gives the default of that parameter.

Parameters

Parameter Description
text Required. The text. An empty text draws nothing.
x, y Required. Position of the top-left corner of the text.
fontSize Required. Selects one of three built-in bitmap sizes: below 20 gives a small font, 20 to 39 a medium font, 40 and above a large font. Other values within a bucket give the same result.
color Required. Colors are a 6-digit hexadecimal value with or without # (#5865F2), an 8-digit RRGGBBAA value, or one of these names (case-insensitive): red, green, blue, white, black, transparent, yellow, cyan, magenta, orange, purple, pink, gray, grey, lime, navy, teal, aqua, maroon, silver, gold. An empty or unreadable color becomes white. The 3-digit shorthand #abc is not supported (it is read as 000ABC).
textAlign Optional. center or right (left otherwise). It only has an effect when maxWidth is greater than 0.
maxWidth Optional. Width of the box in which the text is aligned, starting at x. It does not wrap or cut the text.
container Optional. Name of a container defined earlier with $canvasContainer: the x/y position is then offset by the container’s x/y. An unknown name means no offset.

Behavior

  • Only the characters of the built-in fonts are drawn: letters outside basic ASCII (such as é, ü, ç), € and emoji are not drawn in tests.
  • A line break in the text starts a new line.
  • The text is cut off at the edges of the canvas; nothing is wrapped.
  • Sequences written ((name)) are removed from the text (no variables are available there).

Examples

Draw Styled Text on Canvas

$canvasCreate[textCanvas;500;120;#202225]
$canvasDrawText[Hello $username!;30;65;26;#5865F2]
$attachImage[textCanvas]
$sendMessage[Rendered dynamic user text on canvas.]

Center a title in a 400 px box

$canvasCreate[title;500;100;#202225]
$canvasDrawText[Server Rules;50;40;24;#FFFFFF;center;400]
$attachImage[title]
$sendMessage[Centered title.]

Try it

Paste an example into the playground to preview its message (functions that act on Discord are not run), or build the same thing with blocks.