Search the Community
Showing results for tags 'limit'.
-
Version 1.0.1
20 downloads
ObjectLimiter is a plugin for the game Rust designed to limit the number of objects a player can build on the server. The plugin provides a convenient and intuitive interface (UI) that allows the server administrator to set individual limits for different user groups. Main features of the plugin: Limit Settings: The administrator can set the maximum number of each type of object that a player can place on the map. Limits can be configured for all players (Default group) as well as for specific groups like VIP and Admin. Flexible Privilege System: The plugin allows you to create new privilege groups and copy settings from existing groups for easier configuration. The ability to set different limits for each group enables a diverse gameplay experience for different categories of players. Object Management: The plugin's interface allows easy enabling or disabling of restrictions on specific objects. The option to quickly enable or disable all objects for a specific user group. Optimization: ObjectLimiter is highly optimized, allowing the plugin to run without significant load on the server. This ensures stable performance even on servers with a large number of players and objects. Team limits support: Plugin contains implementation for some clans plugins and rust teams Profiling: *build 51 twig foundation server fps limit = 30 PC spec: i5 11400f, 32gb ddr4 ram Commands: /ol - open main ui(requires permission objectlimiter.admin This plugin is ideal for administrators who want to control construction on their server, ensuring balance and preventing the excessive use of certain objects.$20.00- 4 comments
-
Version 0.0.6
254 downloads
Limits, by prefab shortname, the amount of entities that players are allowed to deploy or build. Limits building blocks and deployables. The config file contains 2 lists named limitedPrefabs and VIPlimitedPrefabs where the limits are saved. The purpose of the excludedSkinIDs list is to prevent limiting items with custom skinIDs, such as catapults, sentries, recyclers, etc. Limits can be added, removed or listed with the console command 'entitylimit', command usage examples: entitylimit add default foundation.triangle 50 - Adds the shortname 'foundation.triangle' to the 'default' list with a limit of 50. entitylimit add default chair.deployed 3 - Adds the shortname 'chair.deployed' to the 'default' list with a limit of 3. entitylimit add vip chair.deployed 30 - Adds the shortname 'chair.deployed' to the 'VIP' list with a limit of 30. entitylimit remove vip chair.deployed - Removes the shortname ´chair.deployed´ from the 'VIP' list. entitylimit limits - Lists every limited prefab from default and VIP lists and the excluded skinIDs. entitylimit playerentities <steamID> - Lists every player's amount of entities, or optionally list only one steamID. entitylimit addskin 12345 - Adds the item skinID 12345 to the excluded skinIDs list. entitylimit removeskin 12345 - Removes the item skinID 12345 from the excluded skinIDs list. Permissions: entitylimit.bypass - Allows player to bypass any entity limits set by this plugin. entitylimit.console - Allows player to use the console command, not needed for players with ownerid. entitylimit.vip - Allows player to build and deploy using the limits from the VIP list. Notes: Setting a prefab's limit to 0 blocks its placement. If a prefab's VIP limit is accidentally set lower than its default limit, the default limit will be applied for both default and VIP players. If a prefab shortname does not exist in the default list, that prefab will not be limited for VIP players even if it exists in the VIP list.$4.00 -
Version 1.0.4
33 downloads
This plugin allows server admins to create permission based entity limits. Everything can be configured in a user-friendly UI. Features: Permission based entity limits Create groups to limit multiple entities User friendly UI Configurable permissions Commands: entitylimit - Open the entity limit UI. Requires the entitylimitui.admin permission Permissions: entitylimitui.admin - Required to use the UI entitylimitui.default - Default permission for limits How it works: Every permission has a priority. The plugin will always select the limit based on the highest player permission. Limits for the same entity with a lower permission will be ignored. If there are multiple groups containing the same entity with the same permission, the highest limit will be used.$25.00- 16 comments
- 1 review
-
- 1
-
- #entitylimit
- #entity
-
(and 3 more)
Tagged with:
-
Version 0.1.2
275 downloads
Useful plugin for managing temporary permissions, temporary groups and temporary permissions for groups. This is done through chat commands, built-in Oxide commands, and API methods. This is an alternative to the well-known TimedPermissions plugin, which was abandoned about three years ago, and it offers more advanced features. Note: The dates is in UTC format. The ability to grant players temporary permissions by specifying either the number of seconds, an exact expiration date or until the wipe occurs; The ability to add players to temporary groups by specifying either the number of seconds, an exact expiration date or until the wipe occurs; The ability to grant groups temporary permissions by specifying either the number of seconds, an exact expiration date or until the wipe occurs; The ability to revoke temporary permissions from players and groups prematurely; The ability to remove players from groups prematurely; The ability to perform all the above actions using existing and familiar console commands(e.g., o.grant), simply by adding the number of seconds, the expiration date or the word "wipe" at the end; The ability to perform all the above actions using a chat command (by default /tperm); The ability to perform all the above actions using API methods; The ability to remove all temporary permissions and groups upon wipe detection. temporarypermissions.admin - Grants access to the chat command(by default /tperm). { "Chat command": "tperm", "Interval in seconds for expiration check": 1.0, "Interval in seconds for checking the presence of temporary permissions and temporary groups. There are cases where removal cannot be tracked in the usual way. A value of 0 disables the check": 600.0, "Is it worth restoring removed temporary permissions and temporary groups if the timer hasn't expired?": true, "Is it worth removing temporary permissions and temporary groups when unloading the plugin?": true, "Is it worth using console logging?": true, "Is it worth clearing all temporary permissions upon detecting a wipe?": false, "Wipe ID": null, "Version": { "Major": 0, "Minor": 1, "Patch": 2 } } EN: { "MsgPermissionNotFound": "Permission not found!", "MsgPlayerNotFound": "Player not found!", "MsgGroupNotFound": "Group not found!", "MsgGrantWrongFormat": "Invalid command format! Example: /tperm grant user/group *NameOrId* realpve.vip *secondsOrDateTime*", "MsgRevokeWrongFormat": "Invalid command format! Example: /tperm revoke user/group *NameOrId* realpve.vip", "MsgUserGroupWrongFormat": "Invalid command format! Example: /tperm group add/remove *NameOrId* *groupName*", "MsgUserGranted": "Permission {0} granted to player {1}", "MsgGroupGranted": "Permission {0} granted to group {1}", "MsgUserGroupAdded": "Player {0} has been added to group {1}", "MsgUserRevoked": "Permission {0} has been removed for player {1}", "MsgGroupRevoked": "Permission {0} has been removed for group {1}", "MsgUserGroupRemoved": "Player {0} has been removed from group {1}" } RU: { "MsgPermissionNotFound": "Пермишен не найден!", "MsgPlayerNotFound": "Игрок не найден!", "MsgGroupNotFound": "Группа не найдена!", "MsgGrantWrongFormat": "Не верный формат команды! Пример: /tperm grant user/group *NameOrId* realpve.vip *secondsOrDateTime*", "MsgRevokeWrongFormat": "Не верный формат команды! Пример: /tperm revoke user/group *NameOrId* realpve.vip", "MsgUserGroupWrongFormat": "Не верный формат команды! Пример: /tperm group add/remove *NameOrId* *groupName*", "MsgUserGranted": "Пермишен {0} выдан игроку {1}", "MsgGroupGranted": "Пермишен {0} выдан группе {1}", "MsgUserGroupAdded": "Игрок {0} был добавлен в группу {1}", "MsgUserRevoked": "Пермишен {0} был удален для игрока {1}", "MsgGroupRevoked": "Пермишен {0} был удален для группы {1}", "MsgUserGroupRemoved": "Игрок {0} был удален из группы {1}" } grant - Grants a temporary permission to a player or group. user *NameOrId* realpve.vip wipe - Grants a temporary permission to a player until the next wipe by specifying the player's name or Id, the permission name and the word "wipe"; *NameOrId* realpve.vip 3600 true/false - Grants a temporary permission to a player by specifying the player's name or Id, the permission name, the number of seconds and true/false(optional). If true, the specified seconds will count from the current moment, otherwise(default), they will be added to the existing time; *NameOrId* realpve.vip "2024-08-19 17:57" "2024-08-19 16:57" - Grants a temporary permission to a player by specifying the player's name or Id, the permission name, the expiration date and the assigned date(optional). If not specified, the assigned date will default to the current date, otherwise, it will be set to the provided date. group *GroupName* realpve.vip wipe - Grants a temporary permission to a group until the next wipe by specifying the group's name, the permission name and the word "wipe"; *GroupName* realpve.vip 3600 true/false - Grants a temporary permission to a group by specifying the group's name, the permission name, the number of seconds, and true/false(optional). If true, the specified seconds will count from the current moment, otherwise(default), they will be added to the existing time; *GroupName* realpve.vip "2024-08-19 17:57" "2024-08-19 16:57" - Grants a temporary permission to a group by specifying the group's name, the permission name, the expiration date and the assigned date(optional). If not specified, the assigned date will default to the current date, otherwise, it will be set to the provided date. revoke - Revokes a temporary permission from a player or group. user *NameOrId* realpve.vip - Revokes a temporary permission from a player by specifying the player's name or Id and the permission name; group *GroupName* realpve.vip - Revokes a temporary permission from a group by specifying the group's name and the permission name. add - Temporary addition of a player to a group. *NameOrId* *GroupName* wipe - Temporary addition of a player to a group until the next wipe by specifying the player's name or Id, the group name and the word "wipe"; *NameOrId* *GroupName* 3600 true/false - Temporary addition of a player to a group by specifying the player's name or Id, the group name, the number of seconds, and true/false(optional). If true, the specified seconds will count from the current moment, otherwise(default), they will be added to the existing time; *NameOrId* *GroupName* "2024-08-19 17:57" "2024-08-19 16:57" - Temporary addition of a player to a group by specifying the player's name or Id, the group name, the expiration date and the assigned date(optional). If not specified, the assigned date will default to the current date, otherwise, it will be set to the provided date. remove *NameOrId* *GroupName* - Removal of a player from a temporary group by specifying the player's name or Id and the group name. Example: /tperm grant user iiiaka realpve.vip wipe /tperm grant user iiiaka realpve.vip 3600 true /tperm grant user iiiaka realpve.vip "2024-08-19 17:57" "2024-08-19 16:57" Note: To access the commands, the player must be an admin(console or owner) or have the temporarypermissions.admin permission. P.S. Templates for the commands above can also be used with existing console commands. For example: o.grant user iiiaka realpve.vip 3600 true OnTemporaryPermissionsLoaded: Called after the TemporaryPermissions plugin is fully loaded and ready. OnTemporaryPermissionGranted: Called after the player has been granted a temporary permission. OnTemporaryPermissionUpdated: Called after the player's temporary permission has been updated. OnTemporaryPermissionRevoked: Called after the player's temporary permission has expired or been revoked. OnTemporaryGroupAdded: Called after the player has been temporarily added to the group. OnTemporaryGroupUpdated: Called after the player's temporary group has been updated. OnTemporaryGroupRemoved: Called after the player's temporary group has expired or been removed. OnGroupTemporaryPermissionGranted: Called after the group has been granted a temporary permission. OnGroupTemporaryPermissionUpdated: Called after the group's temporary permission has been updated. OnGroupTemporaryPermissionRevoked: alled after the group's temporary permission has expired or been revoked. void OnTemporaryPermissionsLoaded(VersionNumber version = default) { Puts("The TemporaryPermissions plugin is loaded and ready to go!"); } void OnTemporaryPermissionGranted(string userID, string perm, DateTime expireDate, DateTime assignedDate) { Puts($"Player {userID} has been granted the temporary permission {perm} from {assignedDate} until {expireDate}."); } void OnTemporaryPermissionUpdated(string userID, string perm, DateTime expireDate, DateTime assignedDate) { Puts($"Player {userID}'s temporary permission {perm} has been updated. New expiration date: {expireDate}. Assigned date: {assignedDate}."); } void OnTemporaryPermissionRevoked(string userID, string perm, bool isExpired) { Puts($"Player {userID} has had the temporary permission {perm} revoked. Permission expired: {isExpired}."); } void OnTemporaryGroupAdded(string userID, string groupName, DateTime expireDate, DateTime assignedDate) { Puts($"Player {userID} has been added to the temporary group {groupName} from {assignedDate} until {expireDate}."); } void OnTemporaryGroupUpdated(string userID, string groupName, DateTime expireDate, DateTime assignedDate) { Puts($"Player {userID}'s temporary group {groupName} has been updated. New expiration date: {expireDate}. Assigned date: {assignedDate}."); } void OnTemporaryGroupRemoved(string userID, string groupName, bool isExpired) { Puts($"Player {userID} has had the temporary group {groupName} revoked. Group expired: {isExpired}."); } void OnGroupTemporaryPermissionGranted(string groupName, string perm, DateTime expireDate, DateTime assignedDate) { Puts($"Group {groupName} has been granted the temporary permission {perm}, valid from {assignedDate} until {expireDate}."); } void OnGroupTemporaryPermissionUpdated(string groupName, string perm, DateTime expireDate, DateTime assignedDate) { Puts($"Group {groupName}'s temporary permission {perm} has been updated. New expiration date: {expireDate}. Assigned date: {assignedDate}."); } void OnGroupTemporaryPermissionRevoked(string groupName, string perm, bool isExpired) { Puts($"Group {groupName} has had the temporary permission {perm} revoked. Permission expired: {isExpired}."); } [PluginReference] private Plugin TemporaryPermissions; There are 28 methods: IsReady User's Permissions: GrantUserPermission RevokeUserPermission UserHasPermission GrantActiveUsersPermission GrantAllUsersPermission RevokeActiveUsersPermission RevokeAllUsersPermission UserGetAllPermissions ActiveUsersGetAllPermissions AllUsersGetAllPermissions User's Groups: AddUserGroup RemoveUserGroup UserHasGroup AddActiveUsersGroup AddAllUsersGroup RemoveActiveUsersGroup RemoveAllUsersGroup UserGetAllGroups ActiveUsersGetAllGroups AllUsersGetAllGroups Group's Permissions: GrantGroupPermission RevokeGroupPermission GroupHasPermission GrantAllGroupsPermission RevokeAllGroupsPermission GroupGetAllPermissions AllGroupsGetAllPermissions IsReady: Used to check if the TemporaryPermissions plugin is loaded and ready to work. The IsReady method returns true if it is ready, or null if it is not. (bool)TemporaryPermissions?.Call("IsReady");//Calling the IsReady method. If the result is not null(bool true), the plugin is ready. GrantUserPermission: Used to grant a temporary permission to a player. Returns true if the grant was successful. To call the GrantUserPermission method, you need to pass 5 parameters, 3 of which are optional: IPlayer or BasePlayer or <string>playerID - The player object or their Id; <string>permName - The name of the permission; <int>secondsToAdd or <DateTime>expireDate - Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the permission will be valid until the wipe; <bool>fromNow or <DateTime>assignedDate - Optional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date; <bool>checkExistence - Optional. Whether to check for the existence of the permission. (bool)TemporaryPermissions?.Call("GrantUserPermission", player.UserIDString, "realpve.vip");//Calling the GrantUserPermission method without specifying the third parameter, to grant temporary permission until the wipe. (bool)TemporaryPermissions?.Call("GrantUserPermission", player.UserIDString, "realpve.vip", 0);//Calling the GrantUserPermission method with the specified number less than 1, to grant temporary permission until the wipe. (bool)TemporaryPermissions?.Call("GrantUserPermission", player.UserIDString, "realpve.vip", 3600, true, true);//Calling the GrantUserPermission method with the specified number of seconds to add. (bool)TemporaryPermissions?.Call("GrantUserPermission", player.UserIDString, "realpve.vip", expireDate, assignedDate, true);//Calling the GrantUserPermission method with the specified DateTime for the end and start of the temporary permission. RevokeUserPermission: Used to revoke a temporary permission from a player. Returns true if the revoke was successful. To call the RevokeUserPermission method, you need to pass 2 parameters: IPlayer or BasePlayer or <string>playerID - The player object or their Id; <string>permName - The name of the permission. (bool)TemporaryPermissions?.Call("RevokeUserPermission", player.UserIDString, "realpve.vip"); UserHasPermission: Used to check if a player has a temporary permission. Returns true if the player has the specified temporary permission. To call the UserHasPermission method, you need to pass 2 parameters: IPlayer or BasePlayer or <string>playerID - The player object or their Id; <string>permName - The name of the permission. (bool)TemporaryPermissions?.Call("UserHasPermission", player.UserIDString, "realpve.vip"); GrantActiveUsersPermission: Used to temporarily grant a permission to all online players. Returns the <int>number of successful grants of temporary permissions to players. To call the GrantActiveUsersPermission method, you need to pass 3 parameters, 2 of which is optional: <string>permName - The name of the permission; <int>secondsToAdd or <DateTime>expireDate - Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the permission will be valid until the wipe; <bool>fromNow or <DateTime>assignedDate - Optional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date. (int)TemporaryPermissions?.Call("GrantActiveUsersPermission", "realpve.vip");// Calling the GrantActiveUsersPermission method without specifying the second parameter, to grant all online players temporary permission until the wipe. (int)TemporaryPermissions?.Call("GrantActiveUsersPermission", "realpve.vip", 0);//Calling the GrantActiveUsersPermission method with the specified number less than 1, to grant all online players temporary permission until the wipe. (int)TemporaryPermissions?.Call("GrantActiveUsersPermission", "realpve.vip", 3600, true);//Calling the GrantActiveUsersPermission method with the specified number of seconds to add. (int)TemporaryPermissions?.Call("GrantActiveUsersPermission", "realpve.vip", expireDate, assignedDate);//Calling the GrantActiveUsersPermission method with the specified DateTime for the end and start of the temporary permission. GrantAllUsersPermission: Used to grant a temporary permission to all players. Returns the <int>number of successful grants of temporary permissions to players. To call the GrantAllUsersPermission method, you need to pass 3 parameters, 2 of which is optional: <string>permName - The name of the permission; <int>secondsToAdd or <DateTime>expireDate - Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the permission will be valid until the wipe; <bool>fromNow or <DateTime>assignedDate - Optional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date. (int)TemporaryPermissions?.Call("GrantAllUsersPermission", "realpve.vip");//Calling the GrantAllUsersPermission method without specifying the second parameter, to grant all players temporary permission until the wipe. (int)TemporaryPermissions?.Call("GrantAllUsersPermission", "realpve.vip", 0);//Calling the GrantAllUsersPermission method with the specified number less than 1, to grant all players temporary permission until the wipe. (int)TemporaryPermissions?.Call("GrantAllUsersPermission", "realpve.vip", 3600, true);//Calling the GrantAllUsersPermission method with the specified number of seconds to add. (int)TemporaryPermissions?.Call("GrantAllUsersPermission", "realpve.vip", expireDate, assignedDate);//Calling the GrantAllUsersPermission method with the specified DateTime for the end and start of the temporary permission. RevokeActiveUsersPermission: Used to revoke a temporary permission from all online players. Returns the <int>number of successful revokes of temporary permissions to players. To call the RevokeActiveUsersPermission method, you need to pass 1 parameter: <string>permName - The name of the permission. (int)TemporaryPermissions?.Call("RevokeActiveUsersPermission", "realpve.vip"); RevokeAllUsersPermission: Used to revoke a temporary permission from all players. Returns the <int>number of successful revokes of temporary permissions to players. To call the RevokeAllUsersPermission method, you need to pass 1 parameter: <string>permName - The name of the permission. (int)TemporaryPermissions?.Call("RevokeAllUsersPermission", "realpve.vip"); UserGetAllPermissions: Used to retrieve all temporary permissions of a player. Returns a Dictionary<string, DateTime[]> where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission. If the expiration date is set to default, it means the permission is valid until the wipe. To call the UserGetAllPermissions method, you need to pass 1 parameter: <string>playerID - The player's Id. (Dictionary<string, DateTime[]>)TemporaryPermissions?.Call("UserGetAllPermissions", player.UserIDString); ActiveUsersGetAllPermissions: Used to retrieve all temporary permissions of all online players who have temporary permissions. Returns a Dictionary<string, Dictionary<string, DateTime[]>> where the key is userID and the value is another Dictionary<string, DateTime[]>, where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission. If the expiration date is set to default, it means the permission is valid until the wipe. (Dictionary<string, Dictionary<string, DateTime[]>>)TemporaryPermissions?.Call("ActiveUsersGetAllPermissions"); AllUsersGetAllPermissions: Used to retrieve all temporary permissions of all players who have temporary permissions. Returns a Dictionary<string, Dictionary<string, DateTime[]>> where the key is userID and the value is another Dictionary<string, DateTime[]>, where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission. If the expiration date is set to default, it means the permission is valid until the wipe. (Dictionary<string, Dictionary<string, DateTime[]>>)TemporaryPermissions?.Call("AllUsersGetAllPermissions"); AddUserGroup: Used to temporarily add a player to a group. Returns true if the addition was successful. To call the AddUserGroup method, you need to pass 5 parameters, 3 of which are optional: IPlayer or BasePlayer or <string>playerID - The player object or their Id; <string>groupName - The name of the group; <int>secondsToAdd or <DateTime>expireDate - Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the group will be valid until the wipe; <bool>fromNow or <DateTime>assignedDate - Optional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date; <bool>checkExistence - Optional. Whether to check for the existence of the group. (bool)TemporaryPermissions?.Call("AddUserGroup", player.UserIDString, "vip");//Calling the AddUserGroup method without specifying the third parameter to temporarily add a player, to a group until the wipe. (bool)TemporaryPermissions?.Call("AddUserGroup", player.UserIDString, "vip", 0);//Calling the AddUserGroup method with the specified number less than 1, to temporarily add a player to a group until the wipe. (bool)TemporaryPermissions?.Call("AddUserGroup", player.UserIDString, "vip", 3600, true, true);//Calling the AddUserGroup method with the specified number of seconds to add. (bool)TemporaryPermissions?.Call("AddUserGroup", player.UserIDString, "vip", expireDate, assignedDate, true);//Calling the AddUserGroup method with the specified DateTime for the end and start of the temporary permission. RemoveUserGroup: Used to remove a temporary group from a player. Returns true if the removal was successful. To call the RemoveUserGroup method, you need to pass 2 parameters: IPlayer or BasePlayer or <string>playerID - The player object or their Id; <string>groupName - The name of the group. (bool)TemporaryPermissions?.Call("RemoveUserGroup", player.UserIDString, "vip"); UserHasGroup: Used to check if a player has a temporary group. Returns true if the player has the specified temporary group. To call the UserHasGroup method, you need to pass 2 parameters: IPlayer or BasePlayer or <string>playerID - The player object or their Id; <string>groupName - The name of the group. (bool)TemporaryPermissions?.Call("UserHasGroup", player.UserIDString, "vip"); AddActiveUsersGroup: Used to temporarily add a group to all online players. Returns the <int>number of successful additions of the temporary group to players. To call the AddActiveUsersGroup method, you need to pass 3 parameters, 2 of which is optional: <string>groupName - The name of the group; <int>secondsToAdd or <DateTime>expireDate - Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the group will be valid until the wipe; <bool>fromNow or <DateTime>assignedDate - Optional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date. (int)TemporaryPermissions?.Call("AddActiveUsersGroup", "vip");//Calling the AddActiveUsersGroup method without specifying the second parameter to temporarily add all online players to a group until the wipe. (int)TemporaryPermissions?.Call("AddActiveUsersGroup", "vip", 0);//Calling the AddActiveUsersGroup method with the specified number less than 1, to temporarily add all online players to a group until the wipe. (int)TemporaryPermissions?.Call("AddActiveUsersGroup", "vip", 3600, true);//Calling the AddActiveUsersGroup method with the specified number of seconds to add. (int)TemporaryPermissions?.Call("AddActiveUsersGroup", "vip", expireDate, assignedDate);//Calling the AddActiveUsersGroup method with the specified DateTime for the end and start of the temporary permission. AddAllUsersGroup: Used to temporarily add a group to all players. Returns the <int>number of successful additions of the temporary group to players. To call the AddAllUsersGroup method, you need to pass 3 parameters, 2 of which is optional: <string>groupName - The name of the group; <int>secondsToAdd or <DateTime>expireDate - Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the group will be valid until the wipe; <bool>fromNow or <DateTime>assignedDate - Optional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date. (int)TemporaryPermissions?.Call("AddAllUsersGroup", "vip");//Calling the AddAllUsersGroup method without specifying the second parameter to temporarily add all players to a group until the wipe. (int)TemporaryPermissions?.Call("AddAllUsersGroup", "vip", 0);//Calling the AddAllUsersGroup method with the specified number less than 1, to temporarily add all players to a group until the wipe. (int)TemporaryPermissions?.Call("AddAllUsersGroup", "vip", 3600, true);//Calling the AddAllUsersGroup method with the specified number of seconds to add. (int)TemporaryPermissions?.Call("AddAllUsersGroup", "vip", expireDate, assignedDate);//Calling the AddAllUsersGroup method with the specified DateTime for the end and start of the temporary permission. RemoveActiveUsersGroup: Used to remove a temporary group from all online players. Returns the <int>number of successful removals of temporary groups from players. To call the RemoveActiveUsersGroup method, you need to pass 1 parameter: <string>groupName - The name of the group. (int)TemporaryPermissions?.Call("RemoveActiveUsersGroup", "vip"); RemoveAllUsersGroup: Used to remove a temporary group from all players. Returns the <int>number of successful removals of temporary groups from players. To call the RemoveAllUsersGroup method, you need to pass 1 parameter: <string>permName - The name of the permission. (int)TemporaryPermissions?.Call("RemoveAllUsersGroup", "vip"); UserGetAllGroups: Used to retrieve all temporary groups of a player. Returns a Dictionary<string, DateTime[]> where the key is the group name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the group. If the expiration date is set to default, it means the group is valid until the wipe. To call the UserGetAllGroups method, you need to pass 1 parameter: <string>permName - The name of the permission. (Dictionary<string, DateTime[]>)TemporaryPermissions?.Call("UserGetAllGroups", player.UserIDString); ActiveUsersGetAllGroups: Used to retrieve all temporary groups of all online players who have temporary groups. Returns a Dictionary<string, Dictionary<string, DateTime[]>> where the key is userID and the value is another Dictionary<string, DateTime[]>, where the key is the group name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the group. If the expiration date is set to default, it means the group is valid until the wipe. (Dictionary<string, Dictionary<string, DateTime[]>>)TemporaryPermissions?.Call("ActiveUsersGetAllGroups"); AllUsersGetAllGroups: Used to retrieve all temporary groups of all players who have temporary groups. Returns a Dictionary<string, Dictionary<string, DateTime[]>> where the key is userID and the value is another Dictionary<string, DateTime[]>, where the key is the group name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the group. If the expiration date is set to default, it means the group is valid until the wipe. (Dictionary<string, Dictionary<string, DateTime[]>>)TemporaryPermissions?.Call("AllUsersGetAllGroups"); GrantGroupPermission: Used to grant a temporary permission to a group. Returns true if the grant was successful. To call the GrantGroupPermission method, you need to pass 5 parameters, 3 of which are optional: <string>groupName - The name of the group; <string>permName - The name of the permission; <int>secondsToAdd or <DateTime>expireDate - Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the permission will be valid until the wipe; <bool>fromNow or <DateTime>assignedDate - Optional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date; <bool>checkExistence - Optional. Whether to check for the existence of the permission. (bool)TemporaryPermissions?.Call("GrantGroupPermission", "vip", "realpve.vip");//Calling the GrantGroupPermission method without specifying the third parameter, to grant temporary permission until the wipe. (bool)TemporaryPermissions?.Call("GrantGroupPermission", "vip", "realpve.vip", 0);//Calling the GrantGroupPermission method with the specified number less than 1, to grant temporary permission until the wipe. (bool)TemporaryPermissions?.Call("GrantGroupPermission", "vip", "realpve.vip", 3600, true, true);//Calling the GrantGroupPermission method with the specified number of seconds to add. (bool)TemporaryPermissions?.Call("GrantGroupPermission", "vip", "realpve.vip", expireDate, assignedDate, true);//Calling the GrantGroupPermission method with the specified DateTime for the end and start of the temporary permission. RevokeGroupPermission: Used to revoke a temporary permission from a group. Returns true if the revoke was successful. To call the RevokeGroupPermission method, you need to pass 2 parameters: <string>groupName - The name of the group; <string>permName - The name of the permission. (bool)TemporaryPermissions?.Call("RevokeGroupPermission", "vip", "realpve.vip"); GroupHasPermission: Used to check if a group has a temporary permission. Returns true if the group has the specified temporary permission. To call the GroupHasPermission method, you need to pass 2 parameters: <string>groupName - The name of the group; <string>permName - The name of the permission. (bool)TemporaryPermissions?.Call("GroupHasPermission", "vip", "realpve.vip"); GrantAllGroupsPermission: Used to temporarily grant a permission to all groups. Returns the <int>number of successful grants of temporary permissions to groups. To call the GrantAllGroupsPermission method, you need to pass 3 parameters, 2 of which is optional: <string>permName - The name of the permission; <int>secondsToAdd or <DateTime>expireDate - Optional. The time in seconds to add, or the end date. If a number less than 1 is specified, or if this parameter is not specified, the permission will be valid until the wipe; <bool>fromNow or <DateTime>assignedDate - Optional. true/false to specify whether the seconds should be added to the current date or to the existing time, or an exact assignment date. Defaults to the current date. (int)TemporaryPermissions?.Call("GrantAllGroupsPermission", "realpve.vip");//Calling the GrantAllGroupsPermission method without specifying the second parameter, to grant all groups temporary permission until the wipe. (int)TemporaryPermissions?.Call("GrantAllGroupsPermission", "realpve.vip", 0);//Calling the GrantAllGroupsPermission method with the specified number less than 1, to grant all groups temporary permission until the wipe. (int)TemporaryPermissions?.Call("GrantAllGroupsPermission", "realpve.vip", 3600, true);//Calling the GrantAllGroupsPermission method with the specified number of seconds to add. (int)TemporaryPermissions?.Call("GrantAllGroupsPermission", "realpve.vip", expireDate, assignedDate);//Calling the GrantAllGroupsPermission method with the specified DateTime for the end and start of the temporary permission. RevokeAllGroupsPermission: Used to revoke a temporary permission from all groups. Returns the <int>number of successful revokes of temporary permissions to groups. To call the RevokeAllGroupsPermission method, you need to pass 1 parameter: <string>permName - The name of the permission. (int)TemporaryPermissions?.Call("RevokeAllGroupsPermission", "realpve.vip"); GroupGetAllPermissions: Used to retrieve all temporary permissions of a group. Returns a Dictionary<string, DateTime[]> where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission. If the expiration date is set to default, it means the permission is valid until the wipe. To call the GroupGetAllPermissions method, you need to pass 1 parameter: <string>groupName - The name of the group. (Dictionary<string, DateTime[]>)TemporaryPermissions?.Call("GroupGetAllPermissions", "vip"); AllGroupsGetAllPermissions: Used to retrieve all temporary permissions of all groups that have temporary permissions. Returns a Dictionary<string, Dictionary<string, DateTime[]>> where the key is the group name and the value is another Dictionary<string, DateTime[]>, where the key is the permission name and the value is an array of 2 DateTimes: the first date is the assignment date and the second date is the expiration date of the permission. If the expiration date is set to default, it means the permission is valid until the wipe. (Dictionary<string, Dictionary<string, DateTime[]>>)TemporaryPermissions?.Call("AllGroupsGetAllPermissions");Free -
Version 0.1.13
776 downloads
Plugin for Real PvE servers, featuring damage prevention, anti-griefing measures, customizable PvP zones, an automatic loot queue in radtowns and raid zones, and much more. P.S. Since the previous implementation with DynamicPVP was not correct and had some issues, I have added universal hooks(Developer API section) for general access from all PvP plugins, which are currently missing in DynamicPVP. I have requested the author to add them(3 lines), but for now, you will need to use the modified version of DynamicPVP.cs The ability to set "server.pve" to "true", which allows the server to have a "PvE" flag; Damage from NPC's are enabled when server.pve is true; The ability to inflict damage to one's own structures with "server.pve true"; The ability to destroy(including external walls) or rotate one's structures without any time constraints; The ability to force the decay of building blocks with Twigs grade, even if there is wood in the Tool Cupboard; The ability to toggle the gather resource restriction in someone else's Building Privileges; No one, except the owner or their friends, will be able to open their loot containers (chests, storages, bodies, etc.); Administrators can bypass loot restrictions; The ability to schedule the killing of players if they disconnect within someone else's Building Privilege; Disabling backpack and active item drop upon death, even if backpack is full; The ability to disable 'Give' messages; The ability to modify the items given at spawn on the beach; The ability to create an unlimited number of custom permissions; The ability to allow players to bypass the queue; The ability to set limits on sleeping bags, shelters and auto turrets for each permission; The ability to set a multiplier for the prices of monuments and events for each permission; The ability to customize the price and amount of vehicles for each of your custom permissions; The ability to assign vehicles to each player; The ability to customize the assigned price and available amount of vehicles for each of your custom permissions; An assigned vehicle can't be damaged, looted or pushed by other players, but it can be pushed if it is within someone else's Building Privilege; The ability to loot monuments through a queue system; The ability to configure monuments, setting their looting price and time, and adjusting status bars for each monument; The ability to acquire the privilege to loot events (helicopters, bradleys, and raidable bases) through a purchase; The ability to customize the price of each event types and loot attempts (lives); NPCs only aggress against players who are looting monuments, events or raidable bases; Only players who are looting monuments, events or raidable bases can inflict damage to NPCs; RaidableBases are protected from griefing(no damage, no loot and etc). Only the owner can interact with the raid; Neutral RaidableBases can be purchased; Prices for purchasing neutral raids are configurable for each difficulty level; Configurable raid limits (currently available) along with discount multipliers for purchases, for each permission. File location: *SERVER*\oxide\data\RealPVE\PermissionConfig.json Default: https://pastebin.com/5VtWZZVr All permissions are created and configured in the config file under the "List of permissions" section. You can create as many permissions as needed and customize them flexibly. It is recommended to use the prefix "realpve" in the permission's name, for example: "realpve.vip". NOTE: The first permission will serve as the default permission for those who do not have any permissions. { "List of permissions. NOTE: The first permission will be used by default for those who do not have any permissions.": [ { "Permission Name": "realpve.default", "Bypass Queue": false, "Limit of beds": 15, "Limit of shelters": 1, "Limit of auto turrets": 12, "Seconds that will be skipped when opening HackableLockedCrate. Range from 0 to 900": 0.0, "Monuments price multiplier": 1.0, "Events price multiplier": 1.0, "Limit of RaidableBases(at the time)": 1, "RaidableBases price multiplier": 1.0, "Vehicles settings": { "Horse": { "Limit": 1, "Price": 10.0 }, "Bike": { "Limit": 1, "Price": 5.0 }, "MotorBike": { "Limit": 1, "Price": 20.0 }, "Car": { "Limit": 1, "Price": 25.0 }, ... } }, { "Permission Name": "realpve.vip", "Bypass Queue": true, "Limit of beds": 20, "Limit of shelters": 2, "Limit of auto turrets": 15, "Seconds that will be skipped when opening HackableLockedCrate. Range from 0 to 900": 450.0, "Monuments price multiplier": 0.9, "Events price multiplier": 0.9, "Limit of RaidableBases(at the time)": 2, "RaidableBases price multiplier": 0.9, "Vehicles settings": { "Horse": { "Limit": 5, "Price": 9.0 }, "Bike": { "Limit": 5, "Price": 4.5 }, "MotorBike": { "Limit": 5, "Price": 18.0 }, "Car": { "Limit": 5, "Price": 22.5 }, ... } } ], "Version": { "Major": 0, "Minor": 1, "Patch": 1 } } An example of a monument/event/rb multipliers using default permissions. For example, if you set the price for the Harbor at $1000, a player with the default permission(1.0) will pay $1000 * 1 = $1000. Meanwhile, a player with a VIP permission(0.9) will pay $1000 * 0.9 = $900. However, if a player possesses a misbehaving permission with a value of 1.1, they will need to pay $1000 * 1.1 = $1100. { "Chat admin command": "adminpve", "Chat command": "realpve", "Is it worth forcibly implementing PvE for a server?": true, "Is it worth enabling GameTips for messages?": true, "Is it worth preventing the sending of 'Give' messages?": true, "Is it worth preventing resource gathering in someone else's building privilege area?": false, "Is it worth preventing the pickup of plants spawned by the server in someone else's building privilege zone?": false, "Is it worth assigning portals(Halloween and Christmas) to the first player?": true, "Is it worth preventing players from handcuffing others?": true, "Is it worth preventing a backpack from dropping upon player death?": true, "Is it worth preventing damage to the laptop of the Hackable Crate?": true, "Is it worth removing the penalties for recyclers in safe zones?": true, "Which currency symbol and format will be utilized?": "${0}", "Vehicles - Time(in seconds) to display the marker when searching for a vehicle. A value of 0 disables the marker": 15.0, "Anti-Sleeper - Time in seconds after which a player will be killed if they disconnect while inside someone else's Building Privilege. Set to 0 to disable": 1200.0, "PatrolHelicopterAI - Monument Crash. If set to true, the helicopter will attempt to crash into the monument": false, "PatrolHelicopterAI - Use Danger Zones. If set to false, the helicopter will function as it did before the April update": false, "PatrolHelicopterAI - Flee Damage Percentage. A value of 1 or above will make the helicopter behave as it did before the April update": 1.0, "Is Npc Random Raids enabled?": true, "PvP - Is friendly fire enabled by default when creating a team?": false, "PvP - Is it worth adding map markers for PvP zones?": true, "PvP - Name of the map maker": "PvP Zone!", "PvP - Settings for the status bar": { "Order": 9, "Height": 26, "Main_Color(Hex or RGBA)": "1 0.39 0.28 0.7", "Main_Transparency": 0.8, "Main_Material": "", "Image_Url": "https://i.imgur.com/oi5vIkk.png", "Image_Local(Leave empty to use Image_Url)": "RealPVE_PvP", "Image_Sprite(Leave empty to use Image_Local or Image_Url)": "", "Image_IsRawImage": false, "Image_Color(Hex or RGBA)": "1 0.39 0.28 1", "Image_Transparency": 1.0, "Is it worth enabling an outline for the image?": false, "Image_Outline_Color(Hex or RGBA)": "0.1 0.3 0.8 0.9", "Image_Outline_Transparency": 0.0, "Image_Outline_Distance": "0.75 0.75", "Text_Size": 12, "Text_Color(Hex or RGBA)": "1 1 1 1", "Text_Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "Is it worth enabling an outline for the text?": false, "Text_Outline_Color(Hex or RGBA)": "#000000", "Text_Outline_Transparency": 1.0, "Text_Outline_Distance": "0.75 0.75", "SubText_Size": 12, "SubText_Color(Hex or RGBA)": "1 1 1 1", "SubText_Font": "RobotoCondensed-Bold.ttf", "Is it worth enabling an outline for the sub text?": false, "SubText_Outline_Color(Hex or RGBA)": "0.5 0.6 0.7 0.5", "SubText_Outline_Transparency": 0.0, "SubText_Outline_Distance": "0.75 0.75" }, "PvP - Settings for the progress status bar": { "Main_Color(Hex or RGBA)": "1 1 1 0.15", "Main_Transparency": 0.15, "Progress_Reverse": true, "Progress_Color": "#FF6347", "Progress_Transparency": 0.7, "Progress_OffsetMin": "0 0", "Progress_OffsetMax": "0 0" }, "Wipe ID": null, "Version": { "Major": 0, "Minor": 1, "Patch": 13 } } ENG: https://pastebin.com/ZMUL6pYL RUS: https://pastebin.com/Mx8cbMts Main commands(/realpve ) : pickup - Toggle access for picking up your items from the ground for everyone; autobuy - Toggle autobuy for monuments, vanilla events and raid bases with a final price greater than 0; vehicle - Manage vehicles: list - List of your vehicle IDs; find *vehicleID* - Help find your vehicle; unlink *vehicleID* - Unlink the vehicle registration; clear - Unlink registration from all your vehicles. team - Manage team: ff - Toggle the ability to damage your teammates. Admin commands(/adminpve). Permission "realpve.admin" required: perm - Permissions settings: add *permName* - Adds a new permission to the list by copying values from the first(default) permission in the list. If the permission name starts with 'realpve', it will also register a new permission; add *permName* *sourcePermName* - Adds a new permission to the list by copying values from an existing permission in the list; remove *permName* - Removes an existing permission from the list; edit *permName* - Edits a permission: queue - Toggle the permission to bypass the server queue; beds *intValue* - Restriction on the number of available beds; shelters *intValue* - Restriction on the number of available shelters; turrets *intValue* - Restriction on the number of available turrets; hackable *floatValue* - Number of seconds(0-900) to skip when opening a hackable crate; monuments *floatValue* - Price multiplier for monuments; events *floatValue* - Price multiplier for vanilla events; rb_limit *intValue* - Restriction on the number of raid bases available simultaneously; rb_mult *floatValue* - Price multiplier for raid bases; vehicles *vehType* - Vehicles settings: limit *intValue* - Limit on the number of available vehicles by type; price *floatValue* - Price for registering a vehicle by type. clear - Removes all permissions from the list except the first one. monument - Monuments settings: list - List of available monuments; *monumentID*/this - Instead of the monumentID, you can use the word "this", but you must be inside the monument: suffix - Toggle the suffix display in the monument's name; broadcast - Toggle notifications about monument occupancy/release; time *intValue* - Set the looting time limit for the monument in seconds; price *floatValue* - Set the cost for looting rights. A value of 0 makes the monument free; offer *floatValue* - Set the offer duration for purchasing the monument in seconds; map_mode *intValue* - Set the marker display mode on the map. 0 - disabled, 1 - enabled, 2 - enabled during PvP mode; map_circle - Toggle the display of the monument's circle marker on the map; pvp - Toggle PvP mode for the monument; pvp_delay *floatValue* - Set the PvP mode duration in seconds for players after leaving the PvP monument; bar_progress - Toggle between TimeProgressCounter and TimeCounter bars for the monument. loot - Setup unrestricted access: *nameOrId* - Toggle unrestricted access for the specified player; self - Toggle unrestricted access for yourself; clear - Revoke unrestricted access for all players. pickup - Settings for access to picking up player items from the ground: *nameOrId* - Toggle access to picking up a specific player's items from the ground; clear - Revoke access for all players to pick up items from the ground. autobuy - Settings for autobuying monuments, vanilla events and raid bases with a price greater than 0: *nameOrId* - Toggle autobuy for the specified player; force monument/event/rb - Toggle forced autobuy. If enabled, player settings will be ignored; clear - Disable autobuy for everyone. vehicle - Monuments settings: types - List of available vehicle types. Example: /realpve pickup /realpve vehicle find *netID* /realpve team ff /adminpve perm add realpve.vip2 /adminpve perm add realpve.vip2 realpve.vip /adminpve perm edit realpve.vip2 queue true /adminpve perm edit realpve.vip2 vehicles horse limit 5 /adminpve monument list /adminpve monument *monumentID* pvp /adminpve monument *monumentID* price 7.5 /adminpve loot iiiaka /adminpve pickup iiiaka /adminpve vehicle types This plugin provides the ability to claim vehicles, thereby preventing theft and griefing from other players. In permissions, you can set the price and quantity restrictions for each type of vehicle, ensuring flexible customization according to your preferences. An assigned vehicle can't be damaged, looted or pushed by other players, but it can be pushed if it is within someone else's Building Privilege. File location: *SERVER*\oxide\data\RealPVE\MonumentConfig.json Default: https://pastebin.com/XY1d9YaM This plugin introduces queue system and loot purchases for monuments. You can customize the price and time for looting for each monument. Within monuments, only the "Looter" and his friends have the ability to loot, pick up items or damage entities. Additionally, NPCs and animals within monuments do not aggress against other players and do not receive damage from them. If a player dies within the monument, they will have a grace period to return. This allows players to safely loot monuments without fear of griefing. Example of monument configuration: "ferry_terminal_1": { "Type(This parameter is just a hint. Changes won’t have any effect)": "RadTown", "Time in seconds(1-15) given to respond for purchasing monument looting": 5.0, "ShowSuffix": true, "Broadcast": true, "PvP - Is PvP enabled at this monument? If so, players will be able to kill each other, and loot will be publicly accessible": false, "PvP - Sets the delay in seconds that a player remains in PvP mode after leaving a PvP monument. 0 disables the delay": 10.0, "PvP - Is it worth adding map markers for monuments if they are PvP zones?": true, "LootingTime": 900, "Price": 15.0, "Is it worth using a progress bar for bars with a counter?": true, "Settings for the status bar": { "Order": 10, "Height": 26, "Main_Color(Hex or RGBA)": "#FFBF99", "Main_Transparency": 0.8, "Main_Material": "", "Image_Url": "https://i.imgur.com/awUrIwA.png", "Image_Local(Leave empty to use Image_Url)": "RealPVE_ferry_terminal_1", "Image_Sprite(Leave empty to use Image_Local or Image_Url)": "", "Image_IsRawImage": false, "Image_Color(Hex or RGBA)": "#FFDCB6", "Image_Transparency": 1.0, "Is it worth enabling an outline for the image?": false, "Image_Outline_Color(Hex or RGBA)": "0.1 0.3 0.8 0.9", "Image_Outline_Transparency": 0.0, "Image_Outline_Distance": "0.75 0.75", "Text_Size": 12, "Text_Color(Hex or RGBA)": "1 1 1 1", "Text_Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "Is it worth enabling an outline for the text?": false, "Text_Outline_Color(Hex or RGBA)": "#000000", "Text_Outline_Transparency": 1.0, "Text_Outline_Distance": "0.75 0.75", "SubText_Size": 12, "SubText_Color(Hex or RGBA)": "1 1 1 1", "SubText_Font": "RobotoCondensed-Bold.ttf", "Is it worth enabling an outline for the sub text?": false, "SubText_Outline_Color(Hex or RGBA)": "0.5 0.6 0.7 0.5", "SubText_Outline_Transparency": 0.0, "SubText_Outline_Distance": "0.75 0.75" }, "Settings for the progress status bar": { "Main_Color(Hex or RGBA)": "1 1 1 0.15", "Main_Transparency": 0.15, "Progress_Reverse": true, "Progress_Color": "#FFBF99", "Progress_Transparency": 0.7, "Progress_OffsetMin": "0 0", "Progress_OffsetMax": "0 0" } } Type - This field serves only as an indicator for you. The changes won't have any impact; ShowSuffix - Suffix display. Some monuments (for example Warehouses) have suffixes in the name, like "Warehouse #12"; Broadcast - Enabling or disabling broadcasts when a monument is occupied or vacated; LootingTime - Time allocated for looting the monument; Price - The price for which you can start looting the monument. 0 means looting is free; BarSettings - Settings for the Advanced Status Bar. You can also choose the types of monuments by specifying them under the "List of tracked types of monuments" section. A list of all available types can be viewed on the MonumentsWatcher's page in the "Developer API" section. "List of tracked types of monuments": [ "RadTown", "RadTownWater", "RadTownSmall", "TunnelStation", "Custom" ] Events, similar to monuments, offer the opportunity to claim events. All events are configured in the config file under the "Settings for the events" section. You can customize the price of looting and looting attempts(deaths, including friends). Just like in monuments, only the "Looter" and his friends have the ability to loot and damage entities. Additionally, in events, NPCs do not aggress against other players. If a player(including friends) exceeds the death limit, the event became free, thereby providing other players with the opportunity to claim the event. Example of event configuration: { "Settings for the PatrolHelicopter events": { "IsEnabled": true, "Time in seconds (1-15) given to respond for purchasing this event. Note: This is shown to everyone who deals damage, and the first person to buy it will claim it": 5.0, "Is it worth removing fire from crates?": true, "The price to capture the event. 0 means the event is free": 50.0, "The number of deaths after which the event becomes public": 5 }, "Settings for the BradleyAPC events": { "IsEnabled": true, "Time in seconds (1-15) given to respond for purchasing this event. Note: This is shown to everyone who deals damage, and the first person to buy it will claim it": 5.0, "Is it worth removing fire from crates?": true, "The price to capture the event. 0 means the event is free": 50.0, "The number of deaths after which the event becomes public": 5 }, "Version": { "Major": 0, "Minor": 1, "Patch": 0 } } Price - The price to claim the event. 0 means looting is free; DeathLimit - Limit of deaths after which the event becomes free. File location: *SERVER*\oxide\data\RealPVE\NewbieConfig.json Default: https://pastebin.com/QHZCqpji An example of an item list given for the main inventory: "List of items for the main inventory": [ { "ShortName": "note", "Slot": 0, "Amount": 1, "SkinID": 0, "Text": "MsgNoteText" } ] P.S. In the Text field, you need to specify the language key. Or, you can just write any text, but there won't be a translation of the text. File location: *SERVER*\oxide\data\RealPVE\RaidableBasesConfig.json Default: https://pastebin.com/rpDng7Fd Integration with the RaidableBases plugin does not restrict its functionality in any way. On the contrary, it adds an anti-grief system that protects bases from malicious players. In raid bases, NPCs and other entities can only receive damage from the raid owner or their friends; Turrets and traps do not aggress against outsiders; You can customize the price of claiming to each difficulty and set individual discounts for each permission. You can still purchase raid bases using the /buyraid command. Raid bases without owners(buyable, maintained, manual and scheduled) can be bought for a price set in the configuration file or assigned to the first player who enters its radius, if the final price(price * discount) less or equals to 0. Additionally, as a bonus, upon buying this plugin, you receive 5 free bases for 3 difficulty levels, along with configured loot for them. [PluginReference] private Plugin RealPVE; There are 6 universal hooks that the plugin is subscribed to, the use of which allows interaction with PVP in various PVE plugins: OnPlayerEnterPVP OnPlayerExitPVP OnEntityEnterPVP OnEntityExitPVP CreatePVPMapMarker DeletePVPMapMarker OnPlayerEnterPVP: Used to add a player to PVP mode/zone. To call the OnPlayerEnterPVP hook, you need to pass 2 parameters: <BasePlayer>player - The player to add to PVP; <string>zoneID - A unique identifier for your PVP zone. This parameter is very important because a player can be in multiple PVP zones at the same time and passing the zoneID in this case allows for correct processing of the player's location within them. Interface.CallHook("OnPlayerEnterPVP", player, "*Your unique zone identifier*");//Calling the OnPlayerEnterPVP hook to tell PVE plugins that the player needs to be added to the specified PVP zone. OnPlayerExitPVP: Used to remove a player from PVP mode/zone. Calling this hook guarantees the player’s removal from the specified PVP zone, but does not guarantee the removal from PVP mode, as there may be other zones in addition to yours. Also, when a player dies, they are automatically removed from all PVP zones. To call the OnPlayerExitPVP hook, you need to pass 3 parameters, 1 of which is optional: <BasePlayer>player - The player to remove from PVP; <string>zoneID - A unique identifier for your PVP zone; <float>pvpDelay - Optional. When the player exits your PVP zone, you can also pass the PVP delay time. However, if the player still has other active PVP zones, your PVP delay will not take effect. Interface.CallHook("OnPlayerExitPVP", player, "*Your unique zone identifier*", 10f);//Calling the OnPlayerExitPVP hook to tell PVE plugins that the player needs to be removed from the specified PVP zone, with the pvpDelay(10 seconds) specified if the player no longer has any active PVP zones. OnEntityEnterPVP: Used to add an entity to PVP mode/zone. In the case of RealPVE, this hook is only necessary to add entities with an owner(player) to a PVP, allowing other players to interact with them, such as a player's corpse after death(PlayerCorpse) or a backpack after the corpse disappears(DroppedItemContainer). To call the OnEntityEnterPVP hook, you need to pass 2 parameters: <BaseEntity>entity - The entity to add to PVP; <string>zoneID - A unique identifier for your PVP zone. Interface.CallHook("OnEntityEnterPVP", entity, "*Your unique zone identifier*");//Calling the OnEntityEnterPVP hook to tell PVE plugins that the entity needs to be added to the specified PVP zone. OnEntityExitPVP: Used to remove an entity from PVP mode/zone. When an entity dies, it is automatically removed from all PVP zones. To call the OnEntityExitPVP hook, you need to pass 3 parameters, 1 of which is optional: <BaseEntity>entity - The entity to remove from PVP; <string>zoneID - A unique identifier for your PVP zone; <float>pvpDelay - Optional. When the entity exits your PVP zone, you can also pass the PVP delay time. However, if the entity still has other active PVP zones, your PVP delay will not take effect. Interface.CallHook("OnEntityExitPVP", entity, "*Your unique zone identifier*", 10f);//Calling the OnEntityExitPVP hook to tell PVE plugins that the entity needs to be removed from the specified PVP zone, with the pvpDelay(10 seconds) specified if the entity no longer has any active PVP zones. CreatePVPMapMarker: Used to create a map marker for the PVP zone. To call the CreatePVPMapMarker hook, you need to pass 5 parameters, 2 of which is optional: <string>zoneID - A unique identifier for your PVP zone; <Vector3>pos - The position of your PVP zone; <float>radius - The radius of the circle for your PVP zone; <string>displayName - Optional. The display name for the map marker; <BaseEntity>entity - Optional. The entity to which the map marker should be attached. Interface.CallHook("CreatePVPMapMarker", "*Your unique zone identifier*", pos, 25f, "ATTENTION! This is a PVP zone!");//Calling the CreatePVPMapMarker hook to tell PVE plugins to create a map marker for the specified zone, at the specified position with the given radius, but without specifying a parent entity. DeletePVPMapMarker: Used to delete a map marker for the PVP zone. To call the DeletePVPMapMarker hook, you need to pass only 1 parameter: <string>zoneID - A unique identifier for your PVP zone. Interface.CallHook("DeletePVPMapMarker", "*Your unique zone identifier*");//Calling the DeletePVPMapMarker hook to tell PVE plugins to delete a map marker for the specified zone. There are 5 hooks that the plugin calls: OnPlayerPVPDelay OnPlayerPVPDelayed OnPlayerPVPDelayRemoved OnZoneStatusText CanRedeemKit OnPlayerPVPDelay: Called when a player exits the last active PVP zone, allowing other plugins to overwrite the value for pvpDelay. Returning a float value allows changing the pvpDelay for the player. A value less than zero disables the pvpDelay. When calling the OnPlayerPVPDelay hook, 3 parameters are passed: <BasePlayer>player - The player to whom the pvpDelay is applied; <float>pvpDelay - The initial value of pvpDelay; <string>zoneID - A unique identifier of PVP zone. object OnPlayerPVPDelay(BasePlayer player, float pvpDelay, string zoneID) { Puts($"Attempting to set a PvP delay of {pvpDelay} seconds for player {player.displayName} in zone {zoneID}!"); if (zoneID == "*Your unique zone identifier*") { return 15f;//Overriding the values for pvpDelay } return null;//Leave unchanged } OnPlayerPVPDelayed: Called after the PVP delay has been set for the player. When calling the OnPlayerPVPDelayed hook, 3 parameters are passed: <BasePlayer>player - The player to whom the pvpDelay is applied; <float>pvpDelay - The value of pvpDelay; <string>zoneID - A unique identifier of PVP zone. void OnPlayerPVPDelayed(BasePlayer player, float pvpDelay, string zoneID) { Puts($"A PvP delay of {pvpDelay} seconds has been set for player {player.displayName} in zone {zoneID}!"); } OnPlayerPVPDelayRemoved: Called when the PVP delay is removed from the player after they enter a PVP zone with an active PVP delay. When calling the OnPlayerPVPDelayRemoved hook, only 1 parameter is passed: <BasePlayer>player - The player from whom the PVP delay has been removed. void OnPlayerPVPDelayRemoved(BasePlayer player) { Puts($"PVP delay has been removed for player {player.displayName} as they entered a PVP zone!"); } OnZoneStatusText: Called when the text with the nice name for the specified zone is needed, to be displayed in the status bar. When calling the OnZoneStatusText hook, 2 parameters are passed: <BasePlayer>player - The player for whom the nice name for the zone is being requested; <string>zoneID - A unique identifier of PVP zone. object OnZoneStatusText(BasePlayer player, string zoneID) { Puts($"Text for the status bar is required for zone {zoneID}"); if (zoneID == "*Your unique zone identifier*") { return lang.GetMessage("*langKey*", this, player.UserIDString);//<string>Overriding the value for the status bar text } return null;//Leave unchanged } CanRedeemKit: Called before giving the starter kit, in the OnDefaultItemsReceive hook. A non-zero value cancels this action. When calling the CanRedeemKit hook, only 1 parameter is passed: <BasePlayer>player - The player to whom the kit is being attempted to be given. object CanRedeemKit(BasePlayer player) { Puts($"Attempting to give the kit to player {player.displayName}!"); if (player.IsAdmin) { return false;//Cancel the action } return null;//Leave unchanged }$39.99- 31 comments
- 1 review
-
- 3
-
- #rust
- #real
-
(and 56 more)
Tagged with:
- #rust
- #real
- #pve
- #pvp
- #solo
- #build
- #friendly
- #raid
- #npc
- #monument
- #monuments
- #loot
- #looting
- #farm
- #newbie
- #custom
- #bar
- #ui
- #cui
- #panel
- #vehicle
- #claim
- #limit
- #limits
- #sleeping
- #bag
- #sleeping bag
- #bed
- #shelter
- #permission
- #permissions
- #vip
- #economy
- #economics
- #rad
- #town
- #radtown
- #queue
- #bypass
- #vehicles
- #raidable
- #base
- #bases
- #raidablebases
- #raider
- #raiders
- #humannpc
- #event
- #events
- #copy
- #paste
- #copypaste
- #plugin
- #plugins
- #umod
- #oxide
- #carbon
- #iiiaka
-
Version 1.1.3
293 downloads
Multi permission based entity limit system Limit number of entities per player/group/team/clan UI config setup options Auto updating player permissions Chat Commands: /limits: Opens the user interface (UI) for managing entity limits Console Commands: ael.createnew <advancedentitylimit.NAME> <optional: copy from advancedentitylimit.NAME>: Adds new permissions for entities. Optionally, you can copy permissions from an existing entity limit. Player Permissions: advancedentitylimit.ui: Allows players to seethe UI. advancedentitylimit.default: Applies the default entity limits advancedentitylimit.vip: Applies the vip entity limits You can create custom permission groups to have various limits per group. Admin Permissions: advancedentitylimit.setlimit: Grants permission to set limits for entities. advancedentitylimit.createperm: Allows the creation of new permissions for entities. advancedentitylimit.admin: Provides full access. { "Auto-fill missing entities?": true, "Chat prefix": "<color=red>[Limits]</color>: ", "A message when the player reaches the maximum limit of objects": "You have <color=red>reached</color> the limit of this object ({0})", "Use teams for sum them constructions": false, "Use clans?": false, "Clans plugin for sum player constructions (Mevent, k1lly0u)": "Mevent" } Credit to @MuB-Studios the original author of this plugin$15.99- 66 comments
- 8 reviews
-
- 5
-
- #limit
- #entitylimit
-
(and 2 more)
Tagged with:
-
Version 1.0.3
39 downloads
Virtual Furnace is a new look at the use of stoves. Allow players to install a virtual oven and access it from anywhere on your server. The plugin allows players to install a virtual furnace and improve it to obtain a more efficient melting method. You can connect your economy plugin so that players can get improvements. Video Plugin Features The possibility of creating/improving furnaces with the help of items/economy balance Setting limits for each of the players by privilege The ability to adjust the number of available slots for each player individually Support for popular economy plugins(Economics, Server Rewards,IQEconomic,Bank System) You can customize each level individually to suit your ideas Using a standard storage system, which eliminates the possibility of losing resources or duplicating them Plugin Config Example of plugin configuration in English Example of plugin configuration in Russian Check out more of my work here CASHR's library. Come see our whole teams work Mad Mapper Library. Come by the Mad Mapper Discord for support, feedback, or suggestions!$25.00 -
Version 0.1.1
64 downloads
The plugin that displays temporary permissions and groups in the status bar. Depends on TemporaryPermissions and AdvancedStatus plugins. The ability to choose between bar types(TimeCounter and TimeProgressCounter); The ability to specify the order of the bar; The ability to change the height of the bar; The abillity to customize the color and transparency of the background; The ability to set a material for the background; The ability to switch between CuiRawImageComponent and CuiImageComponent for the image; The ability to get images from the local folder(*SERVER*\oxide\data\AdvancedStatus\Images); The abillity to set own image and customize the color and transparency of the image; The abillity to set sprite instead of the image; The ability to customize the color, size and font of the text; The ability to customize the bar for each permission and group; The ability to generate language keys for each permission and group; The ability to specify additional languages for generation. { "Chat command": "pstatus", "Is it worth enabling GameTips for messages?": true, "Is it worth clearing saved settings for permissions and groups upon detecting a wipe?": false, "Is it worth copying local images for new permissions or groups? Note: If set to true, it may create a lot of unnecessary images": false, "Is it worth enabling the bar display for new permissions?": true, "Is it worth enabling the bar display for new groups?": true, "Language - Addition languages (except en and ru)": [ "" ], "Type of status bar for permissions. Note: You can only choose between TimeProgressCounter and TimeCounter": "TimeProgressCounter", "Type of status bar for groups. Note: You can only choose between TimeProgressCounter and TimeCounter": "TimeProgressCounter", "Default status bar settings for new permissions and groups": { "BarType - You can choose only between TimeProgressCounter and TimeCounter": "TimeProgressCounter", "Order": 20, "Height": 26, "Main_Color(Hex or RGBA)": "#FFFFFF", "Main_Transparency": 0.15, "Main_Material": "", "Image_Url": "https://i.imgur.com/BtK7YHa.png", "Image_Local(Leave empty to use Image_Url)": "PermissionsStatus_Default", "Image_Sprite(Leave empty to use Image_Local or Image_Url)": "", "Image_IsRawImage": false, "Image_Color(Hex or RGBA)": "#FFF53D", "Image_Transparency": 1.0, "Is it worth enabling an outline for the image?": false, "Image_Outline_Color(Hex or RGBA)": "0.1 0.3 0.8 0.9", "Image_Outline_Transparency": 1.0, "Image_Outline_Distance": "0.75 0.75", "Text_Size": 12, "Text_Color(Hex or RGBA)": "1 1 1 1", "Text_Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "Text_Offset_Horizontal": 0, "Is it worth enabling an outline for the text?": false, "Text_Outline_Color(Hex or RGBA)": "#000000", "Text_Outline_Transparency": 1.0, "Text_Outline_Distance": "0.75 0.75", "SubText_Size": 12, "SubText_Color(Hex or RGBA)": "1 1 1 1", "SubText_Font": "RobotoCondensed-Bold.ttf", "Is it worth enabling an outline for the sub text?": false, "SubText_Outline_Color(Hex or RGBA)": "0.5 0.6 0.7 0.5", "SubText_Outline_Transparency": 1.0, "SubText_Outline_Distance": "0.75 0.75", "Progress_Reverse": true, "Progress_Color(Hex or RGBA)": "#FFD700", "Progress_Transparency": 0.7, "Progress_OffsetMin": "0 0", "Progress_OffsetMax": "0 0" }, "Wipe ID": null, "Version": { "Major": 0, "Minor": 1, "Patch": 1 } } EN: { "MsgDisplayEnabled": "Displaying the bar is enabled!", "MsgDisplayDisabled": "Displaying the bar is disabled!", "MsgUntilWipe": "Until wipe" } RU: { "MsgDisplayEnabled": "Отображение бара включено!", "MsgDisplayDisabled": "Отображение бара выключено!", "MsgUntilWipe": "До вайпа" } The language file is generated during the plugin initialization process. Additionally, when creating a new permission or group, a key for it will be automatically added. Note: You can also specify in the configuration file the generation of language files for other languages besides en and ru.$9.99 -
Version 2.1.9
1,419 downloads
The purpose of this plugin is to restrict the entities that players can build. You can limit any entity based on its prefab. To get the full list of supported prefabs use limitentities.list console command. There are two types of limits available: global and building. For building limit checks, if a cupboard is placed, the limits of the cupboard owner will apply. If no cupboard is placed, the restrictions of the owner of the first block will apply. When you run the plugin for the first time, no players will be limited. To apply limits, you must assign one or more permissions from your config file to a player/group. The plugin also tracks permission changes, so you will not need to restart the plugin after giving a player new permission or adding them to a VIP group, etc. This plugin is designed to be efficient and performant even on highly loaded servers. All growables are fully excluded from the count, so you can't limit any growables with this plugin, and players are free to plant them. I was considering adding this as an option, but it can significantly reduce performance, so at this point, I decided to refrain from it. This plugin now supports `Entity Groups`, and group names are translatable. All newly created groups are added to the language files on plugin load. You are free to create as many groups as you want or remove them all. The only thing you should keep in mind is that if you added an entity to a group, you can't add the same entity to `Limits Entities`, you must use the `Group name`. Note: If you want to have "beautiful" names even on English only, please, install Rust Translation API plugin or you will have a short prefab names only. ## Permissions limitentities.immunity -- Allows player to not being limited by this plugin limitentities.admin -- Allows player to check other player limits and execute console command More permissions with limits are created in config file (see Configuration section below) ## Commands /limits <player name | steamid> (optional) -- Get current limits list for a player. If player doesn't have admin permission or player name/id is empty - current player limit will be shown limitentities.list (console only) - print all tracked prefabs list into log file. Requires admin rights (can be used in server console/RCON) ## Configuration You can remove unnecessary default permissions and also add as many permissions as you want. For cases where the player has more than one, the permission with the higher priority will be applied. Note: To improve performance grant permissions only to players you want to apply limits or use immunity permission to disable limits entirely Enable / disable notifications / logging Set SteamIDIcon steamid to set desired account icon in chat messages Set commands list (default are "limits", "limit") Set the % at which limit notifications appear. If set to 0 notification will appear only when limit is already reached Add entity prefab name to Excluded list and plugin will ignore that prefab completely Use Entity Groups to combine entities and set a common limit for the entire group The same entity cannot be in both Group Entities list and Limits Entities simultaneously Prevent excessive merging of buildings may impact performance, so enable it at your own risk ## Localization Plugins phrases are available on 3 languages out of the box: English, Ukrainian and Russian Plugin supports Rust Translation API which allows you to have entities names on any language Rust supports There is a free version on uMod, why do you even need this plugin? First of all, this plugin was designed to be efficient and performant. It uses unique caching system that should not consume no additional server resources Much more efficient building limit control system even without cupboard placed More accurate mechanism for notification messages Allows you to prevent entities placement if limit is set to 0 Supports Rust Translation API so you can have full support of any language Rust supports Supports Entity Groups ! Supports checks to prevent excessive merging of buildings Supports Abandoned Bases plugin$25.00 -
Version 1.0.2
69 downloads
This plugin let you manage the placement of vending machines by permission and limit. It´s also possible to prevent from placing vending machines on land or/and water seperatly. Permissions Allow above water managevendingplacement.canplace.abovewater Allow under water managevendingplacement.canplace.underwater Allow above water with limit managevendingplacement.canplace.limited.abovewater Allow under water with limit managevendingplacement.canplace.limited.underwater Chat Command Show the List of limits by rank /vplimit Configuration { "AllowAboveWaterDefault": true, "AllowUnderWaterDefault": true, "ChatCommand": "vplimit", "DefaultLandLimit": 5, "DefaultWaterLimit": 3, "GroupLandLimits": { "default": 5, "vip": 10 }, "GroupWaterLimits": { "default": 3, "vip": 6 } } Localization English & German { "CannotPlaceUnderwater": "You cannot place vending machines underwater.", "ReachedLandLimit": "You have reached the land limit for placing vending machines.", "ReachedWaterLimit": "You have reached the water limit for placing vending machines.", "NoPermission": "You do not have permission to place vending machines.", "CheckLimit": "You have placed {0} out of {1} allowed vending machines.", "NoLimitedPermission": "You do not have a limited permission to place vending machines.", "RankLimits": "Land Limits: {0}\nWater Limits: {1}", "LimitsHeader": "Vending Machine Limits by Rank:" } The plugin was created in parts with the help of artificial intelligenceFree-
- #vendingmachine
- #limit
-
(and 1 more)
Tagged with:
-
Version 1.0.4
54 downloads
XTransportPrivat - private transport for your server - PvP/PvE. Transport limit. - Optimization of the interface for different monitor resolutions. - Storing player data in - oxide/data/XDataSystem/XTransportPrivat - There is a lang ru/en/uk/es. - Sound effects. - Ability to set up a limited number of private vehicles per player. [ You can set a total limit on the number of transport per player ] - Possibility to prohibit unprivatize transport. - The ability to prohibit interaction with non-private transport if the limit is reached. [ Settings in config ] - The ability to allow players to board the TAXI module without restrictions. [ Settings in config ] - It is forbidden to loot private vehicles. - It is forbidden to push private vehicles and lead a horse. [ Allowed in the area of your closet. For moments with blocking the passage and other obstacles to the game. ] - Transport can only be privatized within the range of your cupboard or anywhere on the map. You just need to get into the transport. - You can unprivatize a transport by hitting it with a mallet only in the area of action of someone else's cupboard or anywhere on the map. There is a list of trusted players. [ The player can add to this list those players whom he trusts and who are not in his team (green). ] - A tugboat can only be privatized when the transport privatization option is selected in the config: False - anywhere as soon as the player gets into a non-private transport. -> Overview - YouTube <- Commands /privatplayer - interaction with the trusted list. Config { "General settings": { "Use private transport limit": false, "Allow unprivatize transport": true, "Privatize transport option - [ True - only in the area of your cupboard | False - anywhere as soon as the player gets into a non-private transport ]": true, "Unprivatize transport option - [ True - only in the area of action of someone else's cupboard | False - anywhere ]": true, "Forbid buying a horse if the limit is reached": false, "Prohibit getting into non-private transport if the limit is reached": false, "Forbid leading a non-private horse if the limit is reached": false, "Allow to lead a non-private horse in the area of your cupboard. [ If prohibited by paragraph above ]": false, "Prohibit pushing non-private transport if the limit is reached": false, "Allow pushing non-private transport within the range of your cupboard. [ If prohibited by paragraph above ]": false, "Allow players to board the TAXI module without restrictions": true, "Transport limit setting - [ Change value only ]": { "kayak": 2, "rowboat": 2, "rhib": 1, "tugboat": 1, "testridablehorse": 3, "2module_car_spawned.entity": 1, "3module_car_spawned.entity": 1, "4module_car_spawned.entity": 1, "minicopter.entity": 2, "attackhelicopter.entity" : 1, "scraptransporthelicopter": 1, "submarinesolo.entity": 2, "submarineduo.entity": 1, "sled.deployed": 3, "sled.deployed.xmas": 3, "snowmobile": 1, "tomahasnowmobile": 1 } } }$16.99- 13 comments
-
- #private
- #transport
-
(and 10 more)
Tagged with:
-
Version 0.0.6
463 downloads
Limits the amount of active Supply Signals on the server. Prevents players from calling an Airdrop if the amount of deployed Supply Signals, or the amount of spawned Cargo Planes or the amount of Supply Drops with a parachute still attached is over the limit defined in the config. Config: { "Max": 10, "BypassPermission": "supplysignallimit.bypass" } Lang: { "Limit": "There can only be {0} active Supply Signals at any time, please wait a few seconds." }$3.00- 11 comments
- 4 reviews
-
- 3
-
Version 1.1.2
80 downloads
This plugin allows you to control how much C4 a player is allowed to throw. This is primarily to reduce lag and limit the amount of C4 explosions on your server. Permissions c4watch.bypass -- grants immunity to the C4 limit Configuration "C4 Limit (0 to disable)": 0, "Limit RF C4": false, "Limit Regular C4": false C4 Limit -- the maximum number of C4 players are allowed to place Limit RF C4 -- Apply limit to RF controlled C4 Limit Regular C4 -- Apply a limit to non-RF controlled C4Free -
Version 1.0.2
16 downloads
Written with the best performance in mind turret modifier brings the ability for players to have different custom sentry, auto turrets & flame turrets each with different permissions as well as a global default one. It supports tc limits, auto auths, custom toggle on/of commands and restock command of turret ammo. You can make as many perms as you wish for different turret variants. Ideal for shop plugins, vending machines and more. With more features in the works / development. Features: * Multiple Ammo Types per turret * Ability to place turrets on any building surface. * Turret Limits * Auto Authorization support for Teams & TC * Turret Customization Support * Individual trap limits * commands to toggle turrets on / off * commands to refill the turrets with ammo on the player * More to come, look at config below for full feature list F1 / Console Commands tm.flame name or steamID perm or global amount spin<optional, Example: tm.flame give khan global 3 | tm.flame give khan global 3 spin tm.turret name or steamID perm or global amount spin<optional, Example: tm.turret give khan global 3 | tm.turret give khan global 3 spin tm.sentry name or steamID perm or global amount spin<optional, Example: tm.sentry give khan global 3 | tm.sentry give khan global 3 spin tm.clear ( removes all server instances of player placed sentry turrets ) Chat Commands /toggle <on> | <off> ( toggles all auto turrets with power on or off ) NOTE: restock command requires the player to have the ammo on them to work. /restock red 500 ( restocks all turrets within that TC area with the specified ammo type & ammount per turret ) /restock <default> | <black> | <blue> | <red> | <sam> Configuration { "Enables use of permission based settings": true, "Toggle Command for Turrets: Toggles on / off (set empty string to disable)": "toggle", "ReStock Command for Turrets: Specify Ammo & ReStock Inventory (set empty string to disable)": "restock", "Give Command Flame Turret": "tm.flame", "Give Command Auto Turret": "tm.turret", "Give Command Sentry": "tm.sentry", "Clear Sentry Command": "tm.clear", "SteamIDs that are excluded from build Limits": [], "Can Be Targeted Settings": { "SteamIDs that are excluded from being targeted": [] }, "Global Auto Turret": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Bullet Speed, vanilla = 200f": 200.0, "Turret Range, vanilla = 30": 30.0, "Turret Placement Health, vanilla = 1000": 1000.0, "Aim cone, vanilla = 5": 5.0, "Inventory Capacity, Available Ammo Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Auto Turret", "Player Auto Turret Permissions": { "toptier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 15, "Bullet Speed, vanilla = 200f": 200.0, "Turret Range, vanilla = 30": 100.0, "Turret Placement Health, vanilla = 1000": 1500.0, "Aim cone, vanilla = 5": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Auto Turret" }, "midtier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 13, "Bullet Speed, vanilla = 200f": 200.0, "Turret Range, vanilla = 30": 70.0, "Turret Placement Health, vanilla = 1000": 1300.0, "Aim cone, vanilla = 5": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Auto Turret" }, "lowtier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Bullet Speed, vanilla = 200f": 200.0, "Turret Range, vanilla = 30": 50.0, "Turret Placement Health, vanilla = 1000": 1150.0, "Aim cone, vanilla = 5": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Auto Turret" } } }, "Global Sentry Turret": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Can take damage": true, "Give turret back on ground missing check": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Power Requirement, 0 = no power": 10, "Amount of ammo for one spray, 0 = no-ammo mode": 3, "Turret Range, vanilla = 30": 30.0, "Turret Placement Health, vanilla = 1000": 1000.0, "Aim cone, vanilla = 4": 4.0, "Inventory Capacity, Available Ammo Slots, Max = 36": 12, "Skin": 1587601905, "Display Name": "Sentry Turret", "Set Ammo Types, Rifle = 0 | Explosive = 1 | HV = 2 | Incendiary = 3 | SAM = 4 | All = 7": [ 0 ], "Player Sentry Turret Permissions": { "toptier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Can take damage": true, "Give turret back on ground missing check": true, "Max Tool Cupboard Limit, 0 = no limit": 15, "Power Requirement, 0 = no power": 0, "Amount of ammo for one spray, 0 = no-ammo mode": 3, "Turret Range, vanilla = 30": 100.0, "Turret Placement Health, vanilla = 1000": 1500.0, "Aim cone, vanilla = 4": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 36": 12, "Skin": 1587601905, "Display Name": "Sentry Turret", "Set Ammo Types, Rifle = 0 | Explosive = 1 | HV = 2 | Incendiary = 3 | SAM = 4 | All = 7": [ 7 ] }, "midtier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Can take damage": true, "Give turret back on ground missing check": true, "Max Tool Cupboard Limit, 0 = no limit": 13, "Power Requirement, 0 = no power": 3, "Amount of ammo for one spray, 0 = no-ammo mode": 3, "Turret Range, vanilla = 30": 70.0, "Turret Placement Health, vanilla = 1000": 1300.0, "Aim cone, vanilla = 4": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 36": 12, "Skin": 1587601905, "Display Name": "Sentry Turret", "Set Ammo Types, Rifle = 0 | Explosive = 1 | HV = 2 | Incendiary = 3 | SAM = 4 | All = 7": [ 0, 3, 2, 1 ] }, "lowtier": { "Authorize Team": true, "Authorize tc users": true, "Allow placement on Walls / Ceiling using spinners": true, "Can take damage": true, "Give turret back on ground missing check": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Power Requirement, 0 = no power": 6, "Amount of ammo for one spray, 0 = no-ammo mode": 3, "Turret Range, vanilla = 30": 50.0, "Turret Placement Health, vanilla = 1000": 1150.0, "Aim cone, vanilla = 4": 2.0, "Inventory Capacity, Available Ammo Slots, Max = 36": 12, "Skin": 1587601905, "Display Name": "Sentry Turret", "Set Ammo Types, Rifle = 0 | Explosive = 1 | HV = 2 | Incendiary = 3 | SAM = 4 | All = 7": [ 0, 3, 2 ] } } }, "Global Flame Turret": { "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Turret Flame Arc, vanilla = 45": 45.0, "Turret Trigger Duration, vanilla = 5": 5.0, "Turret Flame Range, vanilla = 7": 7.0, "Turret Flame Radius, vanilla = 4": 4.0, "Turret Fuel Per Sec, vanilla = 1": 1.0, "Turret Placement Health, vanilla = 1000": 1000.0, "Inventory Capacity, Available Fuel Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Flame Turret", "Player Flame Turret Permissions": { "toptier": { "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 15, "Turret Flame Arc, vanilla = 45": 45.0, "Turret Trigger Duration, vanilla = 5": 5.0, "Turret Flame Range, vanilla = 7": 100.0, "Turret Flame Radius, vanilla = 4": 4.0, "Turret Fuel Per Sec, vanilla = 1": 1.0, "Turret Placement Health, vanilla = 1000": 1500.0, "Inventory Capacity, Available Fuel Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Flame Turret" }, "midtier": { "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 13, "Turret Flame Arc, vanilla = 45": 45.0, "Turret Trigger Duration, vanilla = 5": 5.0, "Turret Flame Range, vanilla = 7": 70.0, "Turret Flame Radius, vanilla = 4": 4.0, "Turret Fuel Per Sec, vanilla = 1": 1.0, "Turret Placement Health, vanilla = 1000": 1300.0, "Inventory Capacity, Available Fuel Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Flame Turret" }, "lowtier": { "Allow placement on Walls / Ceiling using spinners": true, "Max Tool Cupboard Limit, 0 = no limit": 10, "Turret Flame Arc, vanilla = 45": 45.0, "Turret Trigger Duration, vanilla = 5": 5.0, "Turret Flame Range, vanilla = 7": 50.0, "Turret Flame Radius, vanilla = 4": 4.0, "Turret Fuel Per Sec, vanilla = 1": 1.0, "Turret Placement Health, vanilla = 1000": 1150.0, "Inventory Capacity, Available Fuel Slots, Max = 6": 6, "Skin": 0, "Display Name": "Custom Flame Turret" } } } }$24.99-
- #turret
- #turretmodifier
- (and 15 more)
-
Version 1.0.4
50 downloads
About Limit FPS LimitFPS is a plugin with almost no performance impact meant for administration (and maybe trolling). It has 2 very powerful features You can limit the FPS of other players You can see the FPS and RAM usage of other players Demo Requirement LimitFPS uses Harmony so you need to disable the Oxide sandbox [see how to do it] Permissions There are 2 oxide permissions that LimitFPS uses limitfps.limit.use - Allows the use of /limitfps command limitfps.fps.use - Allows the use of /playerfps command Add the permissions with the console command: oxide.grant <group|user> <name|id> <permission> Commands There are 2 commands that LimitFPS has /limitfps <playername or steamid> <target fps> - Limit the FPS of a player, set target fps to 0 to remove the limit /playerfps <playername or steamid> - See the player's FPS and RAM usage All of these 2 commands can be used from the server console (or RCON) and they work exactly the same just without the forward slash. If you are an admin in the server you can use them from the Rust console too. Config FPS Query interval - How often will the plugin check the player's FPS in order to adjust it PD Controller P value - How fast to jump to the target FPS, if this is too high it can overshoot PD Controller D value - How much to respect the error difference from the FPS measurement, if higher it can overshoot the target FPS Non linear control - If set to true it will be more responsive (reaching target FPS faster) at low FPS values (30 and below) FPS Limit dampening - If set to true it will stop adjusting the player's FPS once it reaches the target, if this is false, when the player presses ESCAPE or ALT+TAB's and then come back their FPS will be way lower/higher than the target FPS Limit dampening range - When the FPS is within this value to the target FPS it will stop adjusting the FPS I recommend leaving everything to default except maybe FPS Query interval, if you want to get the user's FPS faster/slower. For developers LimitFPS exposes everything you need to control other player's performance with hooks & API calls I strongly recommend if you want to use the API or the Hooks see the demo plugin that uses all of them, its extremely detailed and everything is within 1 file, you can find it here: Hooks: object OnFPSQueryStart(BasePlayer command_initiatior, BasePlayer target, int request_id) { return null; // allow the query } void OnFPSQueryTimeout(BasePlayer command_initiatior, BasePlayer target, int request_id) { } void OnFPSQueryFinished(BasePlayer command_initiatior, BasePlayer target, ClientPerformanceReport report) { } object OnLimitFPSStart(BasePlayer command_initiatior, BasePlayer target, float targetFps) { return null; // allow the limitting } object OnLimitFPSTick(BasePlayer command_initiatior, BasePlayer target, float targetFps, ClientPerformanceReport report) { return null; // allow the tick } API: Interface.Oxide.CallHook("API_PlayerFPSCommand", ulong_steamid); Interface.Oxide.CallHook("API_LimitFPSCommand", ulong_steamid, float_targetFps); Contact If you have any suggestions, want to report a bug or need help, you can contact me on Discord: turner#7777$12.69 -
Version 1.1.2
137 downloads
Features: The plugin allows you to control the number of foundations per player (or per clan). You can also customize the number of foundations per player using permissions. Plugin works with Clans (from UMod or Clans REBORN). Also it can be used without the Clans plugin. How it works with the Clans plugin: If a player is in a clan, then he can use the entire clan limit (the clan limit counts the limit of each player), and a certain amount of an additional limit for each player is added to this limit (this percentage can be configured in the config or set to 0, which will disable this function) Commands: playerflimit steamid - show player limit (RCON command) Config: { "SteamID for icon in chat messages": 0, "Command for check limit": "flimit", "Additional foundations for each player (Percentage)": 0.05, "Permission - Limit for foundations(Should go from standard to best)": { "foundationlimits.default": 50, "foundationlimits.vip": 100, "foundationlimits.premium": 200 } } Lang: { "CM_LIMIT": "You have exceeded the limit for building foundations (type /{0})", "CM_LIMITFULL": "Your limit for foundations: <color=red>{0}/{1}</color>", "CM_NOTFULLLIMIT": "Your limit for foundations: <color=green>{0}/{1}</color>" }$5.00- 22 comments
- 1 review
-
- 4
-
- #paid
- #foundation
- (and 6 more)
-
Version 1.0.5
42 downloads
Allows complete individual settings of Beds | Towels | Bags & Campers using Permissions or Global setters with radius & limits! Improves server/client performance by auto-managing players bag limits & radius! You can assign a bed to a friend on your friends list in game & when they join it will give them the invite to join your team to get the bed/bag/towel/etc! Notes: Better Vanish ( the paid version ) has known bugs with chat commands not working while in vanish. To resolve the problem leave vanish mode. Player Chat Commands /bag <Shows just the limits & how many of what you have placed.> /bag bags | towels | beds | campers <Selects & shows how many of the specific bag you have placed down.> /bag towels clear | rename | limits /bag towels clear <Clears all of the selected bag type from the player that ran the command> /bag towels rename dingus <Renames all of the selected bag type to the new name> Configuration { "# of players that can place a spawn point in a zone radius": 16, "Player Respawn Zone Radius Check": 35, "Sets Global Defaults": { "True Only Owner can set name | False Allows team members": false, "Sets Total Max Limit within a radius": 12, "Sets Limit radius": 35, "Sleeping Bags": { "DefaultTextName": "Unnamed Bag", "SecondsBetweenReuses": 300.0, "UnlockTime": 30.0 }, "Towel Bags": { "DefaultTextName": "Unnamed Towel", "SecondsBetweenReuses": 300.0, "UnlockTime": 30.0 }, "Beds": { "DefaultTextName": "Bed", "SecondsBetweenReuses": 120.0, "UnlockTime": 30.0 }, "Camper Bags": { "DefaultTextName": "Unnamed Camper Seat", "SecondsBetweenReuses": 120.0, "UnlockTime": 30.0 } }, "Player Permissions": { "vip1": { "True Only Owner can set name | False Allows team members": false, "Sets Total Max Limit within a radius": 12, "Sets Limit radius": 35, "Sleeping Bags": { "DefaultTextName": "Unnamed Bag", "SecondsBetweenReuses": 150.0, "UnlockTime": 20.0 }, "Towel Bags": { "DefaultTextName": "Unnamed Towel", "SecondsBetweenReuses": 150.0, "UnlockTime": 20.0 }, "Beds": { "DefaultTextName": "Bed", "SecondsBetweenReuses": 60.0, "UnlockTime": 20.0 }, "Camper Bags": { "DefaultTextName": "Unnamed Camper Seat", "SecondsBetweenReuses": 150.0, "UnlockTime": 20.0 } }, "vip2": { "True Only Owner can set name | False Allows team members": false, "Sets Total Max Limit within a radius": 12, "Sets Limit radius": 35, "Sleeping Bags": { "DefaultTextName": "Unnamed Bag", "SecondsBetweenReuses": 75.0, "UnlockTime": 15.0 }, "Towel Bags": { "DefaultTextName": "Unnamed Towel", "SecondsBetweenReuses": 75.0, "UnlockTime": 15.0 }, "Beds": { "DefaultTextName": "Bed", "SecondsBetweenReuses": 30.0, "UnlockTime": 15.0 }, "Camper Bags": { "DefaultTextName": "Unnamed Camper Seat", "SecondsBetweenReuses": 75.0, "UnlockTime": 15.0 } } } }$15.00