SkillAgentSearch skills...

Sentinel

Combat NPCs for Spigot!

Install / Use

/learn @mcmonkeyprojects/Sentinel
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Sentinel NPCs: Combat NPCs for Spigot!

Table Of Contents

AnimatedSentinel

Version 2.9.2: Compatible with Spigot 1.19+ through 1.21.3 (Primarily targeted at 1.21.3 - see 'Common Issues' section below if on older supported versions). Contains unvalidated backsupport for older Minecraft versions.

Downloads

  • Download (Developmental builds): https://ci.citizensnpcs.co/job/Sentinel/
  • Download (Spigot releases): https://www.spigotmc.org/resources/sentinel.22017/

Donations

  • Support Sentinel via GitHub Sponsors!: https://github.com/sponsors/mcmonkey4eva
  • Or, give a one-time donation via PayPal: https://one.denizenscript.com/donate

Info

Created by mcmonkey4eva on behalf of the Citizens and Denizen teams.

Join us on Discord!: https://discord.gg/Q6pZGSR in the #sentinel channel.

Basic Usage

  • First, get acquainted with Citizens in general for best luck using Sentinel.
  • Second, download the plugin and put it into your server's plugins folder.
  • Third, if you want to adjust the config, start the server to generate a config, then close the server and edit the config (open plugins/Sentinel/config.yml with any text editor) to your liking and finally restart the server.
  • Now, to create your first Sentinel:
    • Select or create an NPC (/npc sel or /npc create Bob)
    • Run command: /trait Sentinel
    • Run command: /npc equip
    • Give the NPC items as needed, by right clicking the NPC with the wanted item. Generally you'll want to give the NPC armor and a weapon.
    • Run command: /sentinel addtarget MONSTERS
    • Spawn a zombie via creative inventory spawn eggs and watch it die!
    • Run command: /sentinel help
      • This will list all your options to edit the NPC's Sentinel settings.
        • Play with them freely, just be careful if you have other players around!
        • Do note, they won't attack you unless you run command: /sentinel removeignore owner.
    • Look through the commands on this readme and the example NPC setups.

Frequently Asked Questions

  • "How Do I Make The NPC Go Back To A Spot After It's Done Fighting?"
    • Set a single point in /npc path. It will stand and guard that spot, and return there when not in combat. Consider also setting /sentinel spawnpoint there.
  • "How Do I Make An NPC Run Commands When It Dies?" or "How Do I Make An NPC Do Some Custom Behavior At Some Custom Time?"
    • Sentinel is a plugin that adds combat features to Citizens NPCs. It is not a general purpose scripting engine and doesn't try to be. If you want custom scripted behavior with NPCs, use Denizen for that.

Common Issues

  • "My Sentinel NPC won't attack me!"
    • Sentinel NPC's do not attack their owner by default as a safety measure (to avoid you dying while setting the NPC up). To allow the NPC to attack you, use command /sentinel removeignore owner
  • "My NPCs aren't respawning at their spawnpoint value / are respawning just where they died!"
    • You likely have an unrelated respawner taking control. The most common cause of this would be the Citizens native respawn functionality... if that's been activated, you can disable that by using command /npc respawn -1
  • "My NPCs aren't dropping their items when they die! I used /sentinel drops and everything!"
    • You may have a plugin or world setting blocking drops. If this is the case, the easiest solution is to just enable workaround drops in the config (Find your Sentinel/config.yml file, open it in a text editor, and change that value from false to true, then use /sentinel reload).
  • "My NPCs aren't taking/giving damage in no-PvP zones!"
    • If you're using WorldGuard for anti-PvP... update! WG 7.0.0 has patches to fix this issue! If you're using a different plugin or can't update, consider enabling the workaround damage (for melee damage issues) and/or enforce damage (for ranged damage issues) options in the config. You might also consider simply not putting combat NPCs in no-PvP regions (enable PvP in the region, or move them to dedicated combat areas).
  • "My NPC's aren't taking/giving damage but it's not a no-PvP zone!"
    • You likely have some plugin or world setting screwing with PvP or damage in general, even if you don't realize it. Find out which plugin and fix it through Plugin Conflict Testing & Fixing. If you can't fix it, consider enabling the workaround damage (for melee damage issues) and/or enforce damage (for ranged damage issues) options in the config.
  • Also: Note that back-support for older versions is sometimes limited. Compatibility is tested mainly on the most recent one or two versions. 1.8.8 servers are supported as the oldest option, but not fully functional. See notes here: https://wiki.citizensnpcs.co/Minecraft_1.8

