▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/NPC Plugin
NPC Plugin

NPC Plugin

Customizable NPCs via GUI and API

14.4K
26

⚠️ Warning:

Versions 2.0.x-beta are currently not stable (might contain bugs), use at your own risk!

Last stable version is 1.7.6 for Spigot and 1.4.6-SNAPSHOT for Paper.

NpcPlugin

Create, customize, and manage player-like NPCs with an in-game editor GUI, click actions, and a built-in path system.

If you have any suggestions or encounter any issues, you can use the issue page or via Discord @Eisi05

If you want to make a tutorial video about it, feel free to do so

Supported Versions

Spigot: 1.17.1 - 1.21.11

Paper: 1.21 - 1.21.11

Overview

  • In-game editor: create and configure NPCs directly on your server.
  • Click Actions: build action chains for left/right/both clicks.
  • Path system: create and reuse paths (including visualization + testing).

Getting Started

  • /npc create
  • /npc edit
  • Right-click an NPC to open its editor.

Links

Highlights

  • In-game NPC editor
    • Toggle edit-mode and configure NPCs directly by interacting with them.
    • Edit common properties like name, skin, equipment, glow, visibility, tab-list, pose, and more.
  • Click Actions (Left / Right / Both)
    • Build action chains that run when players click an NPC.
    • Built-in action types include:
      • Command (run commands with placeholders + variables)
      • Server (send players to a BungeeCord server)
      • Wait (wait by time or by command trigger)
      • Animation (play an animation)
      • Path (make the NPC walk along a saved path)
      • SetVariable (set local/instance/global numeric variables)
      • Condition (run a sub-chain if an expression is true)
      • Loop (repeat a sub-chain; while-loop or for-loop)
      • Npc (apply NPC options per-player or globally as an action)
      • Stop (stop the chain)
  • Path system
    • Create paths using points, visualize them, test them with a temporary NPC, and reuse them in NPC actions.
  • Localization + PlaceholderAPI
    • Ships with language files (default en).
    • PlaceholderAPI is supported (soft-depend): placeholders can be used in plugin messages where applicable.

Guides

Getting Started (Installation + Quick Start)

