
FancyNpcs – Minecraft Java Edition 1.19.4–1.21.x
Avhengigheter: Plattform: Paper / Folia (Spigot og andre utdaterte Bukkit-forker støttes ikke) Java-versjon: Java 21+ (Java 25 kreves for…
Avhengigheter: Plattform: Paper / Folia (Spigot og andre utdaterte Bukkit-forker støttes ikke) Java-versjon: Java 21+ (Java 25 kreves for de nyeste byggene) Minecraft-versjon: 1.19.4 – 1.21.x Ekstra biblioteker: Placeho
Avhengigheter:
Plattform: Paper / Folia (Spigot og andre utdaterte Bukkit-forker støttes ikke)
Java-versjon: Java 21+ (Java 25 kreves for de nyeste byggene)
Minecraft-versjon: 1.19.4 – 1.21.x
Ekstra biblioteker: PlaceholdersAPI (anbefales for integrering av variabler i handlingsgrensesnittet)
Å lage interaktive ikke-spillerfigurer (NPC) på Minecraft-servere medfører tradisjonelt betydelige maskinvarekostnader. Utdaterte løsninger registrerer NPC-er som fullverdige serverenheter (Entity), noe som tvinger kjernen til å behandle deres kunstige intelligens, fysiske kollisjoner, banesøk og lasting av chunks. Dette fører til et kritisk fall i TPS-indikatoren (Ticks Per Second) etter hvert som antallet figurer øker. Pluginen FancyNpcs tilbyr en alternativ, pakkebasert metode for å rendre virtuelle figurer, som gjør det mulig å holde hundrevis av interaktive figurer uten noen som helst innvirkning på ytelsen til servertråden.
Pakkearkitektur og Folia-kompatibilitet
Den viktigste tekniske egenskapen ved FancyNpcs er at de opprettede figurene utelukkende finnes i pluginens minne og på de tilkoblede klientenes side. Serveren legger dem verken til i verdensdatabasen eller behandler dem i den generelle oppdateringssyklusen for enheter.
Når en spiller nærmer seg de angitte koordinatene, fanger pluginen opp nettverkstrafikken og sender klienten pakkene ClientboundAddPlayerPacket (for menneskelige modeller) eller ClientboundAddEntityPacket (for andre skapninger). Videre atferd, utstyr og visningsstatus oppdateres ved hjelp av pakkene ClientboundSetEntityDataPacket (metadata) og ClientboundSetEquipmentPacket (utstyr). For serveren finnes ikke disse figurene – de er «virtuelle projeksjoner» for sluttbrukerne.
Denne tilnærmingen gjør FancyNpcs til et ideelt valg for flertrådede servere basert på Folia. Siden Folia deler verden inn i separate regioner, der hver kjører i sin egen tråd, forårsaker tradisjonelle NPC-plugins ofte vranglåser og kritiske feil på grunn av forsøk på interaksjon mellom tråder i ulike regioner. FancyNpcs behandler dataene asynkront og sender pakkene direkte til spillerne, og unngår dermed fullstendig konflikter med Folias oppgaveplanlegger.
Muligheter for tilpasning av utseendet
Pluginen støtter et bredt spekter av enhetstyper og visuelle effekter. Spillere kan opprette NPC-er i form av hvilke som helst vanilla-mober (Player, Cow, Zombie, Skeleton, Villager, Pig osv.) og finjustere utseendet deres.
Skin-håndtering (for menneskelige modeller)
For figurer av typen player er det flere kilder for å laste teksturer:
@mirror: skinet til NPC-en kopierer dynamisk skinet til den spilleren som ser på den i øyeblikket.Navn eller UUID til en lisensiert konto: pluginen sender automatisk en forespørsel til Mojangs sesjonsservere for å laste den tilsvarende teksturen.
Direkte lenke til en nettressurs (URL): mulighet til å laste hvilken som helst tredjeparts .png-fil fra en nettserver.
Lokale filer: bilder som på forhånd er plassert i mappen /plugins/FancyNpcs/skins/.
Flagget
--slim: aktiverer bruk av den slanke armmodellen (Alex-stil) for skins som er lastet via lenker.
Visuelle effekter og attributter
Glød (Glowing): legger til en farget kontur rundt figuren. Fargen er knyttet til vanilla-lagfargene (Team Colors).
Utstyr (Equipment): figurene kan få hvilke som helst gjenstander i venstre eller høyre hånd, samt ikles hjelm, brystplate, beinskinner og støvler.
Posisjoner (Poses): spesifikke visningstilstander støttes, som å sitte, ligge (imitasjon av søvn i seng), svømme og krype.
Størrelse (Scale): i nye versjoner av pluginen er det implementert støtte for skalering av enheter (endring av modellens fysiske størrelse).
Kommandosystem og syntaks
Håndtering av figurene skjer utelukkende ved hjelp av kommandoer i spillchatten eller serverkonsollen. Tabellen nedenfor inneholder en beskrivelse av den grunnleggende syntaksen:
Kommando | Beskrivelse og parametere | Brukseksempel |
| Opprette en ny figur |
|
| Fjerne en eksisterende figur |
|
| Endre skin (navn, url eller @mirror) |
|
| Utstyrer NPC-en med gjenstanden spilleren holder |
|
| Slår på farget glød rundt modellen |
|
| Får figuren til å vri hodet mot spillerne |
|
| Angir spesifikke positurer eller mob-varianter |
|
For global administrasjon av pluginen brukes plattformkommandoene:
/fancynpcs reload— laster systemkonfigurasjonene på nytt./fancynpcs save— skriver tvungent gjeldende tilstand for alle NPC-er til disk i databasefilen.
System for interaktive handlinger (Actions)
FancyNpcs inneholder en innebygd skriptmekanisme for handlinger som aktiveres når en spiller interagerer med figuren. Handlinger kan konfigureres for ulike klikktyper (LEFT_CLICK, RIGHT_CLICK, ANY_CLICK).
Pluginen tilbyr følgende typer handlinger som kan utføres:
message: sending av en melding til spilleren. Støtter MiniMessage (Hex-farger) og PlaceholdersAPI-variabler.player_command: utføring av en kommando på vegne av spilleren.player_command_as_op: utføring av en kommando på vegne av spilleren med midlertidig tildeling av operatørrettigheter (for å aktivere kommandoer en vanlig spiller ikke kan bruke).console_command: utføring av en kommando via serverkonsollen. Variabelen {player} erstattes automatisk med spillerens navn.send_to_server: umiddelbar flytting av spilleren til en annen server i BungeeCord- eller Velocity-nettverket.wait: oppretter en pause mellom handlinger (forsinkelse i server-tick).block_until_done: forhindrer gjentatte klikk på NPC-en til det gjeldende handlingsscenarioet er fullført.execute_random_action: tilfeldig valg av én av de følgende handlingene i listen.
Eksempel på opprettelse av et komplekst interaktivt scenario for en NPC ved navn Bob:
Legge til en velkomstmelding:
/npc action Bob RIGHT_CLICK add message <yellow>Velkommen til serveren vår, %player_name%!</yellow>Legge til en pause på 40 tick (2 sekunder):
/npc action Bob RIGHT_CLICK add wait 40Teleportere spilleren til spawn via konsollen:
/npc action Bob RIGHT_CLICK add console_command teleport {player} 0 100 0
Takket være muligheten til å legge til flere påfølgende trinn og justere køen ved hjelp av add_before, add_after og move_up/move_down kan administratorer bygge fullverdige dialogtrær eller komplekse mekanikker for overganger mellom lobbyservere uten å installere ekstra plugins som Denizen eller MyCommand.
Struktur for konfigurasjonsfilene
Alle data lagres i katalogen plugins/FancyNpcs/. Pluginen fungerer basert på to filer:
1. config.yml
Denne filen definerer pluginens globale atferd og inneholder følgende innstillinger:
turn_to_player_distance(standard 5): radius i blokker der figuren vrir hodet mot spillerne. Å redusere denne parameteren optimaliserer overføringen av nettverkspakker i travle soner.visibility_distance(standard 20): avstand i blokker der pakkene for at NPC-er skal dukke opp sendes til klienten. Å redusere den bidrar til å skjule figurene bak vegger eller rendringståke for å spare spillernes FPS.enable_autosave: automatisk periodisk lagring av endringer til disk.
2. npcs.yml
I denne filen lagrer pluginen databasen over opprettede NPC-er. Hver figur beskrives av en egen datablokk:
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>Velkommen!</green>" |
Advarsel: Manuell redigering av filen npcs.yml frarådes sterkt på grunn av risikoen for å skade syntaksen eller angi koordinatene feil. Alle endringer i NPC-konfigurasjonen bør utelukkende utføres via kommandoene i spillet og deretter lagres ved hjelp av /fancynpcs save.
Konklusjon
Pluginen FancyNpcs er en moderne og effektiv løsning for å lage dekorative og interaktive figurer på Minecraft Java Edition-servere. Den eliminerer hovedproblemet med eldre verktøy – forbruket av serverens prosessortid på å betjene enheter.
Pluginens største begrensning er det fullstendige fraværet av kunstig intelligens. Siden figurene er virtuelle projeksjoner på klientsiden, kan de ikke bevege seg gjennom verden på egen hånd, interagere med blokker eller angripe andre mober.
Sammenlignet med den klassiske pluginen Citizens, som støtter komplekse bevegelsesmekanikker (navigasjon via veipunkter) og integrasjon med kampsystemer (moden Sentinel), er FancyNpcs underlegen når det gjelder fleksibiliteten til den kunstige intelligensen. Citizens skaper imidlertid en kolossal belastning på serverens hovedtråd og er praktisk talt uegnet for bruk på Folia. FancyNpcs tilbyr et ideelt alternativ for lobbyservere, Velocity-huber og store SMP-prosjekter, der man bare krever av figurene en statisk tilstedeværelse, et godt utseende og rask utføring av kommandoer ved klikk.
Installasjon
En typisk installasjon tar omtrent 5 minutter. Flyten er den samme; bare Loader og den matchende builden er forskjellige.
- 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.