Example NPC Setups

Here are a few examples of how you might setup and configure an NPC

  • Personal Guard:
    • /npc create MyGuard
    • /trait sentinel
    • /sentinel guard yournamehere and fill 'yournamehere' with your in-game username.
    • /sentinel addtarget monsters
    • /npc equip then give the NPC any armor and items you want, then /npc equip again to close the editor.
    • /sentinel addavoid creepers
    • /sentinel addignore npcs
  • Town Guard:
    • /npc create &b-Guard-
    • /trait sentinel
    • /npc path then click the block the guard should stand on, then /npc path again.
    • /sentinel addtarget monsters
    • /sentinel addtarget event:pvp
    • /sentinel addtarget event:pvsentinel
    • /sentinel spawnpoint
    • /npc equip then give the NPC any armor and items you want, then /npc equip again to close the editor.
    • /sentinel squad town1_guards (this will put all guards of the town in the same 'squad', so they will share target info)
    • /sentinel greeting Welcome to town 1!
    • /sentinel warning You're not welcome here!
    • /sentinel greetrange 80
    • /sentinel range 50
    • /sentinel chaserange 70
    • /sentinel realistic true
    • /sentinel removeignore owner
  • If you want a guard that attacks anyone who holds up a sword, use:
    • /sentinel addtarget helditem:.*sword
  • If you want a guard that uses either a bow or a sword depending on how close the target is, use:
    • /npc inventory and add the second weapon to their inventory
    • /sentinel autoswitch true
  • Town Healer NPC:
    • /npc create &b-Healer-
    • /trait sentinel
    • /npc equip then give the NPC a health potion and any armor, then /npc equip again.
    • /sentinel addtarget allinone:player|healthbelow:90 to target players below 90% health.
    • /sentinel addignore allinone:player|healthabove:90 to ignore players who get above 90% health.
    • /sentinel fightback false
    • /sentinel range 10
    • /sentinel removeignore owner
    • /sentinel greeting Hello there traveler!
    • /sentinel warning You look hurt, let me heal you!
    • /sentinel greetrange 10
    • /sentinel spawnpoint
    • /sentinel invincible true

Useful Things To Know

  • Respawning can be set to "-1" to cause the NPC to delete itself on death, or "0" to prevent respawn.
  • Sentinel NPCs will guard a single point or entire path if either is set using the command /npc path. This means they will still within their chaserange of that point or path, and return to it when out of combat.
  • To give any non-equippable mob-type a weapon, use /npc inventory and add the item to the first (top-left) slot.
  • To make a ghast or blaze fire fireballs, give them a blazerod!
  • Damage value for a Sentinel NPC can be set to "-1" to auto-calculate from held item (otherwise, it will used as a raw HP damage amount).
  • Armor value can be set to "-1" to auto-calculate from equipped armor (otherwise, set a value between 0.0 and 1.0 to indicate how much of any damage will be blocked).
  • To make mobs target or ignore the Sentinel NPC, use /npc targetable
  • To use spaces in target names, simply wrap the argument in "quotes", like /sentinel addtarget "npc:some long name here"

Plugin Integrations

Sentinel integrates with a few external plugins, including:

  • Vault, for permission group targets! (Use group:GROUP_HERE)
  • Towny, for town targets! (Use towny:TOWN_HERE, nation:NATION_HERE, nationenemies:NATION_HERE, nationallies:NATION_HERE)
  • Factions, for faction targets! (Use factions:FACTION_HERE, factionsenemy:NAME, factionsally:NAME)
  • SimpleClans, for clan targets! (Use simpleclan:CLAN_NAME_HERE)
  • War, for war team targets! (Use war_team:WAR_TEAM_NAME)
  • SimplePets, for pet type targets! (Use simplepet:PET_NAME_REGEX ... in particular useful for /sentinel addignore simplepet:.* to ignore all pets)
  • [CrackShot]

Related Skills

View on GitHub
GitHub Stars169
CategoryDevelopment
Updated1mo ago
Forks89

Languages

Java

Security Score

95/100

Audited on Feb 27, 2026

No findings