← Назад к ресурсам

Setsumeisho

Recreate the instructions from Eufonia Studios that were used in Squid Craft Games and DEDsafio

Modrinth game-mechanics

Описание

# 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 ` | Opens the named instruction screen for the executing player | | `/setsumeisho open ` | Opens the instruction screen for a specific player | | `/setsumeisho close` | Closes the currently open instruction overlay | | `/setsumeisho create ` | Creates a new template JSON file at `config/setsumeisho/.json` | | `/setsumeisho pretranslate ` | 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 ```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: - `&` — 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](https://mymemory.translated.net/) free API. Configure this in `config/setsumeisho/translation.json`: ```json { "enabled": false, "source_lang": "es", "api_key": "" } ``` Use `/setsumeisho pretranslate ` to pre-generate translations and cache them, so clients receive content in their own language without latency when the screen opens.