Sentinel icon

Sentinel -----

Combat NPCs for Spigot!




Sentinel version 2.9.2 build 527

This Sentinel build is cross-compatible with all Spigot versions from MC 1.19 up to 1.21.3

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Update Notes

- Now supports MC 1.21.3 (and 1.21.1), and still supports all prior versions as usual
- Citizens targets 1.19+ now, and therefore Sentinel no longer guarantees compat with versions prior to 1.19, but probably still works on most or all of the versions it previously guaranteed support for, all the backsupport code is still there.
----------, Nov 13, 2024

Sentinel version 2.9.0 build 522

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.20.6

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Updated to 1.20.6, also contains back-support for 1.20.5/.4/.3/.2

New Stuff

- added `/sentinel protectfromrange` so you can make an NPC immunue to attacks that came from more than a certain distance away (eg to forbid sniping NPCs)
- tridents thrown by Sentinel NPCs now can use vanilla enchantments like channeling
- added `event:npcvnpc` target
- added the ability to do complex event targets, eg `event :pv :player:bob`
- CrackShot guns are now recognized as ranged weapons for the purposes of `autoswitch`

Things Fixed

- `autoswitch` didn't visually update properly for non-player NPCs
----------, May 11, 2024

Sentinel version 2.8.1 build 513

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.20.2

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- bump compatibility target to MC 1.20.2. Like 1.20.1, Sentinel didn't actually need much of anything changed for this, this is more just a guarantee of compat.

Things Fixed

- Something in 1.20 or Citizens changed to where NPC armor was getting damaged now - that's blocked more aggressively in Sentinel now
----------, Oct 1, 2023

Sentinel version 2.8.0 build 508

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.20.1

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Updated for compatibility with MC 1.20.1. No major changes were needed, no new mob targets or anything, this is just a proper guarantee of compat.

New Stuff

- New config option `allow armor stand targets` if you want your NPCs to beat up a stand for some reason. May have side effects, use at own risk.

Things Fixed

- recent Citizens update changed a method, so patched to support the change (reported on Discord by cat_plays101)
----------, Aug 16, 2023

Sentinel version 2.7.3 build 505

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.19.4

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Now supports MC 1.19.4 including the new sniffer mob as a target

New Stuff

- new config option `enhance los traces`, defaults true, does smarter LOS checks to prevent adversarial structure building with slabs (as reported by andfoster on Discord), at the cost of some performance

Things Fixed

- NPCs that can't reach a target and have a patrol route will no longer freeze on their route for more than the time it takes to realize the target isn't valid (as requested by Hexivoid on Discord)
----------, Mar 17, 2023

Sentinel version 2.7.2 build 502

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.19.3

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Quick re-publish, now has backsupport for 1.19.2 in addition to the 1.19.3 support.
----------, Dec 12, 2022

Sentinel version 2.7.2 build 501

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.19.3

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Updated to target MC 1.19.3.

Things Fixed

- Added workaround for Citizens bug where NPCs appeared to not be moving
----------, Dec 11, 2022

Minor update just to reduce the rare reports of some obscure bugs that have cropped up a couple times (mainly the UUID.equals NPE).
MAKE SURE YOUR CITIZENS BUILD IS UP TO DATE.
Most errors reported with Sentinel are just from Citizens build being outdated.


Sentinel version 2.7.1 build 499

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.19.2

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

New Stuff

- [API] added "SentinelChaseNewTargetEvent" and "SentinelChaseEndEvent" Java events to allow plugins to better interface with target selection (requested in a Discord thread by Hexivoid)
- There's some extra debugging for when "/sentinel debug" is on to catch pathfinder related bugs faster.

Things Fixed

- Ownerless NPCs threw errors if the "owner" target was listed (reported in a Discord thread by TrivialGalaxy)
- Sentinel broke some pathfinding from other plugins by mistake (reported in a Discord thread by Hexivoid)
- UUID.equals NPE
- pitchLimit was mistakenly ignored in is-looking-towards
----------, Nov 22, 2022

Sentinel version 2.7.0 build 495

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.19.2

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

New Stuff

- Build target bumped from 1.19.1 to 1.19.2
- Added automatically detection logic for a bug related to the base minecraft pathfinder in Citizens (NPCs getting stuck in place at their spawnpoint) that will warn you to adjust your Citizens config to fix it if it applies (Inspired by a Discord thread by Sun8ox) -- This has now been followed up in Citizens and the root issue may be fixed on new Citizens builds
- "info" command was missing a few values, they've been added now
- "info" command now has clickable page jumps at the top

Things Fixed

- Item durability was taken when you have native attack enabled with a player-type NPC on a modern server version (reported in a Discord thread by Drizzt)
- Updated to new Citizens maven repo and Citizens command manager
- NPCs guarding other NPCs were brokend (reported in a Discord thread by Providence)
- There was an error when teleporting NPCs across worlds (reported in a Discord thread by empyrealpanda)
- Updated to new Citizens command stuff
----------, Sep 27, 2022

Sentinel version 2.6.5 build 478

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.19.1

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Validated for 1.19.1. This did not need any internal code changes, and so this build is compatible with both 1.19(.0) and 1.19.1.

