# Essentials: spawn, homes, přezdívky a každodenní příkazy

> /spawn, /warp, /home, /rtp, /tpa, /back, /nick, /hat, /trash a /near pro hráče; /heal, /feed, /god, /invsee a /vanish pro tým.

Source: https://stygion.eu/cs/docs/keystone/essentials
Updated: 2026-10-10

Modul `essentials`, soubor `essentials.toml`. Malé věci, které server chce hned: spawn, warpy, homes, neviditelný personál a každodenní příkazy. Každá část se dá vypnout zvlášť (`spawn.enabled`, `warps.enabled`, `homes.enabled`, `vanish.enabled` a jeden přepínač na každý příkaz níž).

## Spawn a warpy

- `/spawn` a `/warp <jméno>` mají všichni (`keystone.spawn`, `keystone.warp`; skupina `default` je dostane při startu). Tab nabídne jména; samotné `/warp`, nebo `/warps`, je vypíše.
- `/setwarp <jméno>` vytvoří nebo přesune warp tam, kde stojíš (`keystone.warp.set`), `/delwarp <jméno>` ho smaže (`keystone.warp.delete`). V editoru je obrazovka **Warpy**, která je vypíše a maže.
- Warp do světa, který není načtený, je v seznamu vedený jako rozbitý a odmítne se s důvodem.
- Kde už `/warp` nebo `/spawn` drží jiný mod, zůstane jeho; Keystonovy příkazy jsou pak pod `/keystone`.

## Homes

Od Keystone 0.2.1. Každý hráč má vlastní pojmenovaná místa.

- `/sethome [jméno]` udělá home tam, kde stojíš (nebo přesune existující), `/home [jméno]` tě tam vrátí, `/delhome <jméno>` ho smaže a `/homes` je vypíše jako tlačítka, na která stačí kliknout. Bez jména je to home `home` (nebo tvůj jediný). Tab nabízí jen tvoje jména. Všechno je jedno právo `keystone.home`, které skupina `default` dostane při startu.
- **Kolik homes je podle skupiny:** `homes.limits`, jeden řádek `skupina=počet` (výchozí `default=2`; třeba `vip=4`, `vip-plus=6`, `legend=10`). Platí nejvyšší ze skupin, ve kterých hráč je, a stejně tak `keystone.home.limit.<n>` z jakékoli skupiny (do 100; operátoři a `keystone.*` mají 100). Nic se nesčítá. Když hodnost skončí, homes nad limitem dál fungují — jen nejde udělat další.
- **Bezpečný teleport:** odpočet `homes.warmup` (3 s), během kterého se musíš nehýbat — krok stranou nebo zásah ho zruší; po příchodu cooldown `homes.cooldown` (30 s). Přistání se kontroluje až na konci: pevná zem, místo pro nohy i hlavu, žádná láva ani oheň. Když někdo do home postavil blok, Keystone hledá `homes.safe-search` bloků nahoru a pak dolů a radši odmítne, než aby tě poslal do zdi. `/sethome` tam, kde se nedá stát, odmítne.
- Mezi dimenzemi ano, dokud `homes.across-worlds` není vypnuté.
- **Ne do cizího území:** s FTB Chunks (`homes.respect-claims`) nejde `/sethome` v chunku, který drží tým, ve kterém nejsi a se kterým nejsi spojenec, a nejde ani `/home` do home, nad kterým někdo zabral území později.
- **Tým:** `keystone.home.others` — výchozí žádná skupina, operátoři ano — dovolí `/home hráč:jméno`, `/delhome hráč:jméno` a `/homes hráč` (i u hráče, který není online), bez odpočtu a bez kontroly území. Kdo ho nemá, dostane stejné odmítnutí, ať ten hráč nebo home existuje, nebo ne. `keystone.home.instant` přeskočí odpočet i cooldown komukoli, kdo ho má.
- V editoru je obrazovka **Homes**: všechny homes s hledáním, limit podle skupin a mazání. Přes API `GET /v1/homes` potřebuje `homes.read` a `POST /v1/homes/delete` `homes.write` — **ty mají jen klíče vlastníka**, protože seznam homes je seznam všech základen.
- Nic z toho neběží každý tick: odpočet se na hráče dívá čtyřikrát za sekundu jen po dobu, kdy běží.

## Vanish

`/vanish` (`keystone.vanish`) odstraní personál ze světa všech ostatních hráčů a z tab listu, z počtu a jmen v seznamu serverů, z query portu, z `/list`, z hlášek o připojení a odpojení, z řádku o připojení v Discord mostu a z tématu kanálu a z čísel, která dává lokální API. Moby ho ignorují a, pokud není `vanish.pick-up-items`, předměty zůstanou na zemi. Kdo má `keystone.vanish.see`, vidí je dál. Přežije odpojení i restart.

## Náhodný teleport

Od Keystone 0.2.2. `/rtp` pošle hráče na náhodné bezpečné místo. Právo `keystone.rtp`, které skupina `default` dostane při startu; `rtp.enabled = false` ho vypne.

