File Location and Format
Unlike Java Edition, which reads splash texts from a plain text file where each line is a separate entry, Bedrock Edition requires a structured JSON file. This file must be named `splashes.json` and placed directly inside the root of your resource pack folder (`RP/splashes.json`), right next to `manifest.json`.
The structure of `splashes.json` is minimal. It consists of a single root JSON object containing an array named `splashes`. Every string inside this array represents one potential message that the game can randomly pick when the start screen loads.
{
"splashes": [
"Welcome to the Haunted Manor!",
"Don't forget to check your corners!",
"Built for Bedrock!",
"§bColored splashes work too!§r"
]
}Overriding vs. Merging
When you include `splashes.json` in a resource pack, the game does not merge your array with the default vanilla splashes. Instead, the top-most resource pack in the active stack that contains `splashes.json` completely overrides the list from lower packs and the base game.
If your array contains only one string, that single message will appear on the title screen every single time the player loads the menu. If you want to keep the hundreds of vanilla splashes while sneaking a few of your own into the rotation, you must copy the entire vanilla `splashes.json` file from the default resource pack template and append your new strings to the end of that list.
Formatting Codes and Special Characters
By default, the title screen UI renders every splash string in yellow (`§e`). However, the splash renderer supports standard Minecraft section-sign (`§`) formatting codes, allowing you to change colors, make text bold, italicize words, or create garbled obfuscated text.
Because `splashes.json` is parsed as strict JSON, you also need to escape certain characters. Double quotes inside a splash string must be escaped with a backslash (`\"`), and if you want a literal backslash to appear on screen, you must type it twice (`\\`). Standard Unicode characters and emojis supported by the Bedrock font sheets can also be pasted directly into the strings, provided the file is saved with UTF-8 encoding.
| Code | What it does | Notes |
|---|---|---|
| §0 - §f | Changes text color | Overrides the default yellow until reset or end of string. |
| §l | Makes text bold | Increases character thickness; keep strings short so they fit. |
| §o | Makes text italic | Slants the text even further on top of the splash tilt. |
| §k | Obfuscates text | Cycles random characters rapidly. |
| §r | Resets formatting | Returns text back to the default unstyled state. |
{
"splashes": [
"§cRed Alert!",
"§lBoldly going nowhere!",
"Mystery: §khidden_text§r!",
"She said, \"Watch out for Creepers!\""
]
}Global vs. World Resource Packs
Where you apply your resource pack determines whether the player will ever actually see your custom splashes. The splash text is evaluated and drawn on the main start screen before any world is loaded.
If your resource pack is only attached to a specific world or template, the player will see vanilla splashes when they first launch Minecraft. Your custom splashes will only appear if the pack is activated in **Settings > Global Resources**, or briefly after the player saves and exits your custom world to return to the title screen (in cases where the game caches the world's UI resources during the transition). For full modpacks or standalone UI overhauls, always instruct players to apply the pack in Global Resources.
Length and Display Considerations
The splash text element in the vanilla JSON UI scales its font size down somewhat to accommodate longer phrases, and it will wrap onto multiple lines if a string is exceptionally long. However, very long sentences quickly become tiny, hard to read during the bouncing animation, or clip awkwardly into the main logo and menu buttons on smaller mobile screens.
For the cleanest result across phones, consoles, and PC monitors, keep individual splash entries under 35 to 40 characters. If a splash looks cramped, trim the wording rather than attempting to force line breaks with `\n`, as manual newlines can throw off the centering of the tilted text box.
Which versions this applies to
Applies to all modern Minecraft Bedrock versions (1.16.0 through 1.21+). This is a core resource pack feature and does not require any experimental toggles.
When it does not work
| What you see | Why | The fix |
|---|---|---|
| Custom splashes never show up; the title screen only displays vanilla splashes. | Many creators coming from Java Edition place a plain text file at `RP/texts/splashes.txt`, or they put `splashes.json` inside the `RP/texts/` folder by mistake. Alternatively, the pack is only applied to a world instead of Global Resources. | Move the file to the root directory of the resource pack (`RP/splashes.json`) and activate the pack under Settings > Global Resources. |
| The title screen shows no splash text at all, or falls back to vanilla with a Content Log error: `[Json][error] Failed to parse splashes.json`. | There is a syntax error in the JSON file, most commonly a trailing comma after the last string in the `splashes` array or unescaped double quotes inside one of the messages. | Remove the comma after the final entry in the array and escape any internal quotation marks using `\"`. |
| Section signs (`§`) or emojis appear as weird garbled characters like `§` on the title screen. | The `splashes.json` file was saved with Windows-1252, ANSI, or UTF-8 with BOM encoding instead of clean UTF-8. | Re-save `RP/splashes.json` in your code editor explicitly using standard **UTF-8** encoding (without BOM). |
Reference, straight from the game files
Read out of the game itself, so the ids match the version you are building for.
