Setsumeisho
Recreate the instructions from Eufonia Studios that were used in Squid Craft Games and DEDsafio
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
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 `lang` entries (`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
1. Place the mod JAR in the `mods/` folder. 2. 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 cinematics block, the cinematics block, and the cinematics block.
Structure
```json [ { "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. `&l` bold, `&c` red) - `#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`:
```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.