NPCs erstellen
Konfigurationseinstellungen
isEnabled
Legt fest, ob ein NPC aktiviert ist.
| Schlüssel | Werte | Standard |
|---|---|---|
isEnabled | Boolean | true |
Beispiel
isEnabled: true
name
Legt den Anzeigenamen eines NPCs fest. Unterstützt Farbcodes und Übersetzungsschlüssel für mehrsprachige Server.
| Schlüssel | Werte | Standard |
|---|---|---|
name | String | none |
Beispiel
name: "&aEnn Peecee"

scale
Legt die Skalierung (Größe) des NPCs fest.
| Schlüssel | Werte | Standard |
|---|---|---|
scale | Multiplikator | 1.0 |
Beim Skalieren steht 1.0 für die Standardgröße. Um die Entität größer zu machen, erhöhe den Wert (z.B. 1.2). Um sie kleiner zu machen, verringere den Wert (z.B. 0.8).
Beispiel
scale: 1.2
role
Legt die Rolle des NPCs fest, die unter dem Namen angezeigt wird. Nur visuell. Unterstützt Farbcodes und Übersetzungsschlüssel für mehrsprachige Server.
| Schlüssel | Werte | Standard |
|---|---|---|
role | String | none |
Beispiel
role: "&c<Roter Geselle>"

profession
Legt den Beruf des NPCs fest, der sein Aussehen bestimmt, wenn keine Verkleidung verwendet wird.
| Schlüssel | Werte | Standard |
|---|---|---|
profession | Profession | NITWIT |
Beispiel
profession: NITWIT

greetings
Legt die Liste der Begrüßungen fest, die der NPC sagt, wenn sich ein Spieler nähert. Unterstützt Übersetzungsschlüssel für mehrsprachige Server.
| Schlüssel | Werte | Standard |
|---|---|---|
greetings | String-Liste | none |
Beispiel
greetings:
- Hallo!
- Guten Tag.

dialog
Legt den Dialog fest, den der NPC sagt, während ein Spieler in der Nähe ist (im Fall des DIALOG-interactionType wäre dies der Dialog). Unterstützt Übersetzungsschlüssel für mehrsprachige Server.
| Schlüssel | Werte | Standard |
|---|---|---|
dialog | String-Liste | none |
Beispiel
dialog:
- Ich mag Äpfel!
- Es ist ganz schön heiß.

farewell
Legt die Abschiedsnachricht des NPCs fest. Unterstützt Übersetzungsschlüssel für mehrsprachige Server.
| Schlüssel | Werte | Standard |
|---|---|---|
farewell | String-Liste | none |
Beispiel
farewell:
- Bis zum nächsten Mal!
- Tschüss!

canTalk
Legt fest, ob der NPC sprechen kann.
| Schlüssel | Werte | Standard |
|---|---|---|
canTalk | Boolean | true |
Beispiel
canTalk: true
activationRadius
Legt den Radius fest, in dem ein NPC einen sich nähernden Spieler erkennen kann.
| Schlüssel | Werte | Standard |
|---|---|---|
activationRadius | Double | 3.0 |
Beispiel
activationRadius: 3.0
interactionType
Legt die Art der Interaktion fest, die der NPC durchführt.
| Schlüssel | Werte | Standard |
|---|---|---|
interactionType | Spezial [1] | none |
Beispiel
interactionType: TELEPORT_BACK
noPreviousLocationMessage
Wenn ein Teleporter-NPC keinen vorherigen Ort hat, zu dem er einen Spieler teleportieren kann, wird diese Nachricht angezeigt. Akzeptiert Farbcodes und Übersetzungsschlüssel für mehrsprachige Server.
| Schlüssel | Werte | Standard |
|---|---|---|
noPreviousLocationMessage | String | none |
Beispiel
noPreviousLocationMessage: '&8[EliteMobs] &cKonnte dich nicht zu deinem vorherigen Ort zurückschicken - kein vorheriger Ort gefunden!'

timeout
Legt die Zeit in Minuten fest, bevor ein NPC dauerhaft verschwindet.
| Schlüssel | Werte | Standard |
|---|---|---|
timeout | Double | 0 (nie) |
Beispiel
timeout: 0
questFileName
Legt die Quests fest, die der NPC vergibt.
| Schlüssel | Werte | Standard |
|---|---|---|
questFileName | String-Liste | none |
Beispiel
questFileName:
- my_quest_one.yml
- my_quest_two.yml
disguise
Legt die LibsDisguises-Verkleidung des NPCs fest.
| Schlüssel | Werte | Standard |
|---|---|---|
disguise | LibsDisguises-Format | none |
Beispiel
disguise: SKELETON

