# Home

Official Wiki Page for ServerNPC plugin.

![](https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4U6zsw5GlENwWCV3_--2910905616%2Fuploads%2FgxnUDDFkeOQwsyojxKOj%2FServerNPC.png?alt=media\&token=47b9f5c7-9dfc-4ead-abab-2b37e5c74afd)

### All features

* NPC without **nametag**.
* Integrated **holograms**.
* Labymod Support
* Multiple **commands** and actions integrated.
* Server **connection** integrated.
* Spigot and **PaperSpigot** Support.
* Allowed **Mineskin.org** skins.
* Send **messages** to player when click.
* **DecentHolograms** Support.
* NPC execute **console** commands.
* **PlaceholderAPI** Skin names **Support**.
* NPC With **self skin** view.
* **Glowing** NPCs.
* **CMI** Support.
* **TrHologram** Support.
* Support **Holograms** by **SainttX**.
* HexColors using \&#f20202


# Getting Started

How to install ServerNPC

## Requirements

| Server Software | Version                                 |
| --------------- | --------------------------------------- |
| Spigot          | 1.8, 1.12, 1.16, 1.17, 1.18, 1.19, 1.20 |
| Paper / Tuinity | 1.8, 1.12, 1.16, 1.17, 1.18, 1.19, 1.20 |
| Other           | uncertain                               |

{% hint style="info" %}
You don't need [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) but it's highly recommended for total functionality.
{% endhint %}

## Installation

* Drag and drop `ServerNPC` into the `plugins` folder.
* Restart the server.
* Enjoy it 😄!


# Creation

How to create an NPC with ServerNPC

## Creating an NPC

You can create it in various ways. The first and most common it's Mojang names. But here's the list of the supported methods in ServerNPC.

* Mojang
* Mineskin
* Self Skin

## Mojang

To create a NPC with Mojang name it's very very simple.

{% hint style="info" %}
/npc create test1 iSnakeBuzz\_
{% endhint %}

If you typed this command, you will notice the NPC has spawned with my skin, but you can change my name (iSnakeBuzz\_) for anyone name.

{% hint style="danger" %}
Only if the name it's a Premium account, if not, it will be appear as a Steve.
{% endhint %}

## Mineskin

> **MineSkin.org** allows you to generate **skin texture data** signed by Mojang.\
> These can be used on ingame skull blocks or to change a player's skin using some packet magic :).

Said by Mineskin.

It allows you to upload Skins without needing a Minecraft Account. Well, you can use the generated IDS in ServerNPC to create fantastic NPCs.

![](https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4U6zsw5GlENwWCV3_-%2Fsync%2F5c5fc2df662b1fa72b63d901090459316e135dcc.png?generation=1620065599064197\&alt=media)

<figure><img src="https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M4U6zsw5GlENwWCV3_--2910905616%2Fuploads%2F1Z6yOHvxA6LPAigqlbx4%2Fimage.png?alt=media&amp;token=6ce2156d-6016-4a05-95b1-d39c702bfe63" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
/npc create test2 420161720
{% endhint %}

{% hint style="success" %}
/npc create test2 <https://minesk.in/1ecaf3f7322340e4871c9cd541f4aaa6>
{% endhint %}

And done, you've created a NPC with Mineskin. Very simple, right?

## Self Skin

Well, to use this, you need [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/) installed in your Server. If you don't know what it is, I fully recommend you to read the official page. But simplifying that, it's a library of placeholders.

First of all you need to install the `Player` extension to continue.

```
/papi ecloud download Player
/papi reload
```

Execute both commands to a correct installation of the extension. Then we can continue with the NPC creation.

{% hint style="info" %}
/npc create test3 %player\_name%
{% endhint %}

Well, that very easy, if you don't see your Skin, probably you are a cracked player, at the moment we are working on a fix to work with SkinsRestorer but do not have a estimated time for that.


# Actions

How to use ServerNPC with commands or actions.

## Getting started with Actions

The first thing you need to know is that there are multiple actions. Such as.

* Send player to server
* Execute command
* Send private message to player

**I hear recommendations..**

### Add new actions

For example, add the commnad "/say hello" to the npc

```
/npc action add (NPC NAME) (TRUE/FALSE - CONSOLE) (PERMISSIONS OR NONE) (ACTION)
```

On (ACTION) you can put these options. Without `()` please.