New Stuff

- Added new core integration targeter `npc_owned_by` to target NPCs that are owned by online players that match certain target data, like `npc_owned_by :player:Bob` (based on a Discord thread from Happyperson3796)

Things Fixed

- fixed a stats bug
- Fixed a limitation where sentinel would improperly override projectile damage of custom weapon plugins when it didn't need to (reported on Discord)
----------, Aug 3, 2022

Sentinel version 2.6.0 build 472

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.19

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Updated to fully support MC 1.19, including recognizing the new mob types and all

New Stuff

- added target type pair `sbscoreabove` and `sbscorebelow` for scoreboard objective scores, for example `sbscoreabove:test:5` targets players whose score in objective 'test' is at least 5
- `/sentinel forgive [id/name]` is now an option (to forgive just a single specific entity or player rather than all, useful especially for scripted execution) (based on Discord discussion)
- new stats server @ https://stats.mcmonkey.org/Plugins/sentinel

Things Fixed

- Knockback resistance attribute wasn't respected in workaround damage mode (related to GitHub issue #375)
- Updated SimplePets to 5.x (based on Discord discussion)
- NPCs would sometimes chase even when they weren't meant to
- Tridents could be picked up due to an oddity of the Spigot API around arrow-type entities (reported in a Discord thread by Samwiz1)
----------, Jun 17, 2022

Sentinel version 2.5.0 build 461

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.18.2 except for 1.18.1

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Updated build target to MC 1.18.1, and then again to MC 1.18.2. This means that 1.18(.0) and 1.18.1 are no longer properly supported and may have errors. Use https://ci.citizensnpcs.co/job/Sentinel/459/ for 1.18.1 compat.