- **Kam:** do mezikruží mezi `rtp.min-distance` a `rtp.max-distance` bloky (výchozí 500 a 5000) od spawnu světa, nebo od jiného bodu (`rtp.centre = "spawn"` nebo `"x, z"`). Na pevnou zem — nikdy do vody, lávy, listí ani na strop Netheru (ve světě se stropem dopadne pod něj) — a s FTB Chunks nikdy na území týmu, ve kterém hráč není a není jeho spojencem (`rtp.respect-claims`, kontroluje se znovu na konci odpočtu). `max-distance` drž uvnitř hranice světa; místa za ní se přeskočí.
- **Které dimenze:** `rtp.worlds`, jedna na řádek, každá případně s vlastními vzdálenostmi — `minecraft:overworld`, nebo `minecraft:the_nether 100-1000` (blok Netheru je osm bloků Overworldu). Samotné `/rtp` jde do dimenze, ve které hráč stojí, pokud je v seznamu, jinak na první řádek; `/rtp <dimenze>` vybere jednu.
- **Postavené tak, aby server nestálo výkon:** chunk se načítá — obvykle generuje — mimo hlavní vlákno serveru, jeden pokus po druhém, nejvýš `rtp.attempts` (6), a hledají nejvýš dva hráči naráz. Místa za hranicí nebo na cizím území se přeskočí dřív, než se cokoli načte, a nepočítají se. Každé `/rtp` může vygenerovat nové chunky, takže čím větší vzdálenost, tím víc svět roste.
- **Odpočet a cooldown:** `rtp.warmup` (3 s), během kterého se musí stát na místě — odchod nebo zásah ho zruší — a `rtp.cooldown` (300 s), počítaný od příchodu nebo od hledání, které nic nenašlo, protože i to generovalo chunky.
- `keystone.rtp.instant` přeskočí odpočet i cooldown komukoli, kdo ho má.
- Kde už `/rtp` drží jiný mod, zůstane jeho; Keystonovo je `/keystone rtp`.

## Žádosti o teleport

Od Keystone 0.2.2. `/tpa <hráč>` požádá, aby ses mohl přenést k němu, `/tpahere <hráč>` požádá, aby přišel on, `/tpaccept` a `/tpdeny` odpovídají (stačí i tlačítka v otázce), `/tpacancel` vezme tvou žádost zpět. `keystone.tpa` jsou všech pět příkazů a skupina `default` ho dostane při startu; `tpa.enabled = false` je vypne.

- Žádost vyprší po `tpa.timeout` (60 s) a oba se to dozvědí. Kdo se přenáší, stojí `tpa.warmup` (3 s) a dopadne vedle druhého tam, kde je *tehdy*, na bezpečnou zem; odchod nebo zásah to zruší. Po příchodu je `tpa.cooldown` (30 s), než může být stejný hráč žádostí přenesen znovu.
- Mezi dimenzemi, dokud `tpa.across-worlds` není vypnuté. Ne do cizího území (`tpa.respect-claims`, FTB Chunks): kdo řekl ano, může stát v základně, která není ani jeho, ani přenášeného.
- **Tým:** `keystone.tpa.others` jde i přivádí hned, bez ptaní, bez odpočtu a bez kontroly území. `keystone.tpa.instant` přeskočí odpočet i cooldown. Zmizelého (vanish) hráče nejde oslovit.
- Kde už `/tpa` drží jiný mod, zůstane jeho; Keystonovy příkazy jsou pod `/keystone`.

## Back

Od Keystone 0.2.2. `/back` vrátí hráče tam, kde stál, než ho Keystone naposledy přenesl — `/spawn`, `/warp`, `/home`, `/rtp`, žádost o teleport nebo samotné `/back` — nebo tam, kde zemřel (`back.on-death`). Právo `keystone.back` a `keystone.back.death` pro místo smrti; obě má skupina `default` od prvního startu. `keystone.back.instant` přeskočí odpočet i cooldown.

- **Smrt má přednost** (0.2.4, `back.prefer-death`, zapnuté): po smrti vede `/back` na místo smrti, i když ses mezitím přenesl přes `/spawn` nebo `/home` — dokud tě tam jednou nevezme; další `/back` pak jde na teleport předtím. Vypnuté: platí to, co se stalo naposled. Kdo nemá `keystone.back.death`, vrátí se na poslední teleport.
- Vanilkové `/tp` ani teleport jiného modu se nevidí a restart všechna místa zapomene.
- `back.warmup` (3 s) a `back.cooldown` (30 s) jako výše. Přistání se kontroluje: pevná zem, místo ke stání. Když samo místo bezpečné není, zkouší se `back.safe-search` (8) bloků nahoru a dolů — a u smrti (láva, zeď, voda) i stejně daleko do stran, nejvýš 16. Když se nic bezpečného nenajde, nebo šlo o pád do voidu, odmítne se s důvodem. `back.respect-claims` odmítne místo, které mezitím zabral cizí tým.
- `back.enabled = false` ho vypne.

## Každodenní příkazy

Od Keystone 0.2.4. Každý má vlastní `<příkaz>.enabled` (platí po restartu) a každé právo se ověřuje znovu, když příkaz běží.

| Příkaz | Právo | Co dělá |
|---|---|---|
| `/heal [hráč]` | `keystone.heal` (`.others` na někoho jiného) | Plné zdraví, uhasí oheň |
| `/feed [hráč]` | `keystone.feed` (`.others`) | Plný hlad |
| `/god [hráč]` | `keystone.god` (`.others`) | Ublížit může jen void a `/kill`, dokud příkaz nenapíše znovu nebo se neodpojí |
| `/invsee <hráč>` | `keystone.invsee` | Jeho inventář — online i offline |
| `/invsee <hráč> ender` | `keystone.invsee.ender` | Jeho ender chest |
| `/hat` | `keystone.hat` (`default`) | Nasadí jeden kus toho, co držíš; stará čepice jde zpátky do inventáře |
| `/trash` | `keystone.trash` (`default`) | Truhla, která se po zavření vysype do nicoty |
| `/near` | `keystone.near` (`default`) | Kdo je do `near.radius` (200) bloků, se vzdáleností zaokrouhlenou na desítky — nikdy směr ani souřadnice |

- **Nikdy na výš postaveného:** `/heal`, `/feed`, `/god` a `/nick` na někoho jiného a změny v jeho inventáři se odmítnou u hráče, který stojí výš (těžší skupina, nebo operátor, když ty nejsi).
- **`/invsee`:** měnit obsah může jen `keystone.invsee.modify`, a jen dokud je hráč online — je to jeho živý inventář a okno se zavře ve chvíli, kdy odejde. **Inventář offline hráče se jen ukazuje:** načte se z uložených dat do kopie, která se nikdy nezapisuje zpátky, protože zápis ve chvíli, kdy se možná zrovna připojuje, by mohl věci zdvojit nebo ztratit. Z okna, které měnit nesmíš, nejde nic vzít, shift-kliknout, prohodit číslem, přetáhnout ani vyhodit.
- **God mode platí do odpojení:** končí s odchodem a god mode, který si hráč dal sám, skončí, jakmile přijde o `keystone.god` (skončený rank, odebraná skupina).
- **`/hat`** respektuje Curse of Binding: prokletá helma zůstane na hlavě. `/trash` opravdu maže.
- **Cooldowny:** `heal.cooldown`, `feed.cooldown`, `god.cooldown` (0), `near.cooldown` (10 s), v sekundách; `keystone.<příkaz>.instant` cooldown přeskočí.
- `/hat`, `/trash` a `/near` má skupina `default` od prvního startu (spolu s `/kit`); ostatní zůstávají operátorům a skupinám, kterým je dáš.

## Přezdívky

Od Keystone 0.2.4. `/nick <jméno>` — hráč vystupuje pod jiným jménem v chatu, v tab listu a všude, kde hra vypisuje jména (zprávy o smrti, `/msg`). Po najetí myší je vidět účet: ve formátech chatu řádek `chat.hover.nick` (`{account}`), u jména od hry jeho obvyklý hover. `/nick` ukáže tvou přezdívku, `/nick off` ji zruší.

- **Kdo si smí vybrat vlastní:** `keystone.nick`, nebo `nick.from-group` — id skupiny; smí každý v ní a v každé těžší (`"vip-plus"` pustí VIP+ a všechny ranky nad ním). Prázdné: jen kdo má právo.
- **Jaká přezdívka smí být:** jen písmena, číslice a `_` — žádné barvy ani mezery — `nick.min-length` (3) až `nick.max-length` (16) znaků, žádné slovo z `nick.blocked-words` (`admin`, `owner`, `staff`, … — i s číslicemi místo písmen nebo rozdělené podtržítky) a **nikdy přezdívka jiného hráče ani jméno žádného účtu, který server viděl**. `keystone.nick.bypass` překročí seznam slov, nic jiného.
- **Tým:** `/nick <hráč> <jméno>` nebo `/nick <hráč> off` (`keystone.nick.others`), nikdy na výš postaveného. Přezdívka od týmu zůstává; tu, kterou si hráč vybral sám, ztratí s právem na ni.
- `nick.cooldown` (300 s) mezi změnami vlastní přezdívky; `keystone.nick.instant` ho přeskočí.

## Přejmenování a vypnutí příkazu

Od Keystone 0.2.4, v `keystone.toml`: `commands.off = ["nick", "hat"]` vypne Keystonovy příkazy těch jmen, `commands.rename = ["kit: kits"]` dá jednomu jiné jméno (právo zůstává). Pro pack, kde má jméno dál držet jiný mod. `/keystone <příkaz>` zůstává vždycky a samotné `/keystone` vypnout ani přejmenovat nejde. Platí po restartu.