* **SPIGOT\_CMD**:/say Hello
* **BUNGEE\_SEND**:Survival
* **PLAYER\_MSG**:\&aHello %player%
* **WAIT**:1000 (It is in [MILISECONDS](https://www.google.com/search?q=1000+milliseconds+to+seconds\&oq=1000+milliseconds+to+seconds\&aqs=chrome..69i57.447j0j9\&sourceid=chrome\&ie=UTF-8))
* **PLAYER\_SOUND**:ENTITY\_VILLAGER\_YES
* **BUNGEE\_CMD**:Survival ([Needs BungeeCord Addon](https://builtbybit.com/resources/servernpc-bungeecord-addon.17407/))

![/npc action npc1 add false none cmd:/say Hello!](https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4U6zsw5GlENwWCV3_-%2F-M4si8bq_Jy2iSMZXLSd%2F-M4skRJC2qYEwTQAcSLa%2Fimage.png?alt=media\&token=415d3bc8-dade-426f-b5b2-f3cebbc616f8)

![\*You can add multiple actions :D\*](https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4U6zsw5GlENwWCV3_-%2F-M4skpEAvbxOdDrLOLoe%2F-M4skstqIIAK541L-687%2F2020-04-14_09.56.07.png?alt=media\&token=42ac58be-742c-4d43-8f50-5eae02770da4)

### Getting actions setted

```
/npc action list (NPC NAME)
```

![/npc action npc1 list](https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4U6zsw5GlENwWCV3_-%2F-M4skpEAvbxOdDrLOLoe%2F-M4sljtSVdRn9MvoiXVP%2Fimage.png?alt=media\&token=1dceb0d9-714a-45a9-b36a-41f0bc5dd2cb)

### Removing Action

To remove the action added before, use the command below.

```
/npc action remove (NPC NAME) (ACTION ID)
```

![/npc action npc1 list](https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4U6zsw5GlENwWCV3_-%2F-M4skpEAvbxOdDrLOLoe%2F-M4sng3dg5-K4iBWdS9k%2Fimage.png?alt=media\&token=9a6867ec-eeef-4341-b4eb-7f4c226279b5)

![/npc action npc1 list](https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4U6zsw5GlENwWCV3_-%2F-M4skpEAvbxOdDrLOLoe%2F-M4snzuh3Qy_M-E3aBue%2Fimage.png?alt=media\&token=3bcfdd06-24c0-4cc7-9673-101428700ddd)


# Labymod Emotes

ServerNPC Labymod emotes

## You need

* [Labymod Client](https://www.labymod.net/download)
* [LabymodAPI](https://www.spigotmc.org/resources/labymod-server-api.52423/) on your Server.

Add an Emote when click to an npc. Action type is "LabyEmote". [Click to see all EMOTES](https://haste.isnakebuzz.com/labyemotes)

{% hint style="info" %}
/npc action {npcID} add {console: true,false} {permission: none} labyEmote:{EMOTE}
{% endhint %}

{% hint style="success" %}
/npc action {npcID} add false none labyEmote:THE\_FLOSS
{% endhint %}


# Magic Wand

ServerNPC Wand Editing

Writing..


# Actions

ServerNPC: How actions works

There is 5 type of action that can be used in the plugin

* **msg:** To send a message to player
* **cmd:** To use a command
* **sound:** To send a sound to player
* **wait:** Delaying the action
* **server:** To Connect a server

## CMD - MOST READ:

* /npc action (npc-name) add (true/false - Use by Console or Player) (none/permission - To set Permission) cmd:/say I'm %player% hello all

(**true:** command will enter by console) (**'!'** permission can be use for negetive) (**%player%** is ServerNPC placeholder but placeholdersapi support) (**false:** player will enter the command)

### CMD Exampel:

Player will send greating to server by intracting the npc

* /npc action test add false none cmd:/say I'm %player% hello all ('/' Is needed if the command enterer is player 'false') (Permission matter because Player Need To have the permissions)

Player will send greating to server by intracting the npc but need permission you can give 'say.hello' to players that you don't want to intract with npc

* /npc action test add say.hello none cmd:/say I'm %player% hello all ('/' Is needed if the command enterer is player 'false')

Player will send greating to server by intracting the npc but most not have the need permission you can give 'say.hello' to players that you don't want to intract with npc

* /npc action test add !say.hello none cmd:/say I'm %player% hello all ('/' Is needed if the command enterer is player 'false')

Console give the player 1 grass block

* /npc action test add true none cmd:give %player% grass\_block 1 (Permission Dosen't matter because Console have all the permissions - DON'T use the Negetive Permision '!') ('/' Is NOT NEEDED if the command enterer is Console 'true' - Console is not a player to use '/')

## MSG:

* /npc action (npc-name) add (true/false - Use by Console) (none/permission - To set Permission) msg:\&aHi %player\_name% (USE false HERE) ('!' permission can be use for negetive) (%player% is ServerNPC placeholder but placeholdersapi support)

### MSG EXAMPEL:

Send greting to player by intracting the npc

* /npc action test add false none msg:\&aHi %player%

Send greting to player by intracting the npc but needs the permission 'say.hello' you can give 'say.hello' to players that you want to intract with npc

* /npc action test add false say.hello msg:\&aHi %player%

Send greting to player by intracting the npc but most not have the permission 'say.hello' you can give 'say.hello' to players that you don't want to intract with npc

* /npc action test add false !say.hello msg:\&aHi %player%

Here a cool way to add message

* false|none|msg:\&ahere a grass
* true|none|cmd:give %player% grass\_block 1
* false|say.hello|msg:\&ahere a grass cool guy

## SOUND:

* /npc action (npc-name) add (true/false - Use by Console) (none/permission - To set Permission) sound:ENTITY\_VILLAGER\_YES (USE false HERE) (Only use negetive permission '!' or none - because it's throw a unwanted message)

Sound list can be found here: <https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html>

### SOUND EXAMPEL:

Play the sound for a player

* /npc action test add false none sound:ENTITY\_VILLAGER\_YES

## WAIT:

* /npc action (npc-name) add (true/false - Use by Console) (none/permission - To set Permission) wait:2000 &#x20;

(USE false HERE) (It is in MILISECONDS - 2000 = 2 Second) (Only use negetive permission '!' or none - because it's throw a unwanted message)

### WAIT EXAMPEL:

Make an action to be dalyaed by 2 second

* /npc action test add false none wait:2000

You can make a player to bypass the delay by giving them a permission and negetiving it

* /npc action test add false !say.hello wait:2000

You can add delay between all actions

```
Action:
- false|!say.hello|wait:1000
- false|none|sound:ENTITY_VILLAGER_YES
- false|!say.hello|wait:2000
- false|!say.hello|msg:&aHi %player%
- false|say.hello|msg:&aHi &e&n%player%&a, You have a cool a permission that make you bypass the delay.
```

## SERVER:

* /npc action (npc-name) add (true/false - Use by Console) (none/permission - To set Permission) server:survival &#x20;

(USE false HERE) (It is in MILISECONDS - 2000 = 2 Second) (!permission can be use for negetive but not recommended to set a permission)

You need the ServerNPC BungeeCord Addon plugin to be instaled on bungee server (no config needed for this plugin) get it here: <https://www.spigotmc.org/resources/servernpc-bungeecord-addon.84094/>

### SERVER EXAMPEL:

Send a player to survival

* /npc action test add false none server:survival

Send player to Survival server but need the permission 'go survival' you can give 'go.survival' to players that you want to be sended to the Survival server

* /npc action test add false go.survival server:survival

Send player to Survival server but most not have the permission 'go.survival' you can give 'go.survival' to players that you don't want to be sended to survival

* /npc action test add false !go.survival server:survival

Here a cool way to send a player to your survival server

```
Action:
- false|!go.survival|wait:1000
- false|none|sound:BLOCK_BEACON_ACTIVATE
- false|none|msg:&2Going to Survival
- true|nono|cmd:title %player% title {"text":"Going To Survival %player%!", "italic":true, "color":"dark_green"}
- false|!go.survival|wait:1000
- false|none|server:survival
```


# Permissions

If you have problems with permissions, read this particle article.

First aclaration to all users of ServerNPC. ***ServerNPC don't add or use default permissions to excecute commands, if your users don't have access to a particular command, check your users permissions.***

Default ServerNPC permissions

* npc.admin - Use /npc commands
* npc.notify  - See the news notifications.


# Holograms Installation

Setting up hologram system.

## Recommended

Download and install [PlaceholderAPI](https://www.spigotmc.org/resources/6245/) to enable **Placeholders** like `%player_name%`

{% content-ref url="/pages/314L6yseGJ5X3aS7XLdR" %}
[DecentHolograms](/holograms/holograms-installation/trholograms)
{% endcontent-ref %}

{% content-ref url="/pages/-MZYavNPi96xNCKtH92K" %}
[TrHolograms](/holograms/holograms-installation/trholograms-1)
{% endcontent-ref %}


# DecentHolograms

Install DecentHolograms as ServerNPC main hologram engine.

## #1 - First Step

You need to download [DecentHolograms](https://www.spigotmc.org/resources/96927/) from thier spigot page. [Click here](https://www.spigotmc.org/resources/96927/) to download.

## #2 - Second Step

Drag and Drop **DecentHolograms** in your `server/plugins` folder.

## #3 - Final step

Restart the server. `/reload` is not recommended for this porpuse.

Download and install [PlaceholderAPI](https://www.spigotmc.org/resources/6245/) to enable **Placeholders** like `%player_name%`.

{% content-ref url="/pages/-MZYavNRChoITbV-VpAr" %}
[Holograms Usage](/holograms/holographics-display)
{% endcontent-ref %}


# TrHolograms

Install TrHolograms as ServerNPC main holograms engine.

## #1 - First Step

You need to download [TrHologram](https://www.spigotmc.org/resources/75503/) from thier spigot page. [Click here](https://www.spigotmc.org/resources/trhologram-1-8-1-15.75503/) to download.

## #2 - Second Step

Drag and Drop **TrHologram** in your `server/plugins` folder.

## #3 - Final step

Restart the server. `/reload` is not recommended for this porpuse.

Download and install [PlaceholderAPI](https://www.spigotmc.org/resources/6245/) to enable **Placeholders** like `%player_name%`.

{% content-ref url="/pages/-MZYavNRChoITbV-VpAr" %}
[Holograms Usage](/holograms/holographics-display)
{% endcontent-ref %}


# Holograms Usage

How to use HolographicsDisplay with ServerNPC and PlaceholderAPI

## Getting Started

First, see how to setup the hologram system!

{% content-ref url="/pages/-MZYavNOrOFtMaQ8dErf" %}
[Holograms Installation](/holograms/holograms-installation)
{% endcontent-ref %}

Once everything is installed, let's continue!

## Create your first hologram

Use the command below to set your first hologram into your npc.

{% tabs %}
{% tab title="ADD COMMAND" %}

```yaml
COMMAND:
/npc holo {npc name} add {message}

EXAMPLE:
/npc holo npc1 add Hello! I'm a hologram :D
```

{% endtab %}

{% tab title="REMOVE COMMAND" %}

```
COMMAND:
/npc holo {npc name} remove {id}

EXAMPLE:
/npc holo npc1 remove 1
```

{% endtab %}

{% tab title="LIST HOLOS" %}

```
/npc holo {npcName} list
```

{% endtab %}
{% endtabs %}

![See the beautiful NPC](https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4U6zsw5GlENwWCV3_-%2F-M4XpYNaAImTPQN7D58g%2F-M4Y07_L6h5i6TbpPiGc%2Fimage.png?alt=media\&token=4261dd76-ec5d-4210-b4ec-0dbef522a77b)

### Add placeholder to Holograms

To update placeholders you need this placeholders before the message.

* {fastest} - 0.1 seconds.&#x20;
* {fast} - 0.5 seconds&#x20;
* {medium} - 1 seconds&#x20;
* {slow} - 5 seconds&#x20;
* {slowest} - 10 seconds.

In this case, i'm using the **{medium}** placeholder.

{% tabs %}
{% tab title="COMMAND" %}

```yaml
COMMAND:
/npc holo {npc name} add {medium}{message}

EXAMPLE:
/npc holo npc1 add {medium}Hello &e%player_name%
```

{% endtab %}
{% endtabs %}

![/npc holo npc1 add {medium}Hello \&e%player\_name%](https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4U6zsw5GlENwWCV3_-%2F-M4Y2PcZB0zAp9e1irQb%2F-M4Y41lEBe0dzA67bDW7%2Fimage.png?alt=media\&token=87e3d103-cfa5-4424-86b7-6b873c267df4)

![And here ya go.](https://3649249158-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4U6zsw5GlENwWCV3_-%2F-M4Y2PcZB0zAp9e1irQb%2F-M4Y4p7gAjeF3FAqq05z%2Fimage.png?alt=media\&token=5d455dd0-5a14-475e-abbb-816852fb49d8)


# Repositories

ServerNPC have one single repository where you can get the official builds for the API.

For optimal performance, I recommend using the latest version of the plugin. The API is designed to be compatible with the corresponding version of the plugin.

#### For gradle

```gradle
maven {
    url "https://nexus.snake.rip/repository/snake"
}
```

```gradle
implementation("com.isnakebuzz:ServerNPC-API:1.16.3-RELEASE")
```

#### For maven

```xml
<repository>
    <id>snake-repo</id>
    <url>https://nexus.snake.rip/repository/snake/</url>
</repository>
```

```xml
<dependency>
  <groupId>com.isnakebuzz</groupId>
  <artifactId>ServerNPC-API</artifactId>
  <version>1.16.3-RELEASE</version>
</dependency>
```


