Functions to simplify text formatting in scenarios and make it consistent. Most of these functions are simple wrapper functions for our richtext system. This file will include richtext.lua for you for additional formatting functions.

To make these functions available include this file at the beginning of a script via:

include "scripting/richtext_scenarios.lua"
speech(img, clr, title, text)

Formats a text as spoken by one person in a scenario. Use it as follows:

function jundlina(title, text)
   return speech("map:princess.png", "2F9131", title, text)
  • img (string) – name of the image to use for this speaker

  • clr (string) – a valid 6 char hex color to use for the name of this speaker

  • title (string) – Title of this text. Use empty string if you don’t want any.

  • text (string) – The text itself.


the formatted text.


Closes a paragraph and opens a new paragraph. Use this when you format a richtext string and need to divide it into multiple paragraphs. Just concatenate this function with the Lua string concatenation operator ..


close_p() .. open_p()


include "scripting/richtext.lua"
include "scripting/richtext_scenarios.lua"
include "scripting/messages.lua"

local text = p("This is the first paragraph"
               .. paragraphdivider() ..
               "This is the second paragraph"

campaign_message_box({title = "Window title",
                      body = text,
                      w = 200,
                      h = 150,
                      position = "top"})
objective_text(heading, body)

Provides nice formatting for objective texts.

  • heading (string) – The heading

  • body (string) – The text


a rich text object that contains the formatted objective text.