customDisguiseData
Legt die Daten für eine benutzerdefinierte LibsDisguises-Verkleidung fest.
| Schlüssel | Werte | Standard |
|---|---|---|
customDisguiseData | LibsDisguises-Format | none |
Beispiel
disguise: custom:my_cool_disguise_name
customDisguiseData: player my_cool_disguise_name setskin {"id":"364acb6d-9050-46f7-b5fb-f8c3fd83a6fc","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTYxMTk4ODA4Nzc1NSwKICAicHJvZmlsZUlkIiA6ICJkZGVkNTZlMWVmOGI0MGZlOGFkMTYyOTIwZjdhZWNkYSIsCiAgInByb2ZpbGVOYW1lIiA6ICJEaXNjb3JkQXBwIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzliYmVkODQzNWY4YmYyNzhhZmUyNmU2NGZkOTI2YjhiMzc3MzJkODhlMzM0ODk3ZGJkNTI3ZDU2ZmY5MTk5MGUiCiAgICB9CiAgfQp9","signature":"ujLq1joYVktuQAp1xpFKlxQFUVinSePiDBiVCAxxix/mA5vP86i/eAOfb1mtGjaAZ6sO0l2olbzvycnGXNBtbAxgqprguROXY4tpWiePVTDmy3iD4GdOCxHAkYLoyMV5qTT4SNsldUFFuND8GSEgbNMltKDLmhNKwzm08iCigPfpeuYpwljgJPxu6ka54PKNaQu4doI0ZDZXKqq4hPhR3Bs2Sz9MI0SmdmQWwcCzUz3DFdVno27fmQ6LwqmT+eSoOv0EttVG/XMaTYQ5lhBY61mqf6WlJyYVUSfjJk1AbYsctu7dWM+sbY8jFq5ljvXJGGr5TyKi+fs8vHy06Z2go20QgTYOw+caFxFijAS6fgm3oY57VEO/+/9OLHdD+Z9BrWqQWcIIrVeIfxjue/yt4pyeVv9jX59hjNFjhcPEwotkxJ+vZ96WlTLWDG4BiqauDr2VeGyLlVaygO9ZU0wwsN65iSh91GI3tMIA5wbDR0Hts/9ABvt9eafHbowS+4SZXN0i9mYnKg7op1eiB8nMEAGsPJg3DwsmUrh3ACAapQ6eYHiJpo59RXDqKlRcXwo7wsEFp//5LgQWbPj0NP3nxnywdpozqSAeq6236qlhE9BT9eiyJ41V9sMelYFEWMlUAltR40NdbIrHB0J3nmfuLJz44/sTwWf6P1khOy//XX0="}],"legacy":false}

customModel
Legt das benutzerdefinierte ModelEngine-Modell fest, das der NPC verwenden wird.
| Schlüssel | Werte | Standard |
|---|---|---|
customModel | String | none |
Beispiel
customModel: MY_MODEL_ONE
arena
Legt den Dateinamen der Arena fest, für die der NPC ein Menü öffnet (erfordert den ARENA_MASTER interactionType).
| Schlüssel | Werte | Standard |
|---|---|---|
arena | Dateiname | none |
Beispiel
arena: my_arena.yml
command
Legt den Befehl fest, den der NPC ausführt (erfordert COMMAND interactionType). Befehle werden als Spieler ausgeführt, nicht als Konsole. Füge keinen führenden Schrägstrich (/) hinzu.
| Schlüssel | Werte | Standard |
|---|---|---|
command | String | none |
Beispiel
command: say Schau mich an, ich führe einen Befehl aus, wie cool!
![]()
spawnLocation
Legt den Spawn-Ort der NPCs fest. Du solltest dies über den Befehl /em spawnnpc <npc-dateiname.yml> festlegen.
| Schlüssel | Werte | Standard |
|---|---|---|
spawnLocation | String | none |
Beispiel
spawnLocation: my_world,10,50,10,0,0
spawnLocations
Legt die Spawn-Orte der NPCs fest. Du solltest dies über den Befehl /em spawnnpc <npc-dateiname.yml> festlegen.
| Schlüssel | Werte | Standard |
|---|---|---|
spawnLocations | String-Liste | none |
Beispiel
spawnLocations:
- my_world,10,50,10,0,0
- my_world,-10,50,-10,0,0
instanced
Legt fest, ob der NPC instanziert sein soll (für die Verwendung in instanzierten Dungeons). Wenn auf true gesetzt, wird der NPC automatisch für jede Dungeon-Instanz geklont, wobei jeder Klon in der entsprechenden Instanzwelt existiert.
| Schlüssel | Werte | Standard |
|---|---|---|
instanced | Boolean | false |
Beispiel
instanced: false
syncMovement
Legt fest, ob die Bewegung des NPCs synchronisiert wird. Wird verwendet, um zu steuern, ob die Positionsaktualisierungen des NPCs synchronisiert werden.
| Schlüssel | Werte | Standard |
|---|---|---|
syncMovement | Boolean | true |
Beispiel
syncMovement: true
NPC-Konfigurationsbeispiel
isEnabled: true
name: "&cRoter Rubin"
role: "&a<Generischer NPC>"
profession: NITWIT
greetings:
- Hallo!
- Hey!
dialog:
- Tolles Gespräch!
- Freut mich, mit dir zu reden!
farewell:
- Tschüss!
- Bis später!
canTalk: true
activationRadius: 4
interactionType: CHAT
timeout: 0
questFileName:
- my_quest.yml #NPC interactionType muss auf CUSTOM_QUEST_GIVER gesetzt sein
disguise: SKELETON
customDisguiseData: #wird verwendet, wenn eine benutzerdefinierte LibsDisguise gesetzt wird
customModel: MODEL_ONE
arena: my_arena.yml #NPC interactionType muss auf ARENA_MASTER gesetzt sein
command: /say Hallo Welt! #NPC interactionType muss auf COMMAND gesetzt sein
spawnLocation: my_world,584,55,127,90,10 #denke daran, dass NPCs Pitch und Yaw verwenden, um festzulegen, wohin sie schauen. Dies wird auch automatisch gesetzt, wenn der Befehl /em spawnnpc <npc-dateiname.yml> ausgeführt wird, also stelle sicher, dass du in die gewünschte Richtung des NPCs schaust, wenn du den Befehl ausführst.

