
Setsumeisho
Recreate the instructions from Eufonia Studios that were used in Squid Craft Games and DEDsafio
📖About Setsumeisho
Setsumeisho
A Minecraft mod that displays in-game instruction overlays to players, designed for minigames and events. The server sends instruction screens to clients showing controls, descriptions, and timers — with optional auto-translation, cinematic sequences, and keyboard icon rendering.
Features
- Instruction overlay with title, subtitle, controls, and description sections
- Custom keyboard/icon font rendered inside the overlay
- Per-language content: each instruction file supports multiple
langentries (es,en, etc.) - Auto-translation via the MyMemory API (optional)
- Pre-translation cache so players receive content in their language on open
- Minimize/restore animation via a post-process shader
- Timer display with configurable countdown
- Cinematic support: run console commands on a schedule when an instruction opens
- Background texture support sent from server to client
Installation
- Place the mod JAR in the
mods/folder. - Start the server once to generate the default configuration file at
config/setsumeisho/default.json.
Commands
All commands require operator permissions (level 2+).
| Command | Description |
|---|---|
/setsumeisho open <file> |
Opens the named instruction screen for the executing player |
/setsumeisho open <file> <player> |
Opens the instruction screen for a specific player |
/setsumeisho close |
Closes the currently open instruction overlay |
/setsumeisho create <name> |
Creates a new template JSON file at config/setsumeisho/<name>.json |
/setsumeisho pretranslate <file> |
Pre-translates the instruction file and caches the result |
Configuration
All instruction files live in config/setsumeisho/. Each file is a JSON array with three objects: the language entries, the config block, and the cinematics block.
Structure
[
{
"lang": "es",
"title": "TÍTULO",
"subtitle": "Subtítulo",
"title_controls": "Controles Especiales",
"title_description": "Instrucciones",
"controls": [
"[[ICON:LEFT_CLICK]] Descripción del control.",
"[[ICON:SPACE]] Otro control."
],
"description": "Descripción del objetivo del minijuego."
},
{
"lang": "en",
"title": "TITLE",
"subtitle": "Subtitle",
"title_controls": "Special Controls",
"title_description": "Instructions",
"controls": [
"[[ICON:LEFT_CLICK]] Control description.",
"[[ICON:SPACE]] Another control."
],
"description": "Minigame objective description."
},
{
"config": {
"timer": "00:00:10",
"minimize_scale": [0.36, 0.356],
"minimize_position": [0.57, 0.395],
"title_pos": [0.5, 0.08],
"subtitle_pos": [0.5, 0.15],
"title_controls_pos": [0.02, 0.2],
"controls_pos": [0.5, 0.25],
"title_description_pos": [0.02, 0.65],
"description_pos": [0.05, 0.7],
"title_scale": 4.0,
"subtitle_scale": 3.0,
"title_controls_scale": 1.6,
"controls_scale": 1.6,
"title_description_scale": 1.6,
"description_scale": 1.6,
"timer_pos": [0.5, 0.01],
"timer_scale": 1.45
}
},
{
"cinematics": {
"commands": [
"console_command: cam-server start wawa @a 10s",
"wait: 10s",
"console_command: say La cinemática ha finalizado."
]
}
}
]
Language entries
| Field | Description |
|---|---|
lang |
Language code (es, en, etc.) — matched to the client's language setting |
title |
Main title shown at the top of the overlay |
subtitle |
Subtitle shown below the title |
title_controls |
Section header for the controls list |
controls |
Array of control descriptions; supports [[ICON:KEY]] placeholders and \n line breaks |
title_description |
Section header for the description block |
description |
Body text for the description section |
Icon placeholders
Use [[ICON:KEY_NAME]] inside controls or description strings to embed keyboard/mouse icons. Examples:
[[ICON:LEFT_CLICK]][[ICON:RIGHT_CLICK]][[ICON:SPACE]][[ICON:CTRL]][[ICON:W]],[[ICON:A]],[[ICON:S]],[[ICON:D]]
Text formatting
Inside any text field you can use:
&<code>— Minecraft chat formatting codes (e.g.&lbold,&cred)#RRGGBB— Inline hex color
Config block
All position values are normalized screen coordinates [x, y] where (0, 0) is top-left and (1, 1) is bottom-right.
| Field | Type | Description |
|---|---|---|
timer |
"HH:MM:SS" |
Countdown duration shown at the top |
timer_pos |
[x, y] |
Timer position |
timer_scale |
float | Timer text scale |
minimize_scale |
[x, y] |
Scale of the minimized state widget |
minimize_position |
[x, y] |
Position of the minimized widget |
title_pos |
[x, y] |
Title position |
title_scale |
float | Title text scale |
subtitle_pos |
[x, y] |
Subtitle position |
subtitle_scale |
float | Subtitle text scale |
title_controls_pos |
[x, y] |
Controls section header position |
title_controls_scale |
float | Controls section header scale |
controls_pos |
[x, y] |
Controls list position |
controls_scale |
float | Controls list text scale |
title_description_pos |
[x, y] |
Description section header position |
title_description_scale |
float | Description section header scale |
description_pos |
[x, y] |
Description body position |
description_scale |
float | Description body text scale |
Cinematics block
The commands array runs sequentially when the instruction screen opens.
| Prefix | Example | Description |
|---|---|---|
console_command: |
console_command: say Hello |
Runs a server command |
wait: |
wait: 5s |
Waits the specified time before the next command |
Translation
The mod can auto-translate instruction content using the MyMemory free API. Configure this in config/setsumeisho/translation.json:
{
"enabled": false,
"source_lang": "es",
"api_key": ""
}
Use /setsumeisho pretranslate <file> to pre-generate translations and cache them, so clients receive content in their own language without latency when the screen opens.