Installation

  1. Download the jar and place it into your server’s plugins/ folder.
  2. Start the server once.
  3. Configure (optional):
    • plugins/NpcPlugin/config.yml
    • plugins/NpcPlugin/lang/<language>/*.yml
  4. Restart or run /npc reload.

Quick Start

1) Create an NPC

  • /npc create

2) Enable edit-mode

  • /npc edit

While edit-mode is enabled:

  • Interact with an NPC to open its editor GUI.

If the NPC is not editable, you’ll get a message like This NPC is not editable!.

3) Configure NPC options in the GUI

The GUI lets you change things like:

  • Name
  • Skin (player name / UUID / local .png file)
  • “Use Player Skin” (per-player skin)
  • Equipment slots
  • Visibility / enabled state
  • Tab list visibility
  • Hide nametag
  • Pose
  • Skin parts
  • Glowing + color
  • Look-at-player radius / interval
  • Scale
  • Teleport to NPC / teleport NPC to you
  • Delete NPC
Click Actions

Click Actions (Left / Right / Both)

In the NPC GUI go to Click Action.

You can configure actions separately for:

  • Left click
  • Right click
  • Both (combined)

You can create an action chain by adding multiple actions.

Action editing tips

  • Remove an action: middle-click an existing action.
  • Add actions quickly: shift-click an action type to append it.
  • Reorder / insert: pick up an action type onto your cursor and click a slot.

Common action types

Command

Executes a command.

  • Input can be with or without leading / (the plugin stores it as /<command>).
  • Placeholders supported:
    • {player} / %player% / <player>
    • {player_name} / %player_name% / <player_name>
  • Supports variables/expressions via the plugin action system.
  • There is optional syntax validation.

Example:

  • warp spawn
  • server hub
  • msg {player} Welcome!

Server (BungeeCord)

Sends the player to another BungeeCord server.

Example server name:

  • hub

Wait

Pauses the chain before continuing.

You can switch between two modes in the editor:

Time mode
  • Left/Right click to adjust the time
  • Shift+Left/Shift+Right for bigger steps
  • Range is clamped (min 0.05s, max 600s)
Command mode

Instead of waiting for time, the chain waits until an admin triggers it:

  • Wait stores a name (string)
  • The chain continues only after:
    • /npc wait <player> <name> [values...]

If [values...] are provided, they are exposed to the next actions as local variables:

  • <name>-0, <name>-1, ... (numeric values; invalid numbers become 0.0)

This is useful to wait for external systems (minigames, scripted events, etc.).

Note (Path)

The Path action also uses the same wait mechanism internally: the chain continues when the NPC finishes walking.

Path

Makes the NPC walk along a saved path.

  • You pick a path name (must exist; same world) + a speed (0.011.0).
  • Optional flags:
    • For all (everyone sees the NPC walking)
    • Change real location (updates the NPC's real location while walking)

Animation

Plays an animation on the NPC for the clicking player.

  • Left click: next animation
  • Right click: previous animation

SetVariable

Sets a numeric variable.

  • Type:
    • Local (stored per-player)
    • Instance (stored on the NPC)
    • Global (stored server-wide; persisted in global-variables.yml)
  • Name must match ^[a-zA-Z_][a-zA-Z0-9_-]*$
  • Value is an expression

If the value is missing, the action does nothing (admins get a warning).

Condition

Runs a sub-chain only if its expression is true.

  • You edit the sub-chain like a normal action list
  • The condition expression is edited via the "value" item

Loop

Repeats a sub-chain.

There are two loop types:

While-loop
  • Repeats while the expression is true
For-loop
  • Repeats with an integer loop index
  • Configurable values:
    • Start (optional; default 0)
    • End (required)
    • Step (optional; default 1)

You can change the loop type by Shift-clicking the action.

Npc

Opens a special editor that lets you apply NPC options as an action.

This is mainly used to change how the NPC looks/behaves for:

  • Only the clicking player (per-player override)
  • Everyone (global)

Two flags exist:

  • Change globally: applies the configured options to the NPC’s global options
  • Reset to default: removes per-player overrides and resets to the NPC’s defaults

Stop

Stops the current chain immediately (and stops nested chains too).

Run-on-show

In the action editor you can enable Run on show.

If enabled, the chain triggers when the NPC is shown to a player (not only when clicked).

Path System Guide

Path System Guide

Paths are shared and stored in:

  • plugins/NpcPlugin/paths.yml

Create a path from points

  1. Add points at your current location:

    • /npc path point add

    Or add at a specific index:

    • /npc path point add <index>
  2. List points:

    • /npc path point list [page]
  3. Visualize / toggle visualization of current points:

    • /npc path visualize points
  4. Create the path:

    • /npc path create <name> [maxIterations] [allowDiagonalMovement]

After creation you can visualize it:

  • /npc path visualize <name>

Record a path by walking

  1. Start recording:

    • /npc path record start
  2. Walk the route.

  3. Stop recording:

    • /npc path record stop
  4. Create the path:

    • /npc path create <name>

Edit an existing path

  • /npc path edit <name>

This loads the saved path’s waypoints into the point list so you can remove/add points and re-create it.

List / delete / test paths

  • /npc path list [page]
  • /npc path delete <name>
  • /npc path test <name> [speed]
Commands

Commands

Core

  • /npc create
  • /npc copy <uuid>
  • /npc edit (toggle edit-mode)
  • /npc list (opens NPC list GUI)
  • /npc tp <uuid>
  • /npc tphere <uuid>
  • /npc reload
  • /npc version
  • /npc update (checks for a new plugin version)

Config

  • /npc config reload
  • /npc config debug [true|false]
  • /npc config avoid-command-check [true|false]
  • /npc config look-at-update-interval [ticks]
  • /npc config input-time [seconds]
  • /npc config auto-update [true|false]
  • /npc config placeholder-timer [ticks]
  • /npc config list

Exceptions (startup load failures)

  • /npc exceptions [page]
  • /npc exceptions show <name>
  • /npc exceptions delete <name>

Paths

All path commands are under:

  • /npc path ...

Main subcommands:

  • point add [index] [location] [rotation]
  • point remove [index|location]
  • point list [page]
  • point clear
  • create [name] [maxIterations] [allowDiagonalMovement]
  • delete <name>
  • list [page]
  • visualize [name]
  • visualize points
  • record start|stop
  • test <name> [speed]
  • edit <name>
Configuration

Configuration (config.yml)

  • look-at-update-interval:
    • Time in ticks between “look at player” updates.
  • avoid-command-check:
    • If true, commands added to NPC actions will not be strictly validated.
  • debug:
    • Enables extra debug logging.
  • input-time:
    • Conversation timeout in seconds (if < 0, no timeout).
  • auto-update:
    • Automatically updates NPCs after option changes.
  • placeholderTimer:
    • Time in ticks between placeholder refreshes.
Troubleshooting

Troubleshooting

  • “This plugin does not support Paper servers!”
    • You are running the Spigot build on a Paper server. Install the Paper build instead.
  • Server action does nothing
    • Ensure BungeeCord is set up and the server names match your proxy configuration.
  • Can’t open the editor GUI
    • Make sure you:
      • Have npc.admin
      • Enabled edit-mode via /npc edit
      • The NPC is marked as editable
bStats

bStats

Совместимость

Minecraft: Java Edition

1.21.x1.20.x1.19.x1.18.x1.17.x

Платформы

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:MIT
Опубликован:5 месяцев назад
Обновлён:1 неделю назад
Главная