Spezial [1]
Hier ist die Liste der gültigen NPC-Interaktionstypen:
| Typ | Beschreibung |
|---|---|
GUILD_GREETER | Öffnet das Waffenfähigkeits-Bonus-Auswahlmenü |
CHAT | Rechtsklick durchläuft den dialog |
CUSTOM_SHOP | Öffnet das benutzerdefinierte Shop-Menü |
PROCEDURALLY_GENERATED_SHOP | Öffnet den prozedural generierten Shop |
BAR | Öffnet das Bar-Menü |
ARENA | Tut nichts. Verwende stattdessen ARENA_MASTER. |
QUEST_GIVER | Öffnet das Menü für prozedural generierte Quests |
CUSTOM_QUEST_GIVER | Öffnet das Quest-Menü für ein bestimmtes Quest-Set in questFileName |
NONE | Keine Interaktionen |
SELL | Öffnet das Verkaufsmenü |
TELEPORT_BACK | Teleportiert Spieler zum letzten Nicht-EliteMobs-Welt-Standort |
SCRAPPER | Öffnet das Schrott-Menü |
REPAIRMAN | Öffnet das Reparatur-Menü |
ENCHANTER | Öffnet das Verzauberungs-Menü |
REFINER | VERALTET - Funktion entfernt, nicht verwenden |
SMELTER | VERALTET - Funktion entfernt, nicht verwenden |
ENHANCER | VERALTET - Funktion entfernt, nicht verwenden |
UNBINDER | Öffnet das Entbinden-Menü |
ARENA_MASTER | Öffnet das Arena-Menü für die in arenaFilename gesetzte Arena |
COMMAND | Führt den in command gesetzten Befehl aus |
SCROLL_APPLIER | Wendet Elite-Gegenstandsschriftrollen auf Gegenstände an |
ARROW_SHOP | Öffnet den Pfeil-Shop |
GAMBLING_BLACKJACK | Öffnet das Blackjack-Glücksspiel |
GAMBLING_COINFLIP | Öffnet das Münzwurf-Glücksspiel |
GAMBLING_SLOTS | Öffnet das Spielautomaten-Glücksspiel |
GAMBLING_HIGHERLOWER | Öffnet das Höher/Niedriger-Glücksspiel |
Für weitere Informationen darüber, was der SCRAPPER und ähnliche Interaktionstypen tun, klicke hier.
NPC-Verhaltenshinweise
NPCs haben mehrere fest kodierte Verhaltensweisen, die nicht konfiguriert werden können:
- KI deaktiviert: NPCs können sich nicht autonom bewegen. Sie bleiben an ihrem Spawn-Ort.
- Rollenanzeige: Der Rollentext wird auf einem unsichtbaren Rüstungsständer über dem NPC in fester Höhe angezeigt.
- Dialog-Cooldown: NPCs warten 3 Sekunden zwischen Sprachereignissen, um überlappende Nachrichten zu vermeiden.
- Chunk-Lebenszyklus: NPCs despawnen, wenn ihr Chunk entladen wird, und respawnen, wenn er wieder geladen wird.