At time of writing, 1.18.2 is brand new, and only has a Spigot build (Paper isn't updated yet) and the Citizens build is only on jenkins.

New Stuff
- added a notice to use "/sentinel removeignore owner" based on a heuristic detection of when a new user is likely to have forgotten / not seen that part
- did some internal code cleanup
- NPCs can now see through transparent blocks (like glass) just as easily as they can see through air. (based on a Discord thread from greenboy818)
- Added an automatic arrow-in-body clearer, only for MC 1.16+ (based on Discord discussion)

Things Fixed

- added an explicit exclusion for armor stand targeting (based on Discord discussion)
- fixed a bork with enderman NPCs in 1.17.1 (reported in a Discord thread from knight4her)
----------, Mar 1, 2022

Sentinel version 2.4.0 build 446

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.18

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- The prior update produced errors on 1.17 due to mistakenly trying to load 1.18 NMS mapping data on 1.17 servers. This has been fixed now.

Things Fixed

- NPCs below y=0 on 1.17/1.18 took void damage (min height can be lower now) (based on Discord discussion)
----------, Dec 7, 2021

Sentinel version 2.4.0 build 444

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.18

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Added support for 1.18! This doesn't change all that much, as 1.18 has the same set of mobs and all as 1.17 did.

New Stuff

- Java API: Added `SentinelCombatStateChangeEvent` and `SentinelTrait#otherBehaviorPaused` (based on Discord discussion)
- Autoswitch now favors the weapon that does the most damage, rather than just the first weapon of a given type (based on Discord discussion)
- Autoswitch now equips a shield if there's one in the inventory (added by GitHub PR #372 by Fredthedoggy!)
- New command and associated config "/sentinel deathxp XP" - controls the amount of XP dropped by an NPC when it dies, defaults to 0 (based on Discord discussion)

Things Fixed

- Patched compatibility with ancient server versions
- Cleaned up various bits of old code left lying around
- Fixed issue with shield-bearing NPCs getting stuck moving slow sometimes (thanks to GitHub issue #367)
- Fixed issue of players hurting themselves being counted for "event: pvp" (based on Discord discussion)
- Fixed issue where NPCs were trying to chase things they aren't able to chase (based on Discord discussion)
- Fixed a silly situation where autoswitch would think just any old trash was a melee weapon
- Spectral arrows would throw an error (based on Discord discussion)
----------, Dec 2, 2021

Sentinel version 2.3.5 build 424

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8.8 up to 1.17.1

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Updates That Deserve Long Descriptions

- Native combat driver: in a recent update, native combat for Skeletons and Zombies doing melee attacks was added. In this update, that extends to a more common NPC type - Players! There is now a direct NMS-driven attack handler for when a player-type NPC is attacking something. This new attack handler only applies when: It is a melee attack (fist/sword) AND the NPC is player-type AND your server version is at least 1.17 AND "/sentinel damage" is set to -1 (the default value) AND you don't disable native attacks in the config. If all of these are true, the native attack handler will be used - this applies the actual internal/vanilla attack logic, including all enchantments and anything else vanilla does with the held item. If any of them are false (you set a custom damage value, you're on an older server version, you have a mob-typed NPC, the NPC is using a ranged or special attack, or you set the new native attack config option to 'false'), the pre-existing attack in Sentinel handler will be used. If you have player type NPCs and after this update something goes wrong with melee updates, change the 'native attacks' config value to 'false' and please report what went wrong on GitHub or Discord.

New Stuff

- Bumped build target to 1.17.1
- added some API convenience methods ('removeTarget')
- NPCs with 'fightback' now can get angry at players outside their aggro range when attacked (based on Discord discussion)
- tweaked the default reach to 4.5 to match vanilla survival player reach - only applies to new config files

Things Fixed

- Fixed the broken 'drops' command (thanks to GitHub issue #368)
- added some protection against NPC groups clumping together (based on Discord discussion)
- The sentinel config defaults to having 'speed: 1.5' but this got misinterpreted as '1.0' due to a lil typo in the code (the value was rounded), this means NPCs weren't sprinting while attacking by default even though they were meant to be - they now will sprint when attacking as intended. If you prefer the accidental slow NPCs, you can just change the default speed value in the config to '1' or use '/sentinel speed 1' on any NPC.
----------, Aug 13, 2021

Sentinel version 2.3.0 build 416

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.17

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- 1.17 Support: includes goat/axolotl targets, and fixes version-locked features (enderman scream, iron golem swing attack)

New Stuff

- Added tab completion for adding targets of all valid target types, and for removing targets of all currently listed target types

Things Fixed

- the 'squad' command was parsing input wrong
- shield blocking got stuck sometimes
- the greeting command was cutting off the input a little
- the 'drops' command accidentally merged similar items
----------, Jul 2, 2021

Sentinel version 2.2.6 build 408

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.16.5

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Updates That Deserve Long Descriptions

- New weapon: WHITE_DYE equipped as an NPC's weapon will cause the NPC to shoot high velocity llama spit of death at its targets. This is only available in MC 1.13+. It looks ridiculous, and also *is* ridiculous. Enjoy. (Requested in GitHub issue #352).
- New weapon: SHULKER_SHELL equipped as an NPC's weapon will cause the NPC to shoot shulker bullets, almost exactly the same as a vanilla shulker mob does. This is only available in MC 1.13+. If you don't make attackrate longer, you will probably float forever. (Requested in GitHub issue #323).
- New weapon: BOOK equipped as an NPC's weapon will cause the NPC to trigger an imitation of the evoker fang attack. (Requested in GitHub issue #334).
- WorldGuard is now supported to define region limits! You can use `/sentinel wgregion [region name]` to force the NPC to stay inside of a WorldGuard region.

New Stuff

- Iron_Golem entities now do arm swings when attacking (Requested in GitHub issue #351).
- Sprinting at an NPC that has a shield and hitting it with an axe will now break the shield temporarily (replica of vanilla behavior) (Requested in GitHub issue #353).
- Enderman NPCs will now do the scream animation when they see a target. This is only available in MC 1.16 (Requested in GitHub issue #354).
- When AutoSwitch is enabled, an NPC will now swap to open hand when there is no danger (Requested in GitHub issue #345).
- Added support for the "SimplePets" plugin, so you can tell NPCs to ignore pets (Requested in GitHub issue #363).
- Towny support updated to new version (Requested in GitHub issue #358).
- Added a simpler API call to add targets in Java: eg sentinel.addTarget("monsters")

Things Fixed

- Spectral effects from spectral attack stayed forever - they now are temporary
----------, Apr 15, 2021

Sentinel version 2.2.1 build 393

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.16.5

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

New Stuff

- "max_health" is now automatically read from the Spigot.yml by default instead of having a copy of it in the Sentinel config.yml
- Bumped build target first to 1.16.3, and then also to 1.16.4 after that, and then further to 1.16.5. No actual code changes were involved for these, just a version number in the build file changed.
- Internal code now uses new Citizens "getOrAddTrait" instead of the now-deprecated "getTrait" method.
- There is now a "/sentinel knockback" command, that can be used to disable knockback for an NPC ... note that it's rather imperfect, and works by just forcing the NPC's velocity to zero after getting hit (based on Discord discussion).
- The "/sentinel info" command received some internal cleanup.
- Enabled Citizens tab completion for "/sentinel" command (requested in GitHub issue #360).
- Some entity types (like zombies) are now able to swing their arms when attacking (requires MC 1.15+).
- Some entity types (zombies and skeletons) are now able to do a native punch action when 'workaround damage' is turned off, which means enchantments and other vanilla effects are 100% reliable (requires MC 1.15+).
- Fire_Aspect and Knockback enchantments now work when on a Sentinel NPC's melee weapon (requested in GitHub issue #344).

Things Fixed

- Arrows spawned too far in front of the NPC on modern servers, so they'll now spawn closer in (for 1.16+) (reported in GitHub issue #356).
- Sentinel attacks were able to damage item frames and other non-living entities (reported in GitHub issue #357).
- Unloading a world while players are in it caused an exception from Sentinel to appear, so that error is fixed (based on Discord discussion).
- Towny was throwing silly errors from the Sentinel integration (reported in GitHub issue #358).
- There were a lot of weird errors from "NPCs" that weren't actually NPCs (???) (based on Discord discussion).
- "Clans" integration had an error (fixed by GitHub PR #362).
----------, Feb 25, 2021

Sentinel version 2.2.0 build 373

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.16.2
(EDIT: This also works up to 1.16.4)

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Bumped compatibility to 1.16.2. This adds support for PiglinBrute targets. As an unfortunate side effect, as this is the only sub-revision that has actively added new entities (to my knowledge), this update will break compatibility with 1.16.1. If you're still on 1.16.1, the last compatible build is here: https://ci.citizensnpcs.co/job/Sentinel/371/ ... but please update your server to 1.16.2 as soon as possible. For all other server version (1.15/1.14/etc) this build remains fully compatible.

New Stuff

- Internal (for devs) ignoreLOS field. Disables the internal line-of-sight requirement (ie lets NPCs see through walls). Was added on request of a single user (Chouyoux) with a weird use case... can be made more accessible if anyone needs it.
- Reaction Slowdown field, accessible via config or Java API. Slows down the adding of new current-targets (ie emulates having a slow reaction time). Was also added for a specific user (Plazmaz) with a weird use case.
- Disable Teleporting field, that disables the teleport backup that normally happens to ensure NPCs are able to return to their guard zone if they get lost. Again was added for one specific user (Plazmaz) with weird needs. This field is accessible to Java API devs only and doesn't make sense to access any other way.

Things Fixed

- Fixed some potential bugs related to teleporting.
- Switched to better config defaults, including a non-zero target time, and a disabled NPC death message (since those don't display right half the time anyway).
- Fixed handling of factions compat check.
- Made 'helditem:air' work properly as a valid target.
- Improved arrow cleanup logic.
- Patched death messages caused by hologram-named sentinel NPCs to auto-covert the internal name to the real name (note that this may break localization of relevant death messages, which isn't fixable in the current Spigot API)
- Also patched Sentinel NPC death messages for hologram-named NPCs the same way (if you have npc death messages enabled)
- made Sentinel NPCs more likely to forget about temporary targets after they kill them
----------, Sep 8, 2020

Sentinel version 2.1.5 build 360

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.16

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Star Of The Update

- Minecraft 1.16 support. This means the NETHERITE_SWORD is now the best default melee weapon a Sentinel can wield. Sentinel NPCs can also weird netherite pickaxes and axes. Sentinel NPCs will now be protected by netherite armor. Target types for Hoglins, Zoglins, Piglins, and zombified piglins added as hostile. Target type for strider added as passive. Existing PigZombie targets will be autoupdated to zombified piglin targets.

Note that at time of writing, Citizens 1.16 support is only in the dev builds @ https://ci.citizensnpcs.co/job/Citizens2/

New Stuff

- Reorganized multi-version support into its own special file
- Added a startup warning for old versions, and a Discord link for current versions
- Added a better warning message for servers running incompatible forks of Factions instead of throwing a stack trace
- Added a config option (defaults true) to prevent wither skull weapons from exploding blocks and blaze rod weapons from burning blocks
- Made a lot of improvements to the readme to make a lot of things clearer
----------, Jun 26, 2020

Sentinel version 2.1.0 build 350

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.15

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Updates That Deserve Long Descriptions

- Added "/sentinel projectilerange" command, setting, perms, etc. to control how far a Sentinel NPC is willing to fire a projectile (arrow, potion, etc). This is useful when "/sentinel chaseranged" is enabled, so that the NPC will move closer to targets it sees to launch a closer attack. This can be useful for: "Sneaky" ranged enemies (get close before starting the attack), potion wielding NPCs (potions shouldn't fly across the map!), and anything else you might think of that could make use of this. This has a default value of "100" (meaning that by default, 100 blocks is the maximum distance at which a projectile will be fired). (Based on Discord discussion)

New Stuff

- Bumped support target to 1.15.2
- API: SentinelIntegration objects can now specify that their value input should always be pre-lowercased. Squad and UUID reference integrations have this enabled. (Based on Discord discussion)
- "Retain target" is now persisted on a per-NPC basis instead of only the global config (but can only be changed per-NPC via API or saves hacking for now). (Based on Discord discussion)
- Sentinel API: Added a "target" variable to the "SentinelAttackEvent" (GitHub Issue #338)
- Cleaned up and improved the readme file a fair bit

Things Fixed

- Additional fixes to autoswitch, esp. for offhand items (based on Discord discussion that followed up on GitHub issue #317)
- Bad input to the "--id #" option on commands now gives a clean proper error message (based on Discord discussion)
- Fixed errors related to entity types that don't have equipment normally (based on Discord discussion)
- Fixed weird error messages that Spigot decided to add but weren't actually errors
- Fixed punching with a bow doing as much damage as shooting an arrow from the bow (based on Discord discussion)
- Fixed NPCs being still vulnerable after you remove the Sentinel trait (GitHub issue #332)
- Improved chase AI for "workaround entity chase pathfinder" mode (GitHub issue #335)
- Fixed problems with drops clearing themselves (based on Discord discussion)
- Fixed problems with NPCs facing weird directions while fighting sometimes
- Fixed issues related to dead NPCs (GitHub issue #339)
----------, May 12, 2020

Sentinel version 2.0.1 build 327

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.15

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a GitHub sponsors page: https://github.com/sponsors/mcmonkey4eva

Updates That Deserve Long Descriptions

- Added support for "BEES" target type in 1.15 (they are also considered "monsters", on the same grounds that PigZombies are. If you have a target for "monsters" and don't want it targeting passive bees, consider "/sentinel addignore allinone:bees|status :passive")

New Stuff

- Added config option "random.retain target", to tell the Sentinel AI to not grab more convenient new targets when already chasing one (thanks to GitHub issue #314)

Things Fixed

- Killing a player-type NPC no longer will increment your PLAYER_KILLS statistic (Based on Discord discussion)
- Applied some optimizations to make Sentinel run a fair bit faster, particularly in 1.14 (Thanks to a Spark report provided on Discord!)
- Autoswitch was pretty broken and caused nonsense item dups and weirdness when enabled - the backing logic has been completely rewritten, and known bugs with it are now gone (thanks to GitHub issue #317)
----------, Dec 12, 2019

Sentinel version 2.0.0 build 315

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.14

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a patreon: https://www.patreon.com/denizenscript

Star Of The Update

- EVERYTHING IS ADDED MOSTLY. By which I mean, I added almost all of the outstanding feature requests for Sentinel on the GitHub issues page. If you're waiting for a feature, it's either been added, is one of the 3 issues not yet done (custom target reaction system, heroic AI, flying AI), or is something I don't know you're waiting for (in which case please post it to the GitHub issues page). Adding the whole entire everything seems like a pretty good 2.0 update to me!
The other option was to not do anything special and then just release a 1.10 and 1.11 and etc. nonsense version numbers like Mojang does... where's my Minecraft 2.0?!

Updates That Deserve Long Descriptions

- Added a new better item-based targeting system. Previously targeting items was just "helditem:MATERIAL". You now get "helditem", "offhand", "equipped" (armor), and "in_inventory". Each of these now takes an 'item matcher' - this is, at it's simplest, just a material name or regex still (like "helditem:diamond_sword" or "equipped:diamond.*"), but you can also specify "name" or "lore" to match based on item display name or lore-lines instead of material (so "helditem:name:Big.*" will match items that have been renamed on an anvil to contain the word "Big"). A fun but basic usage of this new setup is to add a "helditem" target for an item, and then an "offhand" ignore for the same item. Then you can just hold the item and tap F to toggle whether the NPC is angry at you - like playing redlight/greenlight with the NPC! (Thanks to GitHub issue #307)
- Sentinel NPCs with a shield in their offhand will now use that shield. This system is far from perfect, but forms at least an initial pass at shield AI. When the NPC sees a threat coming (an active target that is directly ahead of them, and either is close or is holding a ranged weapon), it will raise the shield. When the shield is raised, the NPC will move slower and take less damage (this is all approximated, and is not guaranteed to function quite the same as vanilla shield mechanics). If you can describe a specific way the shield AI should be improved, please open a GitHub issue or poke me on Discord with details. (Thanks to GitHub issue #70)

New Stuff

- Added "/sentinel greetrate RATE", to configure the rate at which greetings/warnings can be shown (to prevent them getting too spammy). Defaults to 5 seconds. (Thanks to GitHub issue #310)
- The "/sentinel info" command is now automatically paginated, making it way more readable
- All numeric commands (like "/sentinel range", "/sentinel attackrate", etc.) now show their current value when ran without a new value - this is just to make those commands nicer to work with.
- Added "/sentinel weapondamage MATERIAL DAMAGE", a way to add custom weapon damage level per material to an NPC (ie so you can set a custom damage to a bow and a sword separately when autoswitch is on). Use like "/sentinel weapondamage diamond_sword 50". (Thanks to GitHub issue #125)
- Added "/sentinel weaponredirect MATERIAL_ONE MATERIAL_TWO", a way to make any item you want be treated like it was something different (so you can do "/sentinel weaponredirect wooden_sword bow" and then when the NPC holds a wooden sword, it will shoot arrows out of it). (Thanks to GitHub issue #68).
- Added "block sunburn" option to the config, enabled by default. This protects Sentinel NPCs from burning in the sunlight. (based on Discord discussion)
- Added "potion :POTION_EFFECT" target. Used like "/sentinel addtarget potion:bad_omen". Might be useful in some cases - perhaps add an avoid for certain strong potions, now players can craft a spook-the-NPCs-away potion! (Thanks to GitHub issue #185)

Things Fixed

- Giving a bad target name to an addtarget command will no longer list all possible targets, as that floods the chat way too much and isn't particularly useful (based on Discord discussion)
----------, Oct 27, 2019

Sentinel version 1.9.9 build 305

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.14

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a patreon: https://www.patreon.com/denizenscript

Updates That Deserve Long Descriptions

- Added new "status" target option. Currently the only statuses available are "angry" and its inverse, "passive"... so you can do, for example, "allinone:enderman|status:angry" as a target to target specifically angry endermen. This should work for most 'sometimes angry' monster mobs: enderman, spiders, wolves. This allows you to avoid Sentinel NPCs attacking angering mobs that weren't causing problems. Should also help with avoiding player-owned wolves (but isn't perfect for that, so be careful). Might also be useful with other mobs (skeletons/zombies/etc) just for the purpose of ensuring area-guard NPCs prioritize targets better. (based on Discord discussion)

- Added new command "/sentinel dropchance [ID] [CHANCE]". This sets the percentage chance of each drop in the drops list. Type just "/sentinel dropchance" to see the list of current drops with their IDs and current chances. You can type for example "/sentinel dropchance 3 50" to set the drop with ID 3 to have a 50% chance. The drop-chance is calculated for each item independently on death (the chance of any one drop doesn't affect the chance of any other drop). This is a really awkward way to control drop chances, but an awkward way to do it is far better than nothing. (This has been discussed a lot by a variety of people and thought about a lot by myself, but I'll give credit to @tidukujeb0001 for describing the system that ended up being used, and pushing me over the edge to actually building it)

New Stuff

- Added "nation:NATION_NAME" targets to the Towny integration (Thanks to GitHub issue #308)
- Improved a bit of the readme for clarity (based on Discord discussion)
- Added automatic arrow cleanup, to remove arrows fired by Sentinel NPCs after a bit of time - this prevents arrows building up when a Sentinel can't hit its target (based on Discord discussion)

Things Fixed

- Fixed arming non-player entity types with weapons (based on Discord discussion)
- Fixed the NPC's movement speed when avoiding danger (based on Discord discussion)
- Fixed the functionality of the squad system (based on Discord discussion)
- Fixed accidental usage of old FDS version for the config self-updater system - now maintains file order when self-updating
- Fixed turtle helmet recognition
- Fixed event targets with bow attacks (based on Discord discussion)
- Potion-effect arrow types fixed, but are only available on 1.14+ servers, due to Spigot deciding to break the relevant APIs in a way I can't workaround without using a mess of modules/etc. (based on Discord discussion)

What? Me? Planning anything for the next update which happens to be the Sentinel 2.0.x update? Who said that? Certainly not me!
----------, Oct 3, 2019

Sentinel version 1.9.5 build 281

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.14

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a patreon: https://www.patreon.com/denizenscript

Updates That Deserve Long Descriptions

- Added "event:eve" for mobs attacking mobs! This means that you can have a "shepherd" NPC for example - ie one that literally protects your sheep farm by attacking wolves that attack your sheep, but won't attack innocent wolves just passing by (letting you tame them).
- Added special prefixed event targets - that is, "event :pv:<entity>" and "event:ev:<entity>" - that is for a player attacking an entity of a type (eg "event :pv:chicken" fires for players that attack chickens) or mobs attacking a specific type of entity. This update also incorporates the old "event:message,<message>" target into "event:message:<message>" (ie switch to a second colon instead of a comma - this should update itself for existing saves) (Thanks to GitHub issue #297)

New Stuff

- Clear license for the source code added! Doesn't affect end-users, but is handy to anyone who wants to contribute to Sentinel or fork it.
- "/sentinel" commands can now use "--id [id]"... that is, if you have a Sentinel NPC with id 9, you can do "/sentinel info --id 9" to get the info for that specific NPC, even if it's not selected.
- Can now shoot fireworks from bows or crossbows (only for Spigot 1.14.4+, using an API added Aug. 2nd - make sure your Spigot build is updated if you want to use this!) (based on Discord discussion)
- Added ability to guard NPCs in addition to players (use "/sentinel guard npc:[id]") (Thanks to GitHub issue #294)
- Added ability to target anything a guarded player attacks (even if it doesn't fight back) (use "/sentinel addtarget event:guarded_fight") (Thanks to GitHub issue #303)
- Event target inputs are now at least partially validated.

Things Fixed

- Arrows fired by Sentinel NPCs were possible to pick up on 1.14.x - fixed that. (Thanks to GitHub issue #299, also thanks to Spigot forum posters)
- Limit rate of fire damage to Sentinel NPCS - though it will still visually be damaged at super rapid rates for some reason (based on Discord discussion)
- Fixed an error message that would appear sometimes when NPCs generate knockback on players
- Fixed broken messages from Sentinel integrations that have no target help
- Fixed avoiding events
- Fixed event :pvp/etc not requiring a player be the attacker
- Fixed it so that NPCs will not avoid anyone on the 'ignore' list
----------, Aug 13, 2019

Sentinel version 1.9.2 build 261

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.14

This is a fairly minor update, posting just to make sure everyone has the bug fixes and inter-compat features available.

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a patreon: https://www.patreon.com/denizenscript

New Stuff

- Added support for turtle shell helmets in 1.13 (Based on Discord discussion)
- Added support for NPCs throwing tridents in 1.13 (Based on Discord discussion)
- Added support for NPCs using the new crossbow item in 1.14 (based on Discord discussion)

Things Fixed

- Clarified usage of "/npc inventory" in the readme (via forum discussion)
- Fixed compatibility with ancient server versions (via private discussion)
- Fixed issue with NPCs looking the wrong way when certain config options were set (thanks to GitHub issue #289)
- Fixed issue with blaze NPCs not being able to shoot (via discord report)
- Fixed error message created in certain cases by empty handed combat (thanks to GitHub issue #292)
----------, Jun 10, 2019

This is Sentinel 1.9.1 build 253

This is just a quick-patch for backwards compatibility issues, primarily with MC 1.13.
This also bumps 1.14 support to the latest Spigot revision. If you're on 1.14, please re-run BuildTools to get the latest Spigot 1.14 revision before installing this build of Sentinel.
----------, Apr 30, 2019

Sentinel version 1.9.1 build 252

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.14

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a patreon: https://www.patreon.com/denizenscript

Star Of The Update

- MC 1.14 support. This is an INITIAL UPDATE that may have some issues. Please post any issues with this update to the GitHub issues page: https://github.com/mcmonkeyprojects/Sentinel/issues

New Stuff

- Armor command now tells you what you've done, eg "/sentinel armor 1" will say "Set to 100% invincible armor", to improve clarity of how that works (following discussion on Discord)
- healrate/attackrate commands now output clearer messages
- Added a 'common issues' section to the readme, that explains how to resolve the most common issues.
- '/sentinel info' command now shows you the final calculated armor and damage values (for when you use '-1' to autocalculate it)
- To prevent future update troubles, I've added code to recognize "1.15" and "1.16" as being 1.14, to be "good enough" functionally until the full update for those versions is released.

Things Fixed

- Issues with 'removetarget' command having strange input requirements fixed.
- Issue causing squad names to have a stray space at the end fixed. This caused trouble with the 'squad:NAME_HERE' target. You may want to reassign any squad names to your NPCs after installing this update.
- Issues with NPCs being interpreted as players in 'event:' targets fixed. (reported on Discord)
----------, Apr 30, 2019

Sentinel version 1.8.5 Build 242

This is a patch for the previous update. It primarily contains a fix for a common error several users have encountered, and some preventative protection measures as well.

As a bonus, this also includes a new target option: "uuid:UUID_HERE", which you can fill in with a player or mob UUID to target. This is primarily beneficial to those writing Denizen scripts or integrated plugins that would like an easy way to add long term targets for a specific player or mob.




If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a patreon: https://www.patreon.com/denizenscript
----------, Mar 30, 2019

Sentinel version 1.8.5 build 238

This Sentinel build is cross-compatible with all Spigot versions from MC 1.8 up to 1.13

If you want to talk about Sentinel or get help with it, join the Discord! https://discord.gg/Q6pZGSR
If you want to support my work, I have a patreon: https://www.patreon.com/denizenscript

Star Of The Update

- The multi-target engine! You can add targets like multi: player,player,chicken (which will target 2 players and a chicken, if all 3 are together at once) and as well targets like allinone: player|healthabove: 50 (which will target specifically players with health above 50%). You can mix-and-match targets with the new "multi" and the "allinone" prefixes - see the README file for details and more examples - https://github.com/mcmonkeyprojects/Sentinel/blob/master/README.md#targets
A fun example of how to use it:
- /npc create "Angry Farmer"
- /trait sentinel
- /sentinel removeignore owner
- /sentinel addtarget multi:chicken,allinone :player|healthabove :50
- /sentinel addignore allinone :player|healthbelow :50
- /npc path
- click a single point on the ground
- /npc path
- /sentinel damage 3
- /sentinel chaserange 15
- /sentinel range 15
This will get you an NPC that, if you bring it a chicken, it will kill the chicken and then beat you down to half health, then return to its seat. This NPC hates chickens!
This feature was made following discussion on GitHub issue #271!

Updates That Deserve Long Descriptions


- Sentinel now has a config self-updater! This means if your config is outdated, rather than having to delete and regenerate it, it just adds the missing stuff automatically!
Note that it doesn't remove old things, which can in some cases mean you'll have outdated scrap lying around - when that appears you can either delete that by hand or manually regenerate if preferred.
When the config file self-updates, it will leave a notice around the end of the file telling you it was auto-updated.

- Sentinel NPCs will now use melee attacks on nearby targets, even while chasing down a more important target. This is to avoid situations where NPCs are running in circles after one player while other players attack the NPC. (reported on GitHub issue #153)

- Sentinel integration code has changed, primarily as an optimization and general improvement to that code. If you have added a SentinelIntegration via Java code to the Sentinel API, the way to do that is different now! See the README file for details. (Current builds of Sentinel are still partially backwards-compatible with outdated integrations, but please update those as quickly as possible).

New Stuff


- There have been various API improvements, including the new "SentinelNoMoreTargetsEvent" (requested on GitHub issue #266)
- Some basic compatibility with the "War" plugin added (see GitHub issue #65 for details)
- The "guarddistance" command is now available (previously exclusively configured by the config, now available to be configured per-NPC) (requested on GitHub issue #272)
- A config option for "no guard damage" (you can set it to true or false depending on whether you want players to be able to hurt their own NPC guards) (requested on GitHub issue #272)
- There is now a "/sentinel reload" command to reload the config (requested on GitHub issue #272)
- A few improvements to the readme have been made
- Wandering NPC paths are now supported
- Added "event:message,SOMETEXT" target (requested on GitHub issue #271)
- Added "/sentinel avoidreturnpoint" to set where the NPC runs to when avoid mode is activated (requested on GitHub issue #271)

Things Fixed


- Fixed an issue with NPCs attacking no-longer valid target (reported on Discord)
- Fixed issues with NPCs not following paths properly (reported by multiple users)
- Fixed issues with NPCs retaining targets after those targets are gone
- NPCs no longer get angry about things they can't see (for 'event' targets in particular) (reported on Discord)
- Fixed issues with pathfinding for guard NPCs (reported on Discord)
- Fixed issues with armor handling (reported on Discord)
- The default heal rate (for new config files) is now 5 seconds, instead of 1.5 seconds. Also, the format it displays as in "/sentinel info" is fixed (reported on Discord)
----------, Mar 25, 2019

This is build 207.

This build contains the new API rewrite mentioned in the previous update! You can view the new full JavaDocs here: http://ci.citizensnpcs.co/job/Sentinel/javadoc/
This API rewrite enables a lot of more room to keep the source code clean and add new features (and, of course, more quickly fix bugs!)

This build also contains the new avoidance system! This is handled by commands: "avoidrange", "runaway", "addavoid", "removeavoid" - view the Sentinel README page or "/sentinel help" in-game for details on usage.
The summary of the concept is: Sentinel NPCs can now run away from threats (either just running away entirely, or staying a certain minimum distance back to prevent the enemy getting too close).

As usual, this build also contains a random set of bug fixes and minor features - you can read the full detailed changelogs on GitHub: https://github.com/mcmonkeyprojects/Sentinel/commits/master
----------, Jan 16, 2019

This update adds full support for Minecraft 1.13, and remains backwards compatible with older versions.
This is build 191.

Most of the other updates in this version are bug-fix focus, though there are some small new features (eg squad targets, new combat AI functionality, new config options, primarily to deal with bugs caused by out-of-Sentinel issues - ie that Sentinel can't fix, but can work-around).

Also, note that the GitHub repo moved to: https://github.com/mcmonkeyprojects/Sentinel (previously was under my personal GitHub account mcmonkey4eva).

As an additional announcement regarding the next update coming:

If you have a plugin that integrates into Sentinel, be aware that Sentinel 1.7.0 (build DEV-192+ on http://ci.citizensnpcs.co/job/Sentinel/ ) has had its API layout heavily changed, and your Sentinel-API-using plugins may need to be updated to work with it - primarily, a lot of the code in the SentinelTrait class has been moved out to Helper objects (due to that class becoming too huge when it's all in the one class). The biggest benefit of this is a clean, well documented API - you can browse JavaDocs here: http://ci.citizensnpcs.co/job/Sentinel/javadoc/ - ... as a user/server-owner the main benefits you get are: a better, more well-optimized project (less resource-intensive on your server!), likelihood of better feature development in the future (as I can more readily work within the codebase myself, and other developers are better able to contribute to the project!), and better availability of connected plugins (other developers can more easily write plugins that integrate into Sentinel).
----------, Oct 9, 2018

A variety of fixes and improvements, alongside a few fun new features!

This is build 170.
----------, Jun 25, 2018

More patches and cleaning of systems.

Remember to make sure you're on the latest version before reporting any issues.

This is build 155.
----------, Oct 24, 2017

Sorry for rapid updates, but I realized a pretty big flaw in the previous version's parsing of time stamps and durations.

They were in a nonsensical format, practically in milliseconds.
They are now in good ol' seconds.

A few other fixes and features are included, EG Shulker box NPC Sentinels will now open/close when seeing targets.
----------, Sep 5, 2017

Among other features and bug fixes, this update features a few "stealth" optional features to encourage players to have more fun.
EG by sneaking behind an NPC to avoid detection (if enabled in config).
----------, Aug 30, 2017

This version contains support for crackshot!
Released very quickly after previous updates due to bug flaws in previous update (Sorry about that!)
----------, Jun 9, 2017

Hey good news to everyone who's been waiting for it!
Sentinel now functions on 1.8.8! :)
It also is cross compatible in theory with every version above that, up to 1.12 currently!
----------, Jun 9, 2017

Sentinel now more carefully uses the Bukkit API, allowing it to be compatible with more than one version of minecraft at a time! :D

Can't guarantee it'll function particularly well on old versions (or at all on 1.9 or lower) but this is the first step! Future updates will introduce compatibility tested as far back as 1.8.8 hopefully!

It is of course compatible with the latest 1.12 release of Spigot and minecraft!
----------, Jun 9, 2017

Latest version contains a few bug and feature improvements.
----------, May 16, 2017

This update adds compatibility and new features for a few connectable plugins, such as Factions, Towny, and Denizen - and also some new features in general!
----------, Dec 7, 2016

Fully updated to 1.11!
----------, Nov 18, 2016

Updated to 1.10!
----------, Jun 11, 2016

Updated to 1.9.4!
----------, May 13, 2016

Welcome to Sentinel beta :)
----------, Apr 23, 2016

Resource Information
Author:
----------
Total Downloads: 81,154
First Release: Apr 19, 2016
Last Update: Nov 13, 2024
Category: ---------------
All-Time Rating:
147 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings