minecraft-server/docs/RACKED_BRAND.md

190 lines
8 KiB
Markdown
Raw Normal View History

# racked.ru — In-Game Brand Design
**Last updated:** 2026-05-01
**Scope:** every player-facing string the Minecraft server emits — chat, MOTD, kick screens, /help, tablist, broadcasts.
This document is the canonical reference for in-game text styling. Pair with `MISSION.md` (mission-mode copy) and `THANKS.md` (third-party attributions). For surface-by-surface rewrite history see `docs/REBRAND_2026-04-30.md`.
---
## 1. Palette
Five legacy `&` codes only. Anything outside this set is banned.
| Code | Hex | Use |
|---|---|---|
| `&f` | `#FFFFFF` | primary text, brand wordmark, key values |
| `&7` | `#AAAAAA` | body / descriptive text |
| `&8` | `#555555` | brackets, dividers `&8------------------------------------` |
| `&e` | `#FFFF55` | interactive tokens **only**: command names, player names, URLs, placeholders (`%player%`, `{PLAYER}`) |
| `&r` | reset | end every styled segment to prevent colour bleed |
**Hard-error escape:** `&c` light red — for catastrophic states only (auth failure, kick reason, ban, whitelist deny). Sparingly. Anything that's "wrong, try again" should be `&7` body + the relevant token in `&e`, not `&c`.
**Banned codes:** `&0 &1 &2 &3 &4 &5 &9 &a &b &d &l &o &m &k`. Replace any of these with the equivalent from the palette.
**Style modifiers:**
- `&n` underline — only on `/help` section titles, never on body text or links.
- `&o` italic — single exception preserved for the `выживание` Russian flavour subtitle in MiniMOTD line 2. Don't introduce elsewhere.
- `&l` bold, `&m` strikethrough, `&k` obfuscated — never.
MiniMessage equivalents (used by ComfyWhitelist, GrimAC, MarriageMaster, etc.): `<white>`, `<gray>`, `<dark_gray>`, `<yellow>`, `<red>`, `<reset>`. Same palette rules apply.
---
## 2. Wordmark
Four written forms, each scoped to a specific surface:
1. **Bracketed prefix** (chat) — `&8[&fracked.ru&8]&r ` (note trailing space, then `&7` body). Universal per-line prefix for all plugin chat output.
2. **Pipe form** (window titles, display names) — `racked.ru | <surface>`. Examples: `racked.ru | client`, `racked.ru | launcher`.
3. **Hero form** (MOTD line 1, TAB footer, banners) — `ʀ ᴀ ᴋ ᴇ ᴅ . ʀ ` (small-caps unicode glyphs, single space between each).
4. **Plain form** (inside body sentences) — `racked.ru` (lowercase, no spaces).
Casing rule: brand is **always lowercase**. The small-caps unicode hero is visually larger but semantically lowercase.
---
## 3. Tagline
Canonical, in current use:
> **`experience the game the way it should have always been`**
- All-lowercase. No closing punctuation.
- Em-dash separator from the brand when paired: `racked.ru — experience the game the way it should have always been`.
- Used in `server.properties` (`motd=`), `docker-compose.yml`, MISSION.md, README.md.
Mission-mode quote (separate from tagline, ToS / About surfaces only):
> *all software should be free and open-source* — racked.ru
Not for in-chat use. Don't lecture players in chat.
---
## 4. Tone
- **Pragmatic-not-preachy.** Privacy + perf claims only. No FOSS speeches in chat.
- **Short sentences, declarative.** "Pick a username, play offline." "You don't have to trust me — read the source."
- **No exclamation marks.** Strip every `!` from upstream defaults. Exclamation reads as upstream-template noise, not brand voice.
- **Lowercase body** where it reads naturally. Sentence case acceptable for longer prose.
- **No emojis.** No ASCII art beyond the canonical divider.
- **Period punctuation** for full sentences. Many short messages can drop the trailing period.
- **English primary.** Russian (`выживание`) is a single italic-yellow flavour token in MiniMOTD — never a localisation channel for the rest of the server. Server is EN-only.
---
## 5. Templates
Drop-in shapes for new strings. Match these exactly.
```
# Standard info line
&8[&fracked.ru&8]&r &7<message>
# Info with command reference
&8[&fracked.ru&8]&r &7<verb> &e/<cmd>
# Info with player reference
&8[&fracked.ru&8]&r &7<verb> &e<player>
# Hard error (rare)
&8[&fracked.ru&8]&r &cerror: &7<reason>
# Section header (paginated /help, /rules)
&8[&fracked.ru&8]&r
&8------------------------------------
&r&n<Section title>&r
# Status row (tablist-style)
&7<sᴍᴀʟʟ-ᴄᴀᴘ ʟᴀʙᴇʟ>: &f<value>
# Multi-line kick screen
[racked.ru]
<reason>
<recovery action> at racked.ru
```
The 36-dash divider is `&8------------------------------------` — exactly 36 dashes. Don't shorten or pad.
---
## 6. Surface map
| Surface | File on server | Brand element |
|---|---|---|
| Server-list MOTD | `MiniMOTD/main.conf` | hero wordmark + Russian flavour subtitle |
| `motd=` | `server.properties` | plain wordmark + tagline |
| Per-join chat | `Essentials/motd.txt` | branded prefix + `/help` hint |
| Post-auth confirmation | `AuthMe/welcome.txt` | branded prefix + `&e{PLAYER}` |
| Login/register flow | `AuthMe/messages/messages_en.yml` | branded prefix on every key |
| `/help` pages | `HelpCommand/config.yml` | header + 36-dash dividers + monochrome page |
| Whitelist kick | `ComfyWhitelist/locales/messages_en.yml` | multi-line `apply at racked.ru` screen |
| Anti-cheat alerts | `GrimAC/messages.yml` | branded prefix; hard kicks keep `&c` |
| Tab list | `TAB/config.yml` | small-caps footer wordmark + status rows |
| Block-log output | `CoreProtect/language.yml` | branded prefix on every line |
| Marriage chat | `MarriageMaster/lang/en.yml` | branded prefix on tellraw blocks |
| Skin change | `SkinsRestorer/config.yml` (custom help) | branded prefix |
| Land claim | `Homestead/config.yml`, `Lands/Language/*` | prefix on broadcasts (Lands lang deferred) |
| Global chat | `LPC/config.yml` | `chat-format: {suffix}{prefix}&f{name}&r &8> &7{message}` |
| Limbo entry | `AuthLimbo/config.yml` | already on-brand (custom plugin) |
---
## 7. Plugin-name leaks — banned
Every upstream plugin tag is replaced with the canonical chat prefix:
| Banned | Replace with |
|---|---|
| `[Lands]`, `[Homestead]`, `[SkinsRestorer]`, `[TAB]`, `[ProAntiTab]`, `[PAT]`, `Grim »`, `[VoiceChat]`, `[Multiverse-Core]`, `[WorldEdit]`, `[MarriageMaster]`, `[LPC]`, `[PhantomSMP]`, `[Essentials]`, `[CoreProtect]`, `[CO]`, `[Vault]`, `AuthMe`, `AuthMeReloaded` | `&8[&fracked.ru&8]&r ` |
Strip "Join our Discord", "Visit our website" lines that link to upstream plugin authors. Never link to the plugin author's domain.
---
## 8. Colour-code reference card
| Code | Sample | Allowed in chat? |
|---|---|---|
| `&f` | white | ✓ primary |
| `&7` | grey | ✓ body |
| `&8` | dark grey | ✓ structure |
| `&e` | yellow | ✓ tokens only |
| `&r` | reset | ✓ always close styled segments |
| `&c` | red | ⚠ hard errors only |
| `&n` | underline | ⚠ /help titles only |
| `&o` | italic | ⚠ Russian flavour token only |
| any other | — | ✗ banned |
---
## 9. Validation
Before shipping a string:
1. Does it start with `&8[&fracked.ru&8]&r ` (chat) or use a documented form (MOTD, kick, /help header)?
2. Are colour codes inside the 5+1 allowed set?
3. Is body lowercase and exclamation-free?
4. Are commands / player names / URLs in `&e`?
5. Does the file still parse as valid YAML/HOCON/JSON? (Quote `&`-prefixed strings: `'&7text'`.)
6. Are placeholders preserved verbatim (`%player%`, `{PLAYER}`, `<player>`)?
If yes to all — ship.
---
## 10. Out of scope (deferred)
These surfaces remain on upstream defaults pending a future pass:
- **Lands** `Language/en-US.yml` (~6,975 lines). Body text rebrand deferred; broadcast prefixes in `config.yml` are already branded.
- **Homestead** `languages/en-US.yml` (~645 lines). Same posture as Lands.
- **Jar-locale extraction** for plugins where chat output is shipped inside the JAR (no on-disk lang file): SkinsRestorer (`locale_en.json`), Multiverse-Core (`en.properties`), WorldEdit / FAWE (`strings.json`), LuckPerms (`lp_en.properties`). Admin/builder-facing surfaces, low priority.
- **GrimAC** `database.yml`, `discord.yml`, `punishments.yml` — secondary message files not yet touched.
When picking these up: same palette, same prefix, same templates. No new design decisions required.