slim788's Wishlist
-
War Mode PVP/PVE
Allows both PVE and PVP players to exist on a server at the same time. PVE players will have certain configurable protections and restrictions. You can have players use a command to flag themselves as PVP/PVE or you can assign it to them when they first spawn. If you have ZoneManager you can also designate specific zones to force player's to be PVE or PVP. Plugin is also compatible with SimpleStatus.
Note: Video is outdated, see documentation for a full list of new features!
Documentation:
A full readme including permissions, commands, and config options is available in this google doc link.
Disclaimer:
Like all of my plugins - this plugin is sold as is. I will be happy to take feature requests into consideration but make no guarantees about which ones get implemented. Please refer to the feature list before you make your purchase!
Developer API:
API Methods
// Returns the mode of the given entity. Also takes into account if the entity is in a forced mode zone. string GetEntityMode(BaseEntity entity); // Returns the group name for the given mode. For example if given 'pve' will return 'warmodepve' string GetModeGroup(string modeId); // Returns the target type for a given entity. Target types are the category that an entity falls into. // For example, if given a BasePlayer entity, it will return 'players'. If given a horse entity is will // return 'horses'. string GetEntityTargetType(BaseEntity entity); Hooks - place these in your plugin and WarMode will call them.
// Called when a player's mode has been updated or config changes have ocurred that may affect the mode. private void WarMode_PlayerModeUpdated(string userid, string modeId) // Used to override WarMode logic for taking damage. // If true/false is returned then WarMode logic will be skipped. Return null to continue WarMode logic. private object CanEntityTakeDamage(BaseCombatEntity target, HitInfo info) // Used to override WarMode logic for targeting. // If true/false is returned then WarMode logic will be skipped. Return null to continue WarMode logic. private object CanEntityBeTargeted(BasePlayer target, BaseEntity attacker, bool skipVendingCheck) // Used to override WarMode logic for triggering a trap. // If true/false is returned then WarMode logic will be skipped. Return null to continue WarMode logic. private object CanEntityTrapTrigger(BaseTrap trap, BasePlayer basePlayer) // Used to override WarMode logic for looting an entity. // If true/false is returned then WarMode logic will be skipped. Return null to continue WarMode logic. private object CanEntityLoot(BasePlayer looter, BaseEntity target, bool skipVendingCheck)
FREE Extension Plugins:
War Mode Admin Panel
Use the /warmode.config or /wmc command to open a panel that allows admins to update mode rules in game without having to reload the pluign. Requires the warmode.admin permission to use.
I HIGHLY recommend you use this extension!
WarModeAdminPanel.cs
War Mode Spawn UI
Provides a UI that is shown to players when they first spawn that prompts them to choose whether they want to be PVP or PVE. Also supports custom modes. Localization and config options available. This can also be configured to appear when players use the /flag command.
WarModeSpawnUI.cs
War Mode Rules UI
Using the /rules command (which is configurable) players can see a list of what restrictions they have for their current mode. These ruling will update dynamically based on your config settings.
WarModeRulesUI.cs
War Mode Badges
Customizable UI elements that will appear on the player's HUD to indicate what their current mode is.
WarModeBadges.cs
-
Glitched item retriever
"My backpack fell through the ground, again!" is a sentence that all admins hate to hear.
And what will happen if no admin is online when a players backpack (or held item) glitches through the ground?
Correct, it will be lost forever.
This plugin checks for all items which are dropped after a players death and will smoothly bring them up to the players death position (+ a little extra so they won't fall through the ground again).
Just one command, one permission and the configuration is very small and simple.
Configuration:
"Lift glitched items slowly up instead of teleporting them instantly": (Just a small cosmetic feature)
If true, the items will be slowly lifted up until they pop out of the terrain.
If false, the items will be teleported instantly to the position on which the played died.
--> If you experience any performance issues by the animation/coroutine, leave the setting on "false". While testing I had no performance issues unless I retrieved 50+ items simultaneously (which won't ever happen on a live server nevertheless).
Permissions:
glitcheditemretriever.active
If a player does not have this permission, his items will not be retrieved.
Why? Admins tend to throw stuff under the map and want to disable the retrieve logic for these items. Or you want to enable this plugin only for a VIP group of users. Whatever floats your boat.
Commands:
/gir.toggle
Can be used by every player with the permission mentioned earlier. Toggles a settings with the enabled/disabled state for the calling player.
Useful for admins when they want to throw stuff under the map. Just toggle the retrieve logic (to off), throw the stuff away, toggle the retrieve login again (to on).
Notes:
To make sure an item is dropped under the terrain ON PURPOSE, I added a minimum distance of 3 meters between the noclip-flying-admin-player and the terrain.
If an admin wants to throw his stuff under the map WITHOUT toggling the setting first, make sure to fly more than 3 meters under the terrain.
If the players position is below the terrain but not at least 3 meters, the plugin assumes that the player glitched through the terrain, dropped the items by accident and retrieves them.
Known issues:
- Rust does not always calculcate the terrain correctly when a player is inside a cave, tunnel or custom underground monument. An item that is glitched there will likely be teleported on the surface ABOVE the underground location.
I opened a ticket at facepunch in 2024, not fixed yet.
- Items that are thrown away on purpose (dragged out of the inventory or when used the "drop item (single)") are not handled by my plugin, when less then the whole stack was thrown away, since there is a bug in Facepunch's code that does not set the "dropped by" attribute (player's steam ID). So my plugin does now know to which player the item belonged, who should be informed via chat message and if the (unknown) owner has the setting enabled or disabled (via gir.toggle).
I opened a ticket at facepunch in april 2025, not fix yet.
Roadmap:
- Since the plugins name could lead to the confusion: currently it only retreives the backpack and/or the held item the player drops on his death.
I will check for items that were looted by p.e. barrels and other props later.
- Maybe: configurable list of items that should be retrieved or ignored by the plugin
- Smoother animation
- Configurable message that is sent to the player
- Check if player is in a tunnel/cave, since items that are dropped in these locations, are retrieved to the terrain (which is above the tunnel/cave!)