Sentry
Author | aufdemrand, jrbudda |
Version | 0.8.8.2 8/27/2012 |
Citizens build | 2.0 dev build #295 |
Other dependencies | None required, Vault and a permissions plugin suggested. |
Download | Link |
Description: Citizens NPCs that attack monsters and can be killed.
|
Sentry is a Citizens 2.0 character trait that gives NPCs the ability to:
- Attack monsters, players, and groups automatically.
- Kill, and be killed by, players, monsters, and the environment.
- Guard locations, paths, players, or other NPCs.
- Use ranged or melee weapons.
- Be configured with stats such as strength, armor, speed, and night vision.
- Work with Denizen to create NPCs that run scripts upon death.
Updates
v. 0.8.8.2 beta 8/27/2012
v. 0.8.8.1 beta 8/23/2012
v. 0.8.8 beta 8/21/2012
v. 0.8.7.1 beta 8/20/2012
v. 0.8.7 beta 8/20/2012
v. 0.8.6 beta 8/20/2012
v. 0.8.5.1 beta 8/19/2012
v. 0.8.5 beta 8/17/2012
v. 0.8.4.1 beta 8/16/2012
v. 0.8.4 beta 8/15/2012
v. 0.8.2 beta 8/15/2012
v. 0.8.0 beta 8/13/2012
v. 0.7.9.2 beta 8/12/2012
v. 0.7.9.1 beta 8/12/2012
v. 0.7.9 beta 8/11/2012
v. 0.7.8.1 beta 8/11/2012
v. 0.7.8 beta 8/10/2012
v. 0.7.7.1 beta 8/10/2012
v. 0.7.6 beta 8/8/2012
v. 0.7.5 beta 8/7/2012
v. 0.7.4.5 beta 8/7/2012
v. 0.7.4 beta 8/6/2012
v. 0.7.2 beta 8/4/2012
v. 0.7.2 beta 8/4/2012
v. 0.7.1 beta 8/3/2012
v. 0.7.0 beta 8/2/2012
v. 0.5.6 beta
v. 0.5.5 beta
v. 0.5 beta
v. 0.3 beta
|
How to Use
Installation
- Ensure Citizens2 and Vault are installed
- Download file. See top of page
- Place Sentry.jar in your Plugins folder.
- Start Server
Permissions
Commands
All /sentry commands normally require a selected NPC. use /npc select # to do this.
Alternatively you may use /sentry # [command]
to send a sentry command to a specified sentry without
selecting it. # is the Sentry's npc id.
Example: /sentry 3 add target entity:monster
will add the monsters target to sentry with npcID 3.
Creation
To create a sentry, use:
/npc create 'NPC Name'
- /trait sentry
- or
/npc create 'NPC Name' --trait sentry
To place your sentry use:
/npc path
And use the Waypoints editor to give your Sentry a place to stand, or a path to walk.
To equip you Sentry with weapons and armor use:
/npc equip
And right click with the desired weapon or armor. See the #Combat section for a discussion of weapons and armor
If you would like the Sentry to respawn in a different place from where it was created. Move it using
/npc tphere
And then call
/sentry spawn
Targets
Sentries have 2 lists: Targets and Ignores. These lists contain entities. Entities can be monsters, passive mobs, players, or player groups. Sentries look at all the possible entities they can see in their range, If it NOT on the Ignores list and IS on the Targets list, the Sentry will attack it. An entity cannot be seen if it is out of line-of-sight or if it is too dark for the Sentry's nightvision
- Melee Sentries will chase targets until the target is dead, has gotten out of range, or another valid target has gotten closer.
- Ranged Sentries do not follow targets, but will stay on their spot/path and fire at the target until it is dead, out of projectile* range, or another valid target has gotten closer.
- *Note that projectile range is not the same as range (detection range). Projectiles have a fixed range depending on their type. Archers, for example, have a range of about 50 blocks on flat ground. Elevated sentries can hit targets farther away. Sentries that throw things have shorter range.
To add a target:
/sentry target add [entity]
To add an ignore:
/sentry ignore add [entity]
[entity]
can be any of the following:
entity:all | All living things. (adding this to the Ignore list is the same as leaving the Target list empty.) |
entity:owner | The Sentry's npc Owner. |
entity:Name | any mob types with the name Name |
entity:monster | All hostile mobs |
entity:player | All players and NPCS. |
player:Name | The player or NPC with the name Name |
group:Name | All members of permissions group Name. Sentries can be added to permission groups. |
town:Name | All members of Towny town Name |
nation:Name | All members of Towny nation Name |
faction:Name | All members of Factions factiontag Name |
Examples: This will make the Sentry attack all players except those in the Admin group
/sentry target add entity:player /sentry ignore add group:Admin
This will make the Sentry attack anything that moves.. except sheep and the player named Bob.
/sentry target add entity:all /sentry ignore add entity:sheep /sentry ignore add player:Bob
To remove a target:
/sentry target remove [target]
To remove a ignore:
/sentry ignore remove [entity]
To view the target list:
/sentry target list
To clear the ignore list:
/sentry ignore clear
Warn/Greet
Sentries can optionally warn or greet Players that come nearby, letting the Player know if the Sentry is hostile or friendly. This is off by default. To turn it on set the WARNINGRANGE higher than 0. This is the number of blocks beyond the RANGE that the Sentry will look for Players to warn/greet. For example if the RANGE is 10 and the WARNINGRANGE is 5, Players 10-15 blocks away will be alerted to the Sentry's hostility.
The warning and greeting message can be customized for each Sentry.
To set the warning message:
/sentry warning 'New Warning Message'>
To set the greetingmessage:
/sentry warning 'New Greeting Message'>
- <PLAYER> and <NPC> can be used in the message as a placeholder for the Player's name or Sentry's name.
- Setting either message to will disable that message.
Guarding
Sentries can be set as Lookouts or Bodyguards. Lookouts guard a location or path (set with /npc path
), Bodyguards follow around an assigned living target (player or NPC).
If a bodyguard is set to Retaliate, it will attack anything that attacks the assigned guard target or itself.
If a bodyguard is set for Friendly Fire it can accidentally damage and be damaged by its guard target.
To set a Sentry as a bodyguard for a target NPC or Player:
/sentry guard [Name]
Note: The target must be within the Sentry's Range when the target is set.
To set the Sentry back to the default Lookout mode:
/sentry guard
and use /npc path
to set waypoints.
Stats
Stats are Sentry settings that take a value and affect its performance.
To set a stat use:
/sentry [stat] [value]
Example: /sentry armor 5
To view the current value of a stat and get help:
/sentry [stat]
Example: /sentry range
To view all the Sentry's stats, as well as current target, status, and guard target, use:
/sentry info
Stat | Default Value | Value Range | Notes |
---|---|---|---|
health | 20 | 1-2000000 | The number of hit points the Sentry has. Normal players have 20. |
armor | 0 | 0-2000000 | This value is subtracted from all incoming damage. An armor of 10 makes the Sentry very hard to hurt. Armor items equipped on the Sentry have no effect on combat. |
strength | 1 | 0-2000000 | This is the damage the sentry does with each hit, regardless of weapon (or object) held. |
range | 10 | 1-100 | This is the detection range for the Sentry. High values may affect server performance. This is not the same as the projectile range, which is dictated by projectile type and the Sentry's elevation relative to the target. |
speed | 1.0 | 0.0-1.5 | This is the speed at which a sentry will move while pursuing a target. To set the normal path speed use /npc speed. |
attackrate | 2.0 | 0.0-30.0 | This is the number of seconds between projectile shots and has no effect if the Sentry uses a melee weapon. The minimum internal rate is 0.5 (twice a second). |
healrate | 0.0 | 0.0-300.0 | This is the number of seconds between heals of 1 point, values less than 1.0 are acceptable. Set to 0 to turn off healing. |
nightvision | 16 | 0-16 | This is how well the Sentry can see potential targets in the dark. A value of 16 means the sentry can see perfectly all the time. A value of 12 means a target is invisible below light level 4 (16-12) . A value of 6 means a target is invisible below light level 10 (16-6), etc. If the target is a Player and that player is sneaking, its effective light light level is cut in half, making it harder for the sentry to detect. |
respawn | 10 | -1-2000000 | When the sentry dies, this is the number of seconds after which it will respawn. Set to 0 to prevent normal respawn. Set to -1 and the Sentry will not respawn and be permanently destroyed on death. |
warningrange | 0 | 0-50 | The number of blocks beyond range the Sentry will look for Players to warn or greet. Set to 0 to disable warn/greet. |
Options
Options are sentry settings that can be toggled on and off and affect its behavior.
/sentry [option]
Example: /sentry invincible
To view all the Sentry's stats, options, current target, status, and guard target, use:
/sentry info
Option | Default Value | Notes |
---|---|---|
drops | False | If this is True the Sentry will drop his equipment and some EXP on death. |
invincible | False | If this is True the Sentry will not take any damage, be knocked back, or show a 'hurt' flash. |
retaliate | True | If this is True, the Sentry will attack to any living thing that attacks it. If the Sentry is acting as a bodyguard, it will also attack any living thing that attacks its guard target. |
criticals | True | If this is true the Sentry will take critical hits and misses. If False, the normal damage is always applied. |
friendlyfire | False | If this is True the sentry can be damaged by and cause damage to any living thing. If this is False, the Sentry will not damage or receive damage from its guard target or any other Sentries guarding that target. Using friendlyfire and retaliate at the same time is highly not recommended, although hilarious. |
Combat
Sentries can engage in rewarding combat with players, monsters, and even each other!
Equipment
A Sentry should be equipped with a weapon to make it look right, but any hand held item can be used.
Sentries equipped with a Bow, Blaze Rod, Egg, or Snowball become Ranged sentries. and will fire projectiles at the target:
- Archers have a range of about 50 blocks on flat ground, more when elevated.
- Bombadiers have a range of about half that of Archers.
- Pyromancers have.. pretty much an unlimited range, be very careful with pyromancers.
All armor and weapons are cosmetic from a combat standpoint. The amount of damage the Sentry gives and takes is determined by its strength and armor.
Dealing Damage
The damage dealt by a Sentry when attacking a target is equal to the sentry's strength.
Typically players have 20 health. By default a Sentry has 1 strength and therefore does 1 damage.
Receiving Damage
Sentries can receive damage from any source, just like a monster. If the Sentry is set to retaliate, it will target any living entity that attacks it, ignoring any current target.
If the Sentry is set to invincible, it takes NO damage or knockback at all!
If the Sentry has criticals turned on, any incoming damage is randomized resulting in a normal hit, a miss, or one of several degrees of critical hit. If the attacker is a player, a message is shown based on the type of hit.
If the Sentry has armor > 0 the damage will be reduced by the amount of armor. If the damage is reduced to nothing, the attack results in a block. Blocked hits cause no damage but DO cause knockback!
Death
If the Sentry's health drops to 0. It dies.
If the Sentry is set to drops on death, when it dies it drops its equipment like a normal monster. Watch out for farmers!
After the respawn delay (default is 10 seconds) the Sentry will respawn. If therespawn is set to 0, the Sentry must be re spawned manually.
Lookouts will respawn at their spawn location, by default this is where they were created.
Bodyguards will respawn near their guard target.
Advanced Usage
For combining Sentry and Denizen for truly powerful interactions see Sentry And Denizen
Known caveats and upcoming features
Using commands on a Sentry NPC while it is dead may cause errors. (/npc spawn is safe)
Using /citizens reload may break your sentries or waypoints.
Sentries may get lost or fall through the world.
Mob-type NPCs have some oddities since mc 1.3.1
Suggestions
Suggestions are, of course, always welcome!
Quick Navigation | |
---|---|
Usage | Installation · Frequently Asked Questions · Commands · Editors · Characters · API · |
Configuration | Configuration · Text Syntax · Permissions · Waypoints · Data Storage |