⛄ NPCs [v3.0.0] - Easiest and Best NPC plugin

:snowman: NPCs

This plugin will allow you to create NPCs and edit them very easily. No configuration required.

You can make any type of NPC, from humans till ocelots and from zombies till squids. Many options can be set to an NPC, for example wether an NPC will look towards nearby players, human’s skin, name, glowing, sitting, slime size, and many more. All of this can be applied to an NPC with one easy-to-use ingame menu.

If you want to edit an NPC, you have to shift and right-click it. Then when you type ‘/npc’, you will receive a click-style menu, with every possible setting, extremely easy to use. When you create an NPC, the menu will automatically appear.


Download:
You can find all versions of the plugin here.

Issues:
You can report any issues you find here.



Features:

  • Drag-and-drop installation
  • No configuration required
  • Easy-to-use NPC menu
  • Many NPC Options
  • NPC Interaction system:
    • Player Commands
    • Console Commands
    • Messages
    • Delays
    • Pauses
    • Conditions
    • Cooldowns
    • Choices
    • Goto’s
  • bStats Metrics
  • PlaceholderAPI integration (optional but recommended)

Planned Features:

  • Walking (AI Goals unimplemented)
  • Villager Trades

Actions:

NPC’s can be given certain actions to execute when someone clicks on them. It works somewhat like how Windows batch or Linux sh works.

Currently there are 8 types of actions:

Message - Sends a message.
Player Command - Makes the player run a command.
Console Command - Makes the console run a command.
Delay - Waits for x ticks and then continues.
Pause - Stops running Actions, so the player must click the NPC again.
Goto - Executes a certain action in the action list.
Choice - Makes the player choose. Each option has a Goto connected to it.
Condition - Requires the player to have something (Items, Levels, etc). It has 2 Goto's connected to it, one for when the condition failed, and one for when it is met.
Cooldown - Prevents the player from interacting with an npc for a specified amount of time.

You can use the PlaceholderAPI to add certain variables to the messages and commands. If you dont use that plugin, you can only use the following placeholders:

%player_name%
%player_uuid%
%player_world%

Commands:
This base command for the plugin is /npc. When doing this command while you have an NPC selected, you will be send the NPC Menu for that NPC. There you can edit all its options and settings through clickable texts.

If you dont have an NPC selected, it will give you some basic info about the plugin and how to create a new NPC. When creating a new NPC, you will automatically be send the NPC Menu.

To create a new NPC:

  • Command: /npc create [entitytype]
  • Permission: npc.create

Options:
These options will appear on the NPC Menu, only when they are supported by the NPC, e.g. a creeper cant have a certain horse color.

Remove:
- Permission: npc.remove
- Info: Removed the selected NPC.

Copy:
- Permission: npc.copy
- Info: Copies the selected NPC, leaving 2 identical NPC's.

Mount:
- Permission: npc.mount
- Info: Mount the selected NPC.

Move:
- Permission: npc.edit.move
- Info: Moved the selected NPC to your current location.

Deselect:
- Permission: npc.edit.deselect
- Info: Deselects your selected NPC, if you have one.

Name:
- Permission: npc.edit.name
- Info: Rename the selected NPC.

Look:
- Permission: npc.edit.look
- Info: Makes the selected NPC look towards nearby players.

Interact:
- Permission: npc.edit.interact
- Info: Makes the selected NPC interactable (false by default)

Glow:
- Permission: npc.edit.glow
- Info: Makes the selected NPC glow, like if it werehit by a spectral arrow.

Glow Color:
- Permission: npc.edit.glowcolor
- Info: Changes the color of the glowing effect.

Size:
- Permission: npc.edit.size
- Info: Sets the size of the selected NPC.
- Requirement: Only for (magma) slime.

Sitting:
- Permission: npc.edit.sitting
- Info: Makes the selected NPC sit.
- Requirement: Only for wolf and cats.

Charged:
- Permission: npc.edit.charged
- Info: Makes the selected NPC charged.
- Requirement: Only for creepers.

Angry:
- Permission: npc.edit.angry
- Info: Makes the selected NPC angry.
- Requirement: Only for wolfs.

Hanging:
- Permission: npc.edit.hanging
- Info: Makes the selected NPC hang upside down.
- Requirement: Only for bats.

Silent:
- Permission: npc.edit.silent
- Info: Makes the selected NPC quiet.

Saddle:
- Permission: npc.edit.saddle
- Info: Makes the selected NPC have a saddle on its back.
- Requirement: Only for pigs.

Pumpkin:
- Permission: npc.edit.pumpkin
- Info: Removes the pumpkin from a selected snowman NPC's head.
- Requirement: Only for snowman.    

Skin:
- Permission: npc.edit.skin
- Info: Set the skin of the selected NPC.

Career:
- Permission: npc.edit.career
- Info: Sets the career of the selected NPC.

Cat Type:
- Permission: npc.edit.cattype
- Info: Sets the Cat Type of the selected NPC.

Llama Type:
- Permission: npc.edit.llamatype
- Info: Sets the Llama Type of the selected NPC.
- Requirement: Only for llama.

Horse Pattern:
- Permission: npc.edit.horsepattern
- Info: Sets the Horse Patternof the selected NPC.
- Requirement: Only for horses.

Horse Color:
- Permission: npc.edit.horsecolor
- Info: Sets the Horse Color of the selected NPC.
- Requirement: Only for horses.

Cat Type:
- Permission: npc.edit.cattype
- Info: Sets cat type of the selected NPC.
- Requirement: Only for cats(ocelot).

Helmet:
- Permission: npc.edit.helmet
- Info: Makes the selected NPC wear the item in your hand.
- Requirement: Only for humans.

Chestplate:
- Permission: npc.edit.chestplate
- Info: Makes the selected NPC wear the item in your hand.
- Requirement: Only for humans.

Leggings:
- Permission: npc.edit.leggings
- Info: Makes the selected NPC wear the item in your hand.
- Requirement: Only for humans.

Boots:
- Permission: npc.edit.boots
- Info: Makes the selected NPC wear the item in your hand.
- Requirement: Only for humans.

Hand:
- Permission: npc.edit.hand
- Info: Makes the selected NPC holdthe item in your hand.
- Requirement: Only for humans.

OffHand:
- Permission: npc.edit.OffHand
- Info: Makes the selected NPC hold the item in your hand.
- Requirement: Only for humans.

MC1.10 Only:

Zombie Type:
- Permission: npc.edit.zombietype
- Info: Sets the selected NPC's Zombie Type.
- Requirement: Only for zombies.

Skeleton Type:
- Permission: npc.edit.skeletontype
- Info: Sets the selected NPC's Skeleton Type.
- Requirement: Only for skeletons.

Horse Type:
- Permission: npc.edit.horsetype
- Info: Sets the selected NPC's Horse Type.
- Requirement: Only for horses.
14 Likes

What do you think of the plugin? Any suggestions for future version? Any feedback is welcome :slight_smile:

Sounds awesome, can’t wait to try it out and figure out exactly what this plugin can do.
Would suggest making a wiki and adding pictures for users to get more information about the plugin.

1 Like

Will do, tomorrow.

How to change the skin? Example.

When you do /npc, you will get a nice list of all possible commands. Setting a skin can be done by doing /npc skin (playername). Ill add more information on here and the wiki tomorrow.

One thing I see this plugin currently lacking is for the ability to run commands. In my honest opinion, added that feature will help this plugin prosper! Good work!

1 Like

Keep in mind that this is v1.0.1. A lot of stuff will be added. Ill add a planned features list. I am definately planning on adding that soon though.

All good, just figured I mention it since there currently wasn’t a planned description! Definitely curious to see what else you do with these little guys!

1 Like

Heya! Great looking plugin you have! Is there any chance you could add a way to change the npcs model. For instance, possibly making the NPC a Pixelmon model?

1 Like

I cant change models on a plugin level, so pixelmon models arent going to work. I will at one point add the options to spawn NPC entities from mods, but i still have to figure out a way to find wether EntityTypes are combatible with being NPC’s (must be Living, etc). This however wont includes pixelmon, because i think the mod doesnt have seperate entities for each pokemon. Also, the chisel in pixelmon exists, so you dont really need it anyways.

Alala, how did I miss this topic :astonished:

I can’t wait to have a look, great job ! Did you use code from Reveries ?

1 Like

Yea, it does have the chisel. However, I’d love to have interactive Pokemon so you can talk to them as part of quests etc :slight_smile: Looks good regardless

1 Like

Ive seen the project, but i didnt use any of its code. Everything is made by me.

You could have forked but that’s nice you did everything, there are two npc plugins available now :slight_smile:

Quests would be awesome! Good job so far though!

1 Like

Very excited for the new features.

1 Like

Here is a little teaser for version 1.1.0 :slight_smile:

2 Likes

Great job :slight_smile: does this mean we can add commands for the npcs to run now?

1 Like

Once i finish it, yes. It will be able to have multiple commands and messages at the same time, and you can choose to perform them randomly, in order, repeatingly or only once per player.

1 Like