Sueta
AT

AtbarNpc-----Native ModelEngine R4 support.

2.0

High-Performance Packet-Based NPC Plugin

·Plugin

⚡ AtbarNpc

High-Performance Packet-Based NPC Plugin

Lightweight. Blazing-fast. Zero entity overhead.
Native ModelEngine R4 support.

Spigot / Paper 1.20+ | Java 21+ | PacketEvents | ModelEngine R4

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

What is AtbarNpc?

AtbarNpc is a modern, high-performance NPC plugin for Spigot / Paper 1.20+ servers with native ModelEngine support.

Unlike traditional NPC plugins that spawn real entities, AtbarNpc uses packet-based virtual entities — NPCs only exist on the client side, meaning your server TPS stays untouched even with hundreds of NPCs running simultaneously.

Why AtbarNpc?

Most NPC plugins only support player skins. AtbarNpc goes further — it natively supports ModelEngine R4, allowing you to use any custom 3D model as an NPC. Combine that with multi-line holograms, click commands, and zero performance cost — and you get the most versatile NPC solution available.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✨ Features

Three NPC Types — One Plugin

  • Player — Classic player-skin NPCs. Set any skin by player name or texture URL.
  • Vanilla Mob — Use any vanilla entity as an NPC — Villager, Zombie, Iron Golem, animals, and more.
  • ModelEngine Model — The killer feature. Use any custom ModelEngine R4 3D model as an NPC. Dragons, custom mobs, furniture — anything. Combined with holograms and click commands, the possibilities are endless.
All three types support holograms, click commands, glow effects, and look-at-player — they just look different.

Core Features

  • Packet-Based — NPCs are purely client-side. Zero TPS impact. No real entities on the server.
  • ModelEngine R4 Integration — First-class support for custom 3D models. Turn any .bbmodel into a living NPC.
  • Hologram Text — Multi-line floating text via Text Display. Supports MiniMessage (colors, gradients).
  • Click Commands — Execute commands on right-click. Supports %player% placeholder.
  • View-Distance Tracking — NPCs auto spawn/despawn based on configurable player distance.
  • Look-At-Player — Smooth head rotation to face nearby players.
  • Glow Effect — Customizable glow colors per NPC.
  • Smart Selection — Select NPCs by looking at them or by ID — no UUID memorizing.
  • Auto-Save — YAML storage with configurable auto-save intervals.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Performance

Designed from the ground up to be lightweight.
NPC Count  |  Real Entities (TPS)  |  AtbarNpc / Packets (TPS)
-----------+-----------------------+---------------------------
   100     |       18 - 19         |          20
   500     |       12 - 15         |        19 - 20
  1000     |        5 - 10         |        18 - 19

How?

  • Async distance checks (off main thread)
  • View-distance culling (only visible NPCs send packets)
  • Batch packet sending (reduced network overhead)
  • GameProfile & skin caching

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Commands

Creation
/npc create                  Create a Player NPC at your location
/npc create <entityType>     Create a vanilla mob NPC (VILLAGER, ZOMBIE, etc.)
/npc create model:<id>       Create a ModelEngine model NPC
Selection & Info
/npc sel                     Select the NPC you're looking at
/npc sel <id>                Select an NPC by ID
/npc list                    List all NPCs
/npc near [radius]           List nearby NPCs (default: 10 blocks)
/npc info                    View selected NPC info
/npc delete                  Delete selected NPC
Position
/npc tp                      Teleport to the selected NPC
/npc movehere                Move the NPC to your location
Appearance (types are mutually exclusive)
/npc skin <player|url>       Set skin (switches to PLAYER type)
/npc entity <type>           Switch to vanilla mob type
/npc model <modelId>         Set ModelEngine model (switches to MODEL type)
/npc name <name>             Set display name
/npc lookat <true|false>     Toggle look-at-player
/npc glow <true|false> [color]  Toggle glow effect
Hologram
/npc hologram add <text>     Add a hologram line (MiniMessage supported)
/npc hologram remove <line>  Remove a hologram line
/npc hologram set <line> <text>  Edit a hologram line
/npc hologram clear          Clear all hologram lines
Click Commands
/npc addcmd <command>        Add a right-click command
/npc removecmd <index>       Remove a command by index
/npc listcmd                 List all commands
/npc clearcmd                Clear all commands

Placeholder: %player% → player name

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Permissions

  • atbarnpc.admin — Access to all NPC management commands (Default: OP)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Dependencies

  • PacketEvents — Required — Packet handling library (Spigot variant)
  • ModelEngine R4 — Optional — Enables custom 3D model NPCs
Server: Spigot / Paper 1.20+ | Java: 21+

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

⚙️ Configuration

config.yml
# Tracking
tracking:
  distance: 48        # blocks
  update-interval: 10 # ticks

# Hologram
hologram:
  default-offset: 0.3
  model-offset: 0.1
  line-spacing: 0.25

# NPC Defaults
npc-defaults:
  look-at-player: true
  collidable: false

# Performance
performance:
  load-delay: 100     # ticks
  auto-save:
    enabled: true
    interval: 300     # seconds

debug: false
npcs.yml (example)
npcs:
  "550e8400-e29b-41d4-a716-446655440000":
    display-name: "Shop Keeper"
    location:
      world: "world"
      x: 100.5
      y: 64.0
      z: -200.5
      yaw: 90.0
      pitch: 0.0
    type: PLAYER
    skin-texture: "ewogICJ0aW1lc3RhbXAi..."
    skin-signature: "signature..."
    hologram:
      lines:
        - "<gold>Shop Keeper</gold>"
        - "<gray>Right-click to open shop</gray>"
      offset: 0.3
    look-at-player: true
    glowing: false
    collidable: false
    commands:
      - "openguishop shop"

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

If you encounter any issues or have feature requests, feel free to post in the discussion tab.

Made by Atbar

Similar projects

Plugin →