

Selectively prevents damage to players and objects in a PVE environment
Uses ZoneManager, Friends, Clans, RustIO, GUIAnnouncements
Works with DynamicPVP, HumanNPC (from remod.org), ZombieHorde, SAM Targeting, BotSpawn, et al.
Don't let the documentation trouble you. In most cases all you should need to do is install the plugin. The rest is optional.
NEW FOR 1.1.0: New Schedule GUI for selecting day(s) and start and end times. Can select all days or none. Defaults (with useSchedule set to true) are now *;0:00;23:59 meaning always active.
NEW FOR 1.0.52: Custom rule and entity collection editor - You must set AllowCustomEdit true in the configuration to enable this feature. To go along with this, new entity types will be detected at wipe and should be available to set into existing or new collections for inclusion in rulesets.
EXAMPLE: Creating your own rules:
EXAMPLE: Manage new entities yourself, or reassign existing ones:
Overview
NextGenPVE is a new plugin and not a fork of TruePVE, et al. It includes an integrated GUI for ruleset management.
NextGenPVE is organized into entity collections, rules that use those collections, and rulesets that include a set of rules.
Each ruleset has a default damage value of true or false.
Each ruleset may include a list of rules which override the default setting called exceptions.
Each ruleset may include a list of exclusions to the exceptions that override those exceptions.
Each ruleset can and probably should be associated with a zone (if not the default ruleset).
Each ruleset can be either enabled or disabled.
The default ruleset (out of the box) has the following settings:
There is an integrated GUI for the admin to use to:
Commands
The following commands have been implemented:
Sub-commands for /pverule
Additional sub-commands of /pverule called by GUI
The above commands can also be run from console or RCON (without /).
Permissions
Configuration
{ "Options": { "debug": false, "useZoneManager": false, "protectedDays": 0, "useSchedule": false, "useGUIAnnouncements": false, "useMessageBroadcast": false, "useRealtime": true, "useFriends": false, "useClans": false, "useTeams": false, "AllowCustomEdit": false, "AllowDropDatabase": false, "NPCAutoTurretTargetsPlayers": true, "NPCAutoTurretTargetsNPCs": true, "AutoTurretTargetsPlayers": false, "HeliTurretTargetsPlayers": true, "AutoTurretTargetsNPCs": false, "NPCSamSitesIgnorePlayers": false, "SamSitesIgnorePlayers": false, "AllowSuicide": false, "TrapsIgnorePlayers": false, "HonorBuildingPrivilege": true, "UnprotectedBuildingDamage": false, "TwigDamage": false, "HonorRelationships": false, "AllowFriendlyFire": false, "BlockScrapHeliFallDamage": false }, "Version": { "Major": 1, "Minor": 1, "Patch": 6 } }
The non-use flags above can be set from the GUI without reloading, etc. useXXX flags are for the admin to determine third-party plugin use and require a reload. In the GUI, you may also RESET the non-use flags to default.
ZoneManager can be used to associate a ruleset with a zone.
A few global flags are currently available to limit NPC AutoTurret and trap damage.
If protectedDays is set to a value greater than 0, player-owned items will become unprotected if the player has been offline for this number of actual days (experimental).
If a player is trying to damage a building, "HonorBuildingPrivilege" determines whether or not they are limited to damaging their own structures or any structures. This is overridden for zoned rulesets where damage is allowed (PVP).
"UnprotectedDamage" determines whether or not an unprotected building (no TC) can be damaged by players other than the builder.
"TwigDamage" determines whether or not twig building components can be destroyed by any player.
"HonorRelationships" determines whether or not a player can damage their friend's structures or deployables. This requires at least one of useFriends/useClans/useTeams and any associated plugins.
"AllowFriendlyFire" allows damage between players who are friends/clanmates/teammates. This requires that HonorRelationships also be set to true.
"BlockScrapHeliFallDamage" handles the special case where players flying the scrapheli into other players causes fall damage, killing the target player.
Note that friends support can include Friends, Clans, or Teams.
AllowCustomEdit - Enables the editing of custom rulesets and setting collections for entities. Be careful here as you can easily categorize animals as NPCs, resources as players, etc.
AllowDropDatabase - Enables pvedrop command and GUI button to reset the database to defaults. This wipes everything!!!
NOTE: Flags can be external, although currently they must be written into the code to be called. The current example is SAM Targeting. If loaded, we call out to it for it's 6 settings, and we can set those values, which will then be reflected in the NextGenPVE GUI.
Details
NextGenPVE uses SQLite for most of its data storage. The database file is named nextgenpve.db.
The only other data file is ngpve_zonemaps.json. This is currently used by third party plugins that create their own PVP ruleset and zones. Many of those would need to be modified to use NextGenPVE, but the function calls should behave the same.
Each rule includes a source and target listing all of the types that will be matched for the rule. The player is simply BasePlayer, whereas NPCs include several different types.
Any individual type of NPC, for example, can be added to one of the "exclude" fields of a ruleset. This can be source or target. The list is based on the exception rules added to the ruleset, and the entity types they contain.
The default ruleset allows quite a bit of damage other than player to player. For example, it has an exception for player_animal, allowing players to kill animals. You can add, for example, "Chicken" to the target exclusion list to block killing chickens for the poultry-friendly.
The basic rule evaluation order is:
Ruleset -> Default Damage -> Exception Rule -> Exclusion.
Example 1:
Player attacking Bear
Example 2:
Example 3:
DynamicPVP
For use with DynamicPVP, you may need to create a new ruleset. Change the name to match the one that DynamicPVP uses - default name is "exclude". Set that ruleset's default damage to true. After that, reload DynamicPVP. Your ruleset should look like this:
Note that the Zone is set to lookup. You can click on "lookup" to see that the zone lookup for this is set to one or more DynamicPVP-created zones. You should be able to adjust the rules for the zone to block things that would otherwise be allowed.
Competing Ruleset Examples
In short, any rulesets you copy or create should be isolated by time and/or area using schedules or zones. If your intention is to simply modify what types of damage is to be allowed globally, delete the extra rulesets and edit the default ruleset instead.
TODO
Total number of downloads.
Total customers served.
Total number of files sold.
Total payments processed.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.