Page tree
Skip to end of metadata
Go to start of metadata

Introduced in



Description:This makes a unit speak, using a speech bubble above their head. The bubble is only displayed if the unit is in the given range, where they can hear it. Alternatively, the unit can "emote", which shows a text description of something the unit is doing (useful when there is no appropriate animation, the emote is only displayed if the player is close enough).


Syntax:[speaker, text, range, dimensions, emote] call fn_vbs_speak
  • speaker: Object - Unit to speak / emote.
  • text: String - Text of speech / emote
  • range: Number - Player must be this close to hear the speech or see the emote.
    Note: Optics magnification is taken into account for emotes, allowing them to be seen from further away.

  • dimensions: Array - Array defining the size of the displayed bubble:
    format: [lines, width_mult, font_mult]
    • lines: Number - Bubble that hold this many lines of text vertically.
    • width_mult: Number - Default bubble width is multiplied by this.
    • font_mult: Number - Default font size is multiplied by this (optional - if ommitted, or if an empty array is passed, defaults are used: [4, 1, 1])
  • emote: String - If true, this is an emote, not speech (optional, default: false).
Return Value:Boolean - Indicates whether the speech / emote was heard / seen.


When using functions in VBS versions older than 3.4, certain limitations and requirements should be kept in mind - the main ones being that capitalization of the function name is crucial, and that #include "\vbs2\headers\function_library.hpp" has to be included in every script that utilizes it. More Category VBS Scripting Functions.


[man1, "Good day to you sir! This is a speech bubble!", 50] call fn_vbs_speak;
[man1, "This is an emote. He is gesticulating wildly!", 20,[4, 1.2, 1], true] call fn_vbs_speak;

Additional Information

See also: fn vbs observation, fn vbs infobubble
Multiplayer:This is local in MP. It should be called on all clients if required.