
FancyNpcs – Minecraft Java Edition 1.19.4–1.21.x
Závislosti: Platforma: Paper / Folia (Spigot a další zastaralé forky Bukkitu nejsou podporovány) Verze Java: Java 21+ (pro nejnovější…
Závislosti: Platforma: Paper / Folia (Spigot a další zastaralé forky Bukkitu nejsou podporovány) Verze Java: Java 21+ (pro nejnovější sestavení je vyžadována Java 25) Verze Minecraft: 1.19.4 – 1.21.x Doplňkové knihovny:
Závislosti:
Platforma: Paper / Folia (Spigot a další zastaralé forky Bukkitu nejsou podporovány)
Verze Java: Java 21+ (pro nejnovější sestavení je vyžadována Java 25)
Verze Minecraft: 1.19.4 – 1.21.x
Doplňkové knihovny: PlaceholdersAPI (doporučeno pro integraci proměnných do rozhraní akcí)
Vytváření interaktivních neherních postav (NPC) na serverech Minecraft tradičně doprovázejí značné hardwarové náklady. Zastaralá řešení registrují NPC jako plnohodnotné serverové entity (Entity), což nutí jádro zpracovávat jejich umělou inteligenci, fyzické kolize, hledání cesty a načítání chunků. To vede ke kritickému poklesu hodnoty TPS (Ticks Per Second) s rostoucím počtem postav. Plugin FancyNpcs nabízí alternativní, paketovou metodu vykreslování virtuálních postav, která umožňuje udržet stovky interaktivních figur bez jakéhokoli vlivu na výkon serverového vlákna.
Paketová architektura a kompatibilita s Folia
Hlavní technickou vlastností FancyNpcs je, že jím vytvářené postavy existují výhradně v paměti pluginu a na straně připojených klientů. Server je nepřidává do databáze světa a nezpracovává je v obecném cyklu aktualizace entit.
Když se hráč přiblíží k zadaným souřadnicím, plugin zachytí síťový provoz a odešle klientovi pakety ClientboundAddPlayerPacket (pro lidské modely) nebo ClientboundAddEntityPacket (pro ostatní tvory). Další chování, výbava a stav zobrazení se aktualizují pomocí paketů ClientboundSetEntityDataPacket (metadata) a ClientboundSetEquipmentPacket (výstroj). Pro server tyto postavy neexistují — jsou to „virtuální projekce“ pro koncové uživatele.
Tento přístup činí FancyNpcs ideální volbou pro vícevláknové servery založené na Folia. Protože Folia rozděluje svět na samostatné regiony, z nichž každý běží ve vlastním vlákně, tradiční NPC pluginy často způsobují uváznutí (deadlocky) a kritické chyby kvůli pokusům o interakci mezi vlákny různých regionů. FancyNpcs zpracovává data asynchronně a odesílá pakety hráčům přímo, čímž se zcela vyhýbá konfliktům s plánovačem úloh Folia.
Možnosti přizpůsobení vzhledu
Plugin podporuje širokou škálu typů entit a vizuálních efektů. Hráči mohou vytvářet NPC v podobě jakýchkoli vanilla mobů (Player, Cow, Zombie, Skeleton, Villager, Pig atd.) a jemně doladit jejich vzhled.
Správa skinů (pro lidské modely)
Pro postavy typu player je k dispozici několik zdrojů načítání textur:
@mirror: skin NPC dynamicky kopíruje skin toho hráče, který se na něj v daném okamžiku dívá.Jméno nebo UUID licencovaného účtu: plugin automaticky odešle požadavek na session servery Mojangu za účelem načtení odpovídající textury.
Přímý odkaz na webový zdroj (URL): možnost načíst jakýkoli soubor .png třetí strany z webového serveru.
Místní soubory: obrázky předem umístěné ve složce /plugins/FancyNpcs/skins/.
Příznak
--slim: aktivuje použití modelu úzkých paží (styl Alex) pro skiny načtené z odkazů.
Vizuální efekty a atributy
Záře (Glowing): přidává barevný obrys kolem postavy. Barva je vázána na vanilla barvy týmů (Team Colors).
Výbava (Equipment): postavám lze dát jakékoli předměty do levé nebo pravé ruky a také jim nasadit přilbu, náprsník, nohavice a boty.
Pózy (Poses): podporovány jsou specifické stavy zobrazení, jako je sezení, ležení (imitace spánku v posteli), plavání a plazení.
Velikost (Scale): v novějších verzích pluginu byla implementována podpora škálování entit (změna fyzické velikosti modelu).
Systém příkazů a syntaxe
Správa postav probíhá výhradně pomocí příkazů v herním chatu nebo v konzoli serveru. Níže uvedená tabulka obsahuje popis základní syntaxe:
Příkaz | Popis a parametry | Příklad použití |
| Vytvoření nové postavy |
|
| Odstranění existující postavy |
|
| Změna skinu (jméno, url nebo @mirror) |
|
| Nasadí na NPC předmět, který hráč drží |
|
| Zapne barevnou záři kolem modelu |
|
| Přiměje postavu otáčet hlavu směrem k hráčům |
|
| Nastavuje specifické pózy nebo varianty mobů |
|
Pro globální správu pluginu se používají platformní příkazy:
/fancynpcs reload— znovu načte systémové konfigurace./fancynpcs save— vynuceně zapíše aktuální stav všech NPC na disk do souboru databáze.
Systém interaktivních akcí (Actions)
FancyNpcs obsahuje vestavěný skriptovací mechanismus akcí, který se aktivuje při interakci hráče s postavou. Akce lze nastavit pro různé typy kliknutí (LEFT_CLICK, RIGHT_CLICK, ANY_CLICK).
Plugin nabízí následující typy akcí k provedení:
message: odeslání zprávy hráči. Podporuje MiniMessage (Hex barvy) a proměnné PlaceholdersAPI.player_command: provedení příkazu jménem hráče.player_command_as_op: provedení příkazu jménem hráče s dočasným udělením oprávnění operátora (pro aktivaci příkazů, které běžný hráč nemůže použít).console_command: provedení příkazu konzolí serveru. Proměnná {player} se automaticky nahradí jménem hráče.send_to_server: okamžité přenesení hráče na jiný server v síti BungeeCord nebo Velocity.wait: vytváří pauzu mezi akcemi (zpoždění v serverových ticích).block_until_done: zabraňuje opakovaným kliknutím na NPC, dokud není dokončen aktuální scénář akcí.execute_random_action: náhodný výběr jedné z následujících akcí v seznamu.
Příklad vytvoření složitého interaktivního scénáře pro NPC se jménem Bob:
Přidání uvítací zprávy:
/npc action Bob RIGHT_CLICK add message <yellow>Vítejte na našem serveru, %player_name%!</yellow>Přidání pauzy 40 ticků (2 sekundy):
/npc action Bob RIGHT_CLICK add wait 40Teleportace hráče na spawn pomocí konzole:
/npc action Bob RIGHT_CLICK add console_command teleport {player} 0 100 0
Díky možnosti přidávat několik po sobě jdoucích kroků a upravovat pořadí pomocí add_before, add_after a move_up/move_down mohou administrátoři vytvářet plnohodnotné dialogové stromy nebo složité mechanismy přechodů mezi lobby servery bez instalace dalších pluginů typu Denizen či MyCommand.
Struktura konfiguračních souborů
Veškerá data se ukládají do adresáře plugins/FancyNpcs/. Provoz pluginu je založen na dvou souborech:
1. config.yml
Tento soubor definuje globální chování pluginu a obsahuje následující nastavení:
turn_to_player_distance(výchozí 5): poloměr v blocích, v jehož rámci postava otáčí hlavu směrem k hráčům. Snížení tohoto parametru optimalizuje přenos síťových paketů ve vytížených zónách.visibility_distance(výchozí 20): vzdálenost v blocích, na kterou se klientovi odesílají pakety objevení NPC. Snížení pomáhá skrýt postavy za zdmi nebo mlhou vykreslování a šetřit tak hráčům FPS.enable_autosave: automatický pravidelný zápis změn na disk.
2. npcs.yml
V tomto souboru plugin ukládá databázi vytvořených NPC. Každá postava je popsána samostatným blokem dat:
YAML
Bob: id: 104 type: PLAYER world: world x: 10.5 y: 64.0 z: -25.5 yaw: 90.0 pitch: 0.0 glowing: false turn_to_player: true skin: value: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUv..." signature: "d3G8h...==" actions: RIGHT_CLICK: - type: MESSAGE value: "<green>Vítejte!</green>" |
Upozornění: Ruční úprava souboru npcs.yml se důrazně nedoporučuje kvůli riziku poškození syntaxe nebo nesprávného určení souřadnic. Veškeré změny konfigurace NPC by se měly provádět výhradně prostřednictvím herních příkazů a poté je zafixovat pomocí /fancynpcs save.
Závěr
Plugin FancyNpcs je moderní a výkonné řešení pro vytváření dekorativních a interaktivních postav na serverech Minecraft Java Edition. Odstraňuje hlavní problém starších nástrojů — spotřebu procesorového času serveru na obsluhu entit.
Hlavním omezením pluginu je úplná absence umělé inteligence. Protože jsou postavy virtuálními projekcemi na straně klienta, nemohou se samy pohybovat po světě, interagovat s bloky ani útočit na ostatní moby.
Ve srovnání s klasickým pluginem Citizens, který podporuje složité mechaniky pohybu (navigace po waypointech) a integraci s bojovými systémy (mod Sentinel), FancyNpcs zaostává v pružnosti umělé inteligence. Citizens však vytváří kolosální zátěž na hlavní vlákno serveru a je prakticky nepoužitelný na Folia. FancyNpcs nabízí ideální alternativu pro lobby servery, Velocity huby a velké SMP projekty, kde se od postav vyžaduje pouze statická přítomnost, pěkný vzhled a rychlé provedení příkazů při kliknutí.
Instalace
Typická instalace trvá asi 5 minut. Postup je stejný; liší se jen loader a odpovídající verze.
- 1Stop your Minecraft server.
- 2Drop the plugin .jar into the server /plugins folder.
- 3Start the server once so the plugin generates its config files.
- 4Edit /plugins/<name>/config.yml as needed, then run /reload confirm or restart.








