Skip to content

Resource Pack Customization

Naz Ikhsan edited this page May 21, 2026 · 1 revision

Custom Balloon Styles

As of v1.5.0, Talk Balloons now supports creating custom balloon styles in a resource pack, which allows users to select between different styles as desired. You may reference Talk Balloons' resources to learn how this system works.

This documentation assumes you understand how to make a resource pack, and that you understand how JSON files function and are structured.

These styles can be defined in assets/<namespace>/talk_balloons/styles/<style_name>.json. An example path is assets/example/talk_balloons/styles/example_style.json for example:example_style, or assets/example/talk_balloons/styles/folder/style.json for example:folder/style.

The format is as follows:

  • arrow [string] (required): Path to the arrow sprite, relative to either textures/balloons or what is specified in the balloons atlas.
  • balloon [string] (required): Path to the balloon sprite, relative to either textures/balloons or what is specified in the balloons atlas.
  • allows_tint [boolean] (default: false): Specifies whether the balloon can be tinted.
  • margin [margins] (default: 1): Specifies the margins (in pixels) for the text to be offset from the balloon's border.

The margins format has 3 different methods that can be used for specifying the balloon margins.

  • Integer - Specifies the margin on all 4 sides of the balloon simultaneously.
    • Example: "margin": 4
  • Integer Array (4) - Specifies the margin in the order of top, bottom, left and right. All values must be specified in order to use this method.
    • Example: "margin": [4, 4, 4, 4]
  • Object - Specifies the margin in a named manner. You may discard any value and it will default to a value of 1.
    • Example: "margin": { "top": 4, "bottom": 4, "left": 4, "right": 4 }

A full example will look like this: assets/talk_balloons/talk_balloons/styles/classic/squared.json

{
    "arrow": "talk_balloons:classic/arrow",
    "balloon": "talk_balloons:classic/squared",
    "allows_tint": true,
    "margin": 1
}

Each sprite that is to be used should be placed in assets/<namespace>/textures/balloons/<sprite_name>.png. If you want to place these sprites in a different folder that is not the balloons folder, you can make your own balloons atlas file under assets/talk_balloons/atlases/balloons.json that allows specifying a different folder, or even individual texture files.

These sprites also support being animated textures, as long as you provide the .mcmeta correctly for the sprites. To make these sprites use nine sliced texture scaling, you must specify a .mcmeta file for the texture with the scaling information. For example: assets/talk_balloons/textures/balloons/classic/circular.png.mcmeta

{
    "gui": {
        "scaling": {
            "type": "nine_slice",
            "width": 16,
            "height": 16,
            "border": 6
        }
    }
}

For more information on these custom sprite texture scaling, you may reference the Minecraft wiki.

Clone this wiki locally