Rust.Matrixx2xTrios's Wishlist
-
Auto Base Upgrade
The plugin allows players to automatically improve their buildings with just one button.
Product Features
Does not load your server Does not allow to improve the structure during the raid block Permission to use the plugin functions:
Upgrade - “autobaseupgrade.upgrade”
Repair - "“autobaseupgrade.repair"
Plugin Config
{ "Upgrade cooldown (seconds)": { "autobaseugrade.default": 1.55, "autobaseugrade.vip": 0.55 }, "Cost Modifier for repairs": { "autobaseugrade.default": 1.5, "autobaseugrade.vip": 1.0 }, "Run upgrade effect": true, "AnchorMin": "0.56 0.8", "AnchorMax": "0.7 0.665", "OffsetMin": "293.746 57.215", "OffsetMax": "406.44 77.785" }
-
Referrals
Adds a referral system to the game. Players can invite other players and receive rewards for this.
Commands
referal - open interface promo [promocode] - activate promo code
Permissions
You can set permission in config, for example:
"Permission (example: referrals.use)": "referrals.use",
Hooks
private void OnPromoCodeActivated(BasePlayer player, string promocode)
API
private string GetPromoCode(BasePlayer member) private string GetPromoCode(string member) private string GetPromoCode(ulong member)
Config
{ "Commands": [ "ref", "referal" ], "Commands to activate the promo code": [ "promo", "code" ], "Permission (example: referrals.use)": "", "Work with Notify?": true, "Use auto-wipe?": false, "Promo Code Chars": "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", "Promo Code Length": 8, "Awards": [ { "Invites Amount": 1, "Type": "Item", "ID": 1, "Image": "", "Title": "", "Command (%steamid%)": "", "Plugin": { "Hook": null, "Plugin name": null, "Amount": 0 }, "Display Name (empty - default)": "", "ShortName": "wood", "Skin": 0, "Amount": 20000, "Chance": 70.0 }, { "Invites Amount": 2, "Type": "Item", "ID": 2, "Image": "", "Title": "", "Command (%steamid%)": "", "Plugin": { "Hook": null, "Plugin name": null, "Amount": 0 }, "Display Name (empty - default)": "", "ShortName": "stones", "Skin": 0, "Amount": 15000, "Chance": 70.0 }, { "Invites Amount": 5, "Type": "Item", "ID": 3, "Image": "", "Title": "", "Command (%steamid%)": "", "Plugin": { "Hook": null, "Plugin name": null, "Amount": 0 }, "Display Name (empty - default)": "", "ShortName": "leather", "Skin": 0, "Amount": 2400, "Chance": 55.0 }, { "Invites Amount": 7, "Type": "Item", "ID": 4, "Image": "", "Title": "", "Command (%steamid%)": "", "Plugin": { "Hook": null, "Plugin name": null, "Amount": 0 }, "Display Name (empty - default)": "", "ShortName": "cloth", "Skin": 0, "Amount": 2300, "Chance": 55.0 }, { "Invites Amount": 10, "Type": "Item", "ID": 5, "Image": "", "Title": "", "Command (%steamid%)": "", "Plugin": { "Hook": null, "Plugin name": null, "Amount": 0 }, "Display Name (empty - default)": "", "ShortName": "lowgradefuel", "Skin": 0, "Amount": 1500, "Chance": 50.0 } ] }
FAQ
Item as kit -
Skills
Plugin adds a system of 18+ different skills
Features:
Beautiful user interface Universality (plugin working with different economic plugins) Customization (all interface you can set up in configuration) Performance
Commands
skills - open interface giveallskills name/steamid - give the player every skills at the maximum stage giveskill name/steamid [SkillType] [Stage] [ID - for None] - give the player the skill with the stage skills.convert.olddata - convert from old data skills.wipe - wipe skills removeskill name/steamid [SkillType] [ID - for None] - remove a player's skill skills.permissions.wipe – use it to manually remove permissions from player data
Permissions
skills.bypass - bypass for skills skills.wipe - using the command "skills.wipe"
Skills Types
Wood Stones Metal Sulfur Attack Secure Regeneration Metabolism ComponentsRates StandUpChance CraftSpeed FastOven Kits (works only with the Kits by Mevent plugin) None Cloth Butcher Scrap RecyclerSpeed TransferWipe MixingTableSpeed Gather CraftRates
FAQ
Where can I see an example of a config? Config
How do I set an image to the background? 1. Enter a link to the image in the "Image" field 2. Set "Save Image Color" to true 3. Reload Image Library (oxide.reload ImageLibrary) 4. Reload Skills (oxide.reload Skills) !ATTENTION: The image must not exceed 3 MB Example: https://pastebin.com/cDxiBVrh How to use BankSystem to store the economy "Economy": { "Balance add hook": "Deposit", "Balance remove hook": "Withdraw", "Balance show hook": "Balance", "Plugin name": "BankSystem" }, How to use ServerRewards to store the economy "Economy": { "Balance add hook": "AddPoints", "Balance remove hook": "TakePoints", "Balance show hook": "CheckPoints", "Plugin name": "ServerRewards" }, How to use "Required skills stages"? Config example: "Required skill stages": [ { "Type": "CraftSpeed", "ID": 0, "Stage": 1, "Require the presence of this skill? (otherwise only the stage will be checked)": true } ]
Hooks
CanSkillLearn(BasePlayer player, string skillType, int skillID, int stage) OnSkillLearned(BasePlayer player, string skillType, int skillID, int stage)
-
Raid Protection
The ultimate base protection plugin that allows players to pay a resource in exchange for configurable protection for their base or tugboat. This plugin has been rewritten from the ground up for performance, quality, and integrating community suggested features.
Features
There are many different ways you can configure this plugin to fit the needs of your server. Many features can be modified or disabled entirely through the plugin configuration file. These include:
Both online and/or offline base protection Trade currency for protection or provide it for free Players can turn on/off protection Permission based protection tiers Configure what gets protected and who it is protected from Set limits on how long protection lasts Indicator(s) for displaying base protection Option for allowing raiders to bypass protection if they can drain the protection balance with damage Options for making protection more expensive for larger bases/clans and cheaper for small groups. UI that blends in seamlessly with vanilla Rust. Disclaimer
This plugin will be updated at the owners discretion. Before purchasing any plugin, I recommend checking the date of the last update and refer to support tickets to see if there might be any issues with the latest Rust game version. If a game update breaks this plugin, please open a support ticket (if it doesn't already exist) and direct message me on Discord (link found below).
How to Use
Configure the plugin and load it Once loaded, assign yourself (or your group) one of the protection level permissions. Place a new tool cupboard, or find one that YOU have previously placed. Open the tool cupboard inventory, at the top you should see two tabs: "Upkeep" and "Protection". Select the protection tab to view the raid protection info. On this screen, you will be able to spend the configured currency in order to purchase hours of protection. By default, this currency is scrap. Use the buttons on the right to add some hours of protection, you should see that status change to show the time you are protected. Your base will now be protected for the amount of time specified. Notes
You can use the Clear button to withdraw all balance, and stop protection The Pause/Resume button can be used to start/stop protection without changing the balance. The Info button will reveal a panel which displays additional information on protection. The +Max button will deposit the maximum amount of time that you can afford
Quick Start Presets
There is a lot of documentation for this plugin because there is a lot you can do with it! However, it doesn't have to be complicated. If you have a simple use case in mind, you can use one of these preset configurations to get what you need or use as a starting point without having to figure it out yourself!
Important: You will want to assign your default permission group the raidprotection.level.1 permission for any of these configurations.
Always Free Provides free raid protection for all players with the level 1 permission Protection for tugboat bases Recommended for PvE or light PvP servers Offline Only Same as the default config, but only offers offline protection Has a limit of 48 hours of protection for level 1 Includes a level 2 permission with unlimited hours of protection (VIP) Protection for tugboat bases Recommended for PvP servers Hardcore Offline only protection Two protection levels, one with a 48 hour limit and one with no limit Additional costs that scale with number of owners and building size Raiders can damage a structure and cause it to "bleed" protection balance to attempt to disable the protection with enough damage Significant delay for activating protection No protection for tugboat bases Recommended for hardcore PvP servers Upgrading Versions
When a new version is released, you may need delete your config and lang files and reload them to accommodate the new changes. You do NOT need to delete the data file, unless specifically instructed. As long as you do not delete the data file, then all of your protection balances will persist, even between versions. Not all updates will require this process, but if it does, you will be notified with a message like this:
To resolve this, simply delete the config and lang files and reload the plugin. You will need to manually update these files to align with what you want.
As of v3.4.0 you no longer need to delete your config files when upgrading from a previous version. However, you still should check the config after the update is installed to verify no unintended changes have occurred.
Protection Levels
Protection levels are how you assign a particular set of rules to a player. These protection levels are added in the configuration file, and are then assigned to an auto-generated permission.
Each protection level needs a unique Rank property, this rank determines the order of precedence when a player is assigned multiple protection levels. In this event, a player's protection level will always be the highest ranked protection level they are granted.
Protection levels are managed in the configuration file, here is some information on some of the properties:
Cost per damage protected - This amount will be deducted from the protection balance for each point of damage that was protected. So if this value is set to 1 and someone attempts to deal 100 damage to a protected structure, and that structure has 100% protection, then 100 balance will be deducted. If in that same example it was only 50% protection, then only 50 balance would be deducted. Entity resistances are taken into account as well (twig will take more damage than metal, ect). Hourly base cost - This is a fixed cost that is charged per hour of protection. Hourly cost per authorized player - This amount will be charged for each owner every hour. Can be used to charge players more if they have a larger clan. Hourly cost per floor - This amount will be charged for each floor every hour. Can be used to charge players more for protecting a larger base. Max protection time - The max number of hours protection can be applied for. If set to null, then there will be no limit. Offline protection percent - The percent of protection a structure will receive when all the owners are offline. A value of 0 will be unprotected, and a value of 100 will be fully protected. Online protection percent - The percent of protection a structure will receive when at least one owner is online. A value of 0 will be unprotected, and a value of 100 will be fully protected. Rank - A number value indicating the order of importance when a player is assigned multiple protection ranks. Higher values indicate a greater importance. For example, if a player is assigned both protection rank 1 and protection rank 2, then tool cupboards they place will be of protection rank 2 instead of 1. These ranks must be unique DO NOT create protection levels with the same rank. This value needs to be 1 or higher, it cannot be 0. Delay after taking damage - The number of seconds before protection may begin after a structure has taken unprotected damage. It is recommended to set this to a higher amount on PvP servers. Delay for offline protection - The number of seconds before offline protection kicks in after the last owner has gone offline. It is recommended to set this to a higher amount on PvP servers. Damage resets timer when owner is offline - If this is set to true, then if a raid has already started on a structure that has offline only protection, but the protection hasn't kicked in yet (due to a delay timer) then the attackers can continue to raid indefinitely as long as they continue to do damage while the owner(s) are offline. If this is set to false, then the attackers will only have a certain amount of time to continue their raid if the owner(s) are offline. Allow tugboat protection - If this is set to true, then players with this protection level may receive protection for tugboat bases. For these tugboat bases the protection panel can be accessed in the fuel inventory of the boat. The founder of a tugboat base is whomever is the FIRST player to authorize on a tugboat. Founder Limit - The number of tool cupboards that a player can be a Founder of and receive raid protection. If a player exceeds this limit, then future tool cupboards will not receive protection until enough previously placed ones have been destroyed in order to be within the limit. If a player places a tool cupboard, and they have exceeded the limit, once they are no longer exceeding the limit they can "activate" that tool cupboard in the info panel to have it gain raid protection. If this value is set to null then there is no limit.
Founders and Owners
When a tool cupboard is placed, the player who places it is permanently labeled as the "Founder" of that tool cupboard and building privilege. The protection level of that building privilege is derived soley from the founder's protection level, and therefore won't change unless the founder's protection level changes.
Whenever a player is authorized on a tool cupboard, they will be permanently branded as an "Owner" of that tool cupboard. Owners are all the players, including the founder, who have EVER been authorized on the tool cupboard. This means that players will still be listed as an owner even if they deauthorize themselves. Owners are important because they affect how Online/Offline protection will be triggered. A base will only be granted offline protection if ALL the owners are offline, otherwise online protection (if available) will be granted if at least one owner is online.
For tugboat bases, the founder is whomever is the first player to authorize themselves on the tugboat.
Permissions
raidprotection.admin raidprotection.level.x - these permissions are autogenerated based on your protection level settings in the config, they will show up in the server console when the plugin is loaded (unless you have Enable Console Messages set to false) raidprotection.ignore - raid protection will not count any player with this permission towards being an owner. They will not show up in the owner list and will not count toward team member count for offline protection. They also will not receive protection on bases they build even if they have a protection level assigned. This is useful for admin groups so that you don't have to remember to deauth on tool cupboards. However, if this permission is ever revoked, that player will be retroactively counted as an owner on ALL tool cupboards they are currently authed on.
Commands
Player Commands
These commands require no permissions and can be used by any player.
/pro - displays the raid protection information panel, requires authorization on the tool cupboard in the current area. /lev - displays a screen that tells the player their personal assigned protection level and explains the benefits that comes with it. Admin Commands
These commands require the raidprotection.admin permission to use.
/tc - displays a screen with all the available admin commands /tc help - same as /tc Use the above commands to see a full command list in game.
Configuration
The default config file:
Here is an explanation for some of the fields:
Enable Logging - Set to true to keep logs of tool cupboards protection activity. Logs will be saved to the oxide/logs/RaidProtection folder. It is recommended only to enable this only for debugging purposes, as it will take a significant amount of storage space if you have a larger server. Enable Ledger - Set to true to keep track of protection balance changes for tool cupboard. These ledger files are stored in oxide/data/RaidProtection/Ledgers. It is recommended to keep this enabled, as it will help you roll back balances if a player has an issue. This does not take up as much storage space as logging does as it only keeps track of balances. Enable Console Messages - Set to false to disable the info messages upon plugin reload. Commands - You can change the prefix for the commands this plugin uses here. Chat Message Icon ID - A steam id for the portrait of chat messages. Protection Tabs Offset - This value will adjust the vertical placement of the Protection Tabs in the tool cupboard menu. Positive values will move it up, negative values will move it down. Useful for making it so those tabs don't conflict with other UI plugins that use that area. Image Settings - Links for the images the plugin uses. Indicator Settings - Settings for the indicator that (by default) appears in the top right when you attack a protected structure. You can change its size and position or disable it. Plugin Integration - Set any of these to true if you want this plugin to take advantage of the features of another supported plugin. Custom Status Framework Settings (Ignore if you do not have Custom Status Framework integration enabled) Popup Attack Indicator - If set to true, a status will briefly appear when a player attacks a protected structure. Persistent Status For Owners - If set to true, a status will appear while a player is in a protected area that they are an owner for. Slight performance cost when enabled. Persistent Status For Non Owners - If set to true, a status will appear while a player is in a protected area that they are NOT an owner for. Slight performance cost when enabled. Popup Status When Hammer Equipped - If set to true, a status indicating the protection level of the area they are in will appear while they are holding a hammer. This will appear regardless of if you are an owner of that area or not. Protection Settings Admin owners removed when deauthorized - Normally, you cannot remove an owner even if they deauthorize. But if this setting is enabled, it allows admins to remove themselves as owners when they deauthorize from a tool cupboard. They can also achieve this with commands. Allow balance withdraw - If set to true, then players will see a "Clear" button in the tool cupboard panel that allows them to withdraw any protection balance. Allow max deposit - If set to true, there will be a "+Max" button that will purchase the maximum number of protection hours a player can afford. Award remaining balance when cupboard is destroyed - If set to true, whomever destroys a tool cupboard will be awarded whatever amount was in the protection balance. Currency item - The item that will be used as currency for protection, this will only be overridden if you are using Server Rewards or Economics for your currency. If you want it to be a custom item that has a skin, you can put # followed by the skin id after the item name. For example "scrap#12345" would only accept scrap items with the skin 12345. Protected entities - If any of these are set to true, then that type of entity will be covered under Raid Protection. If you are using other protection plugins like TruePvE, then you will want to configure these to not overlap with what other plugins are protecting. Protected from - If these are set to true, then damage from that type of source will be protected. By default Authed Players is set to false, which means that players will be able to damage their own structures, but enemy players cannot. Protection levels - See the section about protection levels for information. Protect twig - If set to true, then twig building blocks will receive raid protection. If set to false, then twig building blocks will not receive raid protection, even if placed by an owner of the base. Ledgers
As of Raid Protection v3.2.0, you can optionally configure ledgers to be enabled. When enabled, the plugin will keep logs protection balance changes for all tool cupboards. These logs will be saved to oxide/data/RaidProtection/Ledgers. There is a ledger file for each tool cupboard, and it's filename will make the entity ID of that tool cupboard. You can use the /tc id command to see what the ID of a tool cupboard is (see commands section). The benefit of ledgers is that each balance change has a specific GUID identifier attached to it that can be used to restore a tool cupboard's balance to that exact state in the event that a player has an issue. An example of a ledger file might look like this:
Ledger file for tool cupboard with ID 2250729
[ "05/26/2023 16:17:56,ad87f16e-52eb-4689-887f-ecc53cd3ff13,0,Withdraw", "05/26/2023 16:18:20,108e54c0-98c4-46df-9eb3-e17192c37bb3,0,CollectionStopped", "05/26/2023 16:18:23,a2f03162-200c-47ce-948e-b0c703435e51,0,CollectionStarted", "05/26/2023 16:18:28,5c83390e-bbd2-4049-8ec9-8f2951746159,0,Withdraw", "05/26/2023 16:19:29,cd892a3f-249b-4cad-8949-abf904656288,20,Added", "05/26/2023 16:19:31,6e710dfc-23c2-4375-8c4f-07017d4d44c6,40,Added", "05/26/2023 16:19:31,bc51f8c7-3f3a-4abc-8fd2-8bb4c47fe454,60,Added", "05/26/2023 16:20:25,f08cfa34-a623-4de3-9027-7c3acb3e3ec3,60,CollectionStarted", "05/26/2023 16:20:52,a849be59-899c-4779-bba6-2f5f1b0ffb8d,59.93055,CollectionStopped" ] The format of each row goes as follows, from left to right separated by commands.
Date and Time of balance activity GUID identifier, used by the /tc restore command to roll back a balance The protection balance of the tool cupboard at that given time A brief descriptive reason as to what changed about that balance For example, using the ledger file listed above, if we wanted to rollback the tool cupboard to before the collection started (the last "Added" one), we could run the following command.
/tc restore 2250729 bc51f8c7-3f3a-4abc-8fd2-8bb4c47fe454 Running this command will set the balance of the tool cupboard with ID 2250729 back to its balance of 60.
As of v3.2.3 you can also mass restore all tool cupboards to a specific time or date.
For example, using the ledger file listed above, if we wanted to rollback the tool cupboard to the time 16:19:00. We could run the following command.
/tc ledger rollback 16:19 This will rollback ALL TOOL CUPBOARDS to the first ledger entry that comes BEFORE the given time. In this case that entry would be GUID=5c83390e-bbd2-4049-8ec9-8f2951746159 at time 16:18:28 because that is the latest entry before 16:19:00. Thus the balance will be 0.
Rollbacks can also accept a date in addition to a time. For example, if you wanted to rollback to noon the following day you could run the following command.
/tc ledger rollback "5/25/2023 12:00" Notice that there is no ledger entry for this tool cupboard that goes back that far. In this case, the balance of the cupboard will be set to ZERO. Please note that if you include a date and time the value MUST be enclosed in quotes (see the example above).
Tugboat Bases
As of v3.3.0, Raid Protection can optionally be allowed for tugboat bases. This is configurable per protection level. Tugboat bases can utilize all the features of a normal tool cupboard base. You can access the protection panel for tugboat bases in the fuel inventory in the drivers seat. For tugboat bases, the founder of the base is considered to be the FIRST player to authorize on the tugboat.
Plugin Integration
Clans
This plugin provides built-in support for Clans. If a player is in a Clan, it will automatically treat all clan members as owners. This of course means that the owners will not be removed even when a member is kicked from a clan.
True PVE
This plugin is compatible with True PVE as long as both plugins are configured in a non-conflicting way. For example, if you use True PVE to provide protection to players, then in your Raid Protection config file under the Protected entities section you should set Authed Players and Unauthed Players both to false to avoid hook conflict errors. If you do see hook conflicts, see the section of this documentation about how to resolve hook conflict errors.
Zone Manager
This plugin is compatible with ZoneManager without any extra configuration. ZoneManager will take priority if the zone has the "undestr" flag.
Custom Status Framework
If you have CustomStatusFramework installed and want to take advantage of the status indicators (that appear in the bottom right) in your Raid Protection config file under the Plugin Integration section set Custom Status Framework to true.
Simple Status
Simple Status is a plugin that is still being developed, and will be an alternative, more performance friendly option to Custom Status Framework. This plugin is not yet available, but as of v3.4.0, configuration options have been added to support this plugin when it releases.
Preview of indicators:
Economics and Server Rewards
If you wish to use economics balance or server rewards points as a currency instead of an item, you can set ONE of these to true in the plugin integration section of the config. It is important to set ONLY ONE of these to true, or else both will be disabled and you will get a warning in the console.
Protection panel with Economics:
NoDecay
This plugin is compatible with NoDecay without any extra configuration.
Notify
If you want to use Notify as your source of indicators you can enable the flag for it in the Raid Protection config.
Abandoned Bases
If you enable Abandoned Bases in the integration config, then bases that are labeled as Abandoned will not receive raid protection.
Raidable Bases
Bases spawned by Raidable Bases will be ignored by Raid Protection. They should not show up in ledgers and players cannot add balance to them.
Skill Tree
If Skill Tree is enabled in the integration config then it will prevent players with the lockpicking skill from picking locks in raid protected areas.
Other Plugins
Should be compatible with most other plugins given they don't use the onEntityTakeDamage hook. If they do use this hook, it just means you have to change your configuration settings, see the hook conflicts section for more info.
Images
If you experience any issues with the default images provided by this plugin I recommend hosting them yourself. The urls can be changed in the config. Here is a zip file containing all the images.
icons.zip
Carbon
As of 8/19/2023 I can confirm that this plugin is compatible with Carbon. Please open a support ticket if you experience any Carbon related issues.
Hook Conflicts
If you're getting messages in the server console that looks similar to this:
OnEntityTakeDamage resulted in a conflict between the following plugins: NoDecay - True (Boolean), RaidProtection (False (Boolean)) That means that another plugin is conflicting with Raid Protection. In most cases this is an easy fix, and it just means that you need to update your Raid Protection config file to not protect the same entities that another plugin is already protecting. So for example, if you have a plugin already that makes it so player's cannot attack each other, then there is no need for Raid Protection to do that job, and therefore in the Protected entities section of the config you should set Authed players and Unauthed players to false to avoid conflicts.
Previous Versions
You may have seen the free version of this plugin available on uMod. That version (2.X.X) will stay available for free on umod, but is no longer supported.
If you are upgrading from the free version, you must first delete the config/lang/data files before installing v3.0.0 and above. If you do not delete these files, you will likely run into issues, as despite having the same name, the plugin has been completely rewritten, and therefore is completely incompatible with the free version.
Developer API
/* * Returns 0 if entity unprotected and 100 if entity fully protected */ private float GetProtectionPercent(BaseEntity entity) /* * Returns a list of the owners of the structure associated with the given entity */ private List<BasePlayer> GetOwners(BaseEntity entity) /* * Returns the player who is the founder of the structure associated with the given entity. Can be null. */ private BasePlayer GetFounder(BaseEntity entity) /* * Returns the protection balance of the structure associated with the given entity */ private float GetProtectionBalance(BaseEntity entity) /* * Returns the hours of protection remaining of the structure associated with the given entity */ private float GetProtectionHours(BaseEntity entity) Discord
If you want to report a bug, require support, have a suggestion or want to be notified when I release an update you can join my plugin development discord with this link:
Plugin Development Discord Link
Donate
Writing and maintaining these plugins takes a tremendous amount of work. Donating is one way to give some positive feedback which helps me continue making them!
Buy me a coffee here!
FAQ
Please check out this section before opening a support ticket, it may save us both some time!
Q: I don't see the status indicators in the bottom right.
A: The status indicators come from another plugin called CustomStatusFramework, you must install it and enable it in the config file to get the indicators.
Q: I have protection time, but I am able to damage my own structure.
By default "Authed players" are able to damage their own structures. You can change this in the config file.
Q: The add hours buttons aren't showing for me in the tool cupboard panel.
A: The hours buttons will not show if the protection has 0 cost.
Q: I have a max protection time set, but it says "protected for forever"
A: If the protection cost is 0, then there cannot be a max protection time.
Q: I deauthorized myself from the tool cupboard, but I am still listed as an owner.
A: Owners are not removed after deauthorization. Only admins can remove owners.
Q: How are overlapping tool cupboards handled?
A: If a player has a base with overlapping tool cupboards, then each cupboard will need its own protection. Which entities are protected depend upon which tool cupboard governs that entity.
Q: Can player's exploit offline only protection by deauthorizing?
A:Deauthorizing will not help players looking to exploit offline only protection because they will still be considered an Owner even if they deauthorize.
Q: Can a player exploit offline only protection by never authorizing?
A: If a player is never authorized on a cupboard, then they will not count toward being online, and therefore offline protection can occur. However, players cannot add or manage protection balance unless they are authorized, and therefore the protection balance will run out, especially if a max protection time is set.
Q: I have protection for horses on, but now the horses never poop
A: If horses don't lose health, they will never eat and therefore never poop, this is a side effect of protection for horses.
Q: Why does protection say "pending" in the bottom right?
A: Pending either means that you have offline only protection or your structure has recently taken damage and therefore protection is delayed. See the tool cupboard protection panel for more info.
Q: I'm seeing conflict warnings in my console between Raid Protection and True PvE
A: Please refer to the sections of documentation for TruePvE and Hook Conflicts
Q: I'm seeing Image failed to download! Error: HTTP/1.1 429 Too Many Requests
A: Refer to the Images section of the documentation.
- #protection
- #base
- (and 5 more)
-
Skill Tree
By imthenewguy in Plugins
This plugin adds a character progression system to your server in the form of a leveling and skill tree system.
Players gain xp by cutting trees, mining rocks, killing NPCs etc, and are rewarded with skill points when they level up.
These points can be used to unlock perks and buffs across a number of different skill trees.
The plugin is extremely customizable and server owners can change, move, scale or disable any perk to tailor the setup to their server.
It features:
116 unique buff types across 130 skill nodes. 13 unique skill trees. 67+ sources of xp, along with custom xp settings for BotRespawn and NpcSpawn. An extremely large amount of xp options to really tweak the plugin for your server. A functional tree system that prevents unlocking/upgrading of nodes if the player has not invested enough skill points into a tree. Fun & unique ultimate abilities across most trees. Global yield settings for servers that want to run 2x/3x etc. Ability to create custom skill trees and nodes using permissions from other plugins. Considerable amount of options for persistent data through server wipes. A prestige system to reward your most hardcore players. SkillTree allows users to focus on multiple skill trees and unlock nodes in each tree as they level, to make their characters more powerful and unique.
Plugins that work well with Skill Tree
RaidableBases - SkillTree integrates with RaidableBases by rewarding raiders with xp (either handled via SkillTree directly or via RaidableBases directly). The raiding tree can also exclusively work with RaidableBases if servers don't allow raiding. Economics & ServerRewards - integrated as a way to pay for the respec cost. SurvivalArena - Rewards the winner of the event with xp. Cooking - adds new skills to the Cooking tree as well as xp rewards when successfully cooking meals. BotRespawn - Adds additional xp sources for each NPC profile. NpcSpawn - Adds additional xp sources for each NPC profile. UINotify - Shows notifications relevant to leveling etc. ZombieHorde - Provides xp for killing zombies generated by this plugin. LootDefender - Provides the ability for shared xp when killing BradleyAPC. Configured through LootDefender. EpicLoot - Adds a skill to the Scavenging tree FishingHotspots - Allows for modified XP gain while fishing in a hotspot. ZoneManager - Allows you to disable buffs while in a zone.
skilltree.chat - required to use the chat commands to access the skill tree menu. skilltree.xp - required to obtain xp from xp sources. skilltree.tree - required to access and use the skill tree. skilltree.admin - required to use the admin commands. skilltree.all - allows user access to all trees. skilltree.Mining - allows the user to access the mining tree. skilltree.Woodcutting - allows the user to access the woodcutting tree. skilltree.Skinning - allows the user to access the skinning tree. skilltree.Harvesting - allows the user to access the harvesting tree. skilltree.Combat - allows the user to access the combat tree. skilltree.Medical - allows the user to access the medical tree. skilltree.Build_Craft - allows the user to access the build craft tree. skilltree.Scavenging - allows the user to access the scavenging tree. skilltree.Vehicles - allows the user to access the vehicles tree. skilltree.Cooking - allows the user to access the cooking tree. skilltree.bag.keepondeath - prevents the ExtraPockets bag from dropping on death. skilltree.notitles - Removes the level title from the player (Requires BetterChat) skilltree.noxploss - Prevents xp loss. skilltree.roguelike - If enabled via the config, will be required to participate in the Roguelike system. skilltree.teabonus - Ignores the config option preventing the yield increases from working with mining and woodcutting teas. skilltree.noscoreboard - Prevents players with this permission from being added to the scoreboard. skilltree.respec.bypass - removes the cost for respeccing skilltree.togglebc - required to toggle BetterChat titles on/off //Custom permission settings "Modified max skill points based on permissions [must be higher than default]": { "vip": 120 }, "Cost per point to respec based on permissions [must be lower than default]": { "vip": 10.0 }, "Maximum amount of xp a player can lose when they die based on permissions [must be less than default]": { "vip": 500.0 }, "Permissions to adjust xp gain modifiers (skilltree.<perm>) [1.0 is default modifier]": { "vip": 1.2 }, The permission for "vip" would be skilltree.vip Assigning this perm to players would override the default values for the respective settings (max skill points, respec cost, xp gain and xp loss).
Command: st Description: Opens the skill tree menu. Requires skilltree.chat permissions. Command: updatexptable Description: Recalculates the xp table based on the config values. Requires Command: togglexpdrops Description: Toggles the xp popup when obtaining xp. Command: togglexphud Description: Toggles the xp hud on the players screen. Command: givexp Parameters: <name> <amount> <optional: Ignore modifiers true/false> Description: Gives the player matching the name parameter, xp equal to the amount parameter. Ignore modifiers will ignore all forms of xp boosts such as rested xp. Command: givesp Parameters: <name> <amount> Description: Gives the player matching the name parameter, skill points equal to the amount parameter. Command: resetdata Parameters: <name> Description: Resets the target players data. Command: turbo Description: Toggles the turbo on the boat if the player has the relevant perk. Command: togglebc Description: Toggles the BetterChat title on/off for the user. Command: movebar Description: brings up a ui that can be used to relocate the xp bar on the players screen. Command: stresetalldata Description: Resets all players data. Command: sb or score or scoreboard Description: Chat and console command that brings up the scoreboard, showing who has the most xp. Command: sttogglenotifications Description: Toggle notifications from buff triggers. Command: stgiveitem Parameters: <id> <shortname> <quantity> <skin ID> <optional: displayName> Description: gives an item to the target ID that matches the parameters. Console Command: strespecallplayers Description: Resets skills for all online and offline players. Console Command: strespecplayer Parameters: <target name/userID> Description: Resets the target online/offline players skills. Console Command: givexptoall Parameters: <amount> <online only: true/false> Description: Will give the amount of xp to all players. If online only is true, it will only give it to those that are online. Console Command: givesptoall Parameters: <amount> <online only: true/false> Description: Will give the amount of skill points to all players. If online only is true, it will only give it to those that are online. Console Command: stremoveplayerdata Parameters: <userid> Description: Will remove the player data file for the specified userid. Console Command: sttogglebuffs Parameters: <true/false> Description: Disables/enableds buffs globally for all players.
Experience can be gained from a number of different sources. The value for each source can be adjusted via the config.
NodeHit - Hitting a stone, metal or sulfur mining node. NodeHitFinal - Finishing a stone, metal or sulfur mining node. TreeHit - Hitting a tree. TreeHitFinal - Knocking down a tree. SkinHit - Hitting an animal with a skinning tool. SkinHitFinal - Finishing off an animal with a skinning tool. CollectWildPlant - Collecting any map generated collectible, such as hemp, corn, pumpkin, stone, sulfur or metal. CollectGrownPlant - Collecting any player grown produce. BuildingBlockDeployed - Placing down a twig building block. FishCaught - Catching a fish. Crafting - Whenever a craft is successfully completed. XP is calculated based on the duration of the craft. ScientistNormal - Killing a blue scientist. ScientistHeavy - Killing a heavy scientists. SmallAnimal - Killing a small animal such as a chicken. MediumAnimal - Killing a medium animal such as a boar, wolf or stag. LargeAnimal - Killing a large animal such as a horse, shark or bear. Barrel - Destroying barrels. RoadSign - Destroying road signs. Scarecrow - Killing scarecrows or a zombie in ZombieHorde. Mission - Completing a mission in rust. BradleyAPC - Getting the last hit on Bradley. LootHackedCrate - First player to loot a locked crate. LootHeliCrate - First player to loot a heli crate. LootBradleyCrate - First player to loot a bradley crate. CookingMealXP - (Requires cooking plugin) XP is calculated per ingredient used. Example 2 tomatos and 8 bear meat would yield 100xp. RaidableBaseCompletion - Awards raiders of a RaidableBase xp upon the completion of the raid. Win_HungerGames - Awards xp to the winner of the Hunger Games arena. Win_ScubaArena - Awards xp to the winner of the Scuba arena. Win_Skirmish - Awards xp to the winner of the Skirmish arena. Gut_Fish - Awards xp when gutting a fish. default_botrespawn - default amount xp given when killing a bot made using botrespawn. Overriding values can be added to the config based on the bot group. crate_basic - when opening crates crate_elite - when opening crates crate_mine - when opening crates crate_normal - when opening crates carte_normal_2 - when opening crates crate_normal_2_food - when opening crates crate_normal_2_medical - when opening crates crate_tools - when opening crates crate_underwater_advanced - when opening crates crate_underwater_basic - when opening crates crate_ammunition - when opening crates crate_food_1 - when opening crates crate_food_2 - when opening crates crate_fuel - when opening crates crate_medical - when opening crates Harbor_Event_Winner - Winner of the Harbor event plugin Junkyard_Event_Winner - winner of the Junkyard event plugin PowerPlant_Event_Winner - winner of the Power plant event plugin Satellite_Event_Winner - winner of the Satellite event plugin Water_Event_Winner - winner of the Water event plugin Air_Event_Winner - winner of the Air event plugin. Armored_Train_Winner - winner of the Armored train plugin Convoy_Winner - winner of the Convoy event plugin. Supply_drop - first player that opens a supply drop. SurvivalArena_Winner - winning the SurvivalArena event. swipe_card_level_1 - using a green swipe card reader swipe_card_level_2 - using a blue swipe card reader swipe_card_level_3 - using a red swipe card reader boss_monster - killing an NPC from boss monster Zombie - Killing a ZombieHorde zombie UnderwaterDweller NPCs - NPCs in underwater labs JetPilot - JetPilot plugin ArcticBaseEvent_Winner - winner of the Arctic Base Event GasStationEvent_Winner - winner of the Gas Station Event SputnikEvent_Winner - winner of the Sputnik Event detect_diggable - triggered when a metal detector site is dig up. ShipWreckEvent_Winner - winner of the Ship Wreck Event pvp - when a player kills another player (default: off). Triangulation_Winner - winner of the triangulation event Caravan_Winner - winner of the Caravan event SupermarketEvent_Winner - winner of the Supermarket event
Name: Mining Yield Description: Increases the amount of resources gained while mining. Name: Instant Mine Description: Gives the user a chance to instantly mine out a stone, sulfur or metal node. Name: Smelt On Mine Description: Gives the user a chance to smelt some of the ore as its mined from sulfur and metal nodes. Name: Mining Luck Description: Gives the user a chance to obtain items from the Mining luck loot table when they finish mining a node. Name: Mining Tool Durability Description: Decreses the durability loss of mining tools. Name: Woodcutting Yield Description: Increases the amount of resources gained while woodcutting. Name: Instant Chop Description: Gives the user a chance to instantly chop down a tree. Name: Woodcutting Coal Description: Gives the user a chance to obtain some charcoal while woodcutting. Name: Woodcutting Luck Description: Gives the user a chance to obtain items from the Woodcutting luck loot table when they finish cutting down a tree. Name: Woodcutting Tool Durability Description: Decreses the durability loss of woodcutting tools. Name: Skinning Yield Description: Increases the amount of resources gained while skinning. Name: Instant Skin Description: Gives the user a chance to instantly cut up an animal. Name: Skinning Tool Durability Description: Decreases the durability loss of skinning tools. Name: Skinning Cook Description: Gives the user a chance to received cooked meat, instead of raw meat, while skinning an animal. Name: Harvest Wild Yield Description: Increases the yield when harvesting map generated collectibles, such as berries, hemp, stone, sulfur and mushrooms. Name: Harvest Grown Yield Description: Increases the yield when harvesting player grown produce. Name: Extra Fish Description: Gives the user a chance of receiving an extra fish while fishing. Name: Double Bandage Heal Description: Doubles the healing power of cloth bandages. Name: Radiation Reduction Description: Reduces the amount of radiation damage taken by the player. Name: Extra Food Description: Increases the amount of calories the player receives when consuming food. Name: Fire Damage Reduction Description: Reduces the amount of fire damage received. Name: Fall Damage Reduction Description: Reduces the amount of fall damage received. Name: No Cold Damage Description: Removes all cold damage from the player. Name: Wounded Resist Description: Gives the player a chance to get straight back on their feet after entering the wounded state. Name: Animal Damage Resist Description: Reduces the damage taken by animals. Name: Riding Speed Description: Increases the speed of a horse while riding it. Name: Free Bullet Chance Description: Gives the player a chance to not expend a bullet when firing a gun. Name: Primitive Expert Description: Removes durability loss for primitive weapons. Name: Upgrade Refund Description: Gives the player a chance to receive their resources back when upgrading a building block. Name: Craft Speed Description: Increases the crafting speed of a player. Name: Research Refund Description: Gives the player a chance to receive their scrap back when researching an item on the research bench. Name: Craft Refund Description: Gives the player a chance to receive their crafting materials back when crafting an item. Name: Extra Scrap Barrel Description: Gives the player a chance to receive additional scrap when destroying a barrel. Name: Barrel Smasher Description: Allows the player to instantly smash a barrel with any weapon. Name: Extra Scrap Crate Description: Gives the player a chance to obtain extra scrap when looting a crate for the first time. Name: Component Chest Description: Gives the player a chance to obtain additional components when looting a crate for the first time. Name: Electronic Chest Description: Gives the player a chance to obtain additional electronics when looting a crate for the first time. Name: Component Barrel Description: Gives the player a chance to obtain additional components when smashing a barrel. Name: Electronic Barrel Description: Gives the player a chance to obtain additional electronics when smashing a barrel. Name: Melee Resist Description: Reduces the damage taken by melee weapons. Name: Iron Stomach Description: Allows the player to eat spoiled and raw food without being poisoned. Name: Boat Speed Description: Allows the user to activate a turbo boost while on a boat, increasing the boats speed. Name: Recycler Speed Description: Increases the speed of recycling for the player. Name: Smelt_Speed Description: Adds a chance for ore to smelt whenever wood is consumed, in addition to the standard smelt rate. Name: Heli_Fuel_Rate Description: Reduces the fuel consumption for your helicopters. Name: Boat_Fuel_Rate Description: Reduces the fuel consumption for your boats. Name: Vehicle_Mechanic Description: Allows the user to repair a vehicle at no cost. Name: Reviver Description: Brings a wounded player up with additional health if the reviving player has the buff. Name: Rationer Description: Provides the consumer a chance to receive their food/tea back once consumed. Name: PVP_Critical Description: Gives the attacker a chance to critically damage the target in PVP. Name: PVP_Damage Description: Increases the damage of all PVP attacks. Name: PVP_Shield Description: Reduces the damage of all incoming PVP attacks. Name: Metabolism_boost Description: Increases your calories and hydration above the maximum. Name: LootPickup Description: Chance to have the loot from destroyed barrels given moved directly to their inventory. Name: Node_Spawn_Chance Description: Chance to spawn a new node when a new one is mined out. Name: HealthRegen Description: Passively regenerates x health per second Name: AnimalTracker Description: Allows the user to use the /track command to find the direction of the closest animal. Name: ExtraPockets Description: Creates a backpack style storage system, providing players the ability to access the storage using a chat command (/pouch). Slots are given based on points spent. Name: Human_NPC_Damage Description: Increases damages against scientists. Name: Animal_NPC_Damage Description: Increases damages against animals. Name: Human_NPC_Defence Description: Decrease damage from scientist. Name: Craft_Duplicate Description: Chance to duplicate an item while crafting. Name: WaterBreathing Description: Breath underwater. Name: SharkResistance Description: Reduce damage taken from sharks. Name: SharkSkinner Description: Chance to receive random items while skinning sharks. Name: DeepSeaLooter Description: Chance to receive additional items while looting sunken crates. Name: InstantUntie Description: Instantly untie sunken crates. Name: UnderwaterDamageBonus Description: Increase damage to all living things while underwater (including underwater labs). Name: Permission Description: Used for permission based skills. Name: MaxRepair Description: Resets the max condition for any items that are repaired. Name: Durability Description: Reduces condition loss for all items that the player is using. Name: Regrowth Description: Provides a chance for a tree to respawn when cut down. Name: Skinning_Luck Description: Provides a chance to receive an item when skinning an animal. Name: Fishing_Luck Description: Provides a chance to receive an item when catching a fish. Name: Trap_Damage_Reduction Description: Reduces the damage received from traps. Name: Trap_Damage_Increase Description: Increases the damage done to traps. Name: Personal_Explosive_Reduction Description: Reduces the damage received from your own explosives. Name: Double_Explosion_Chance Description: Provides a chance for your explosives to trigger twice. Name: Lock_Picker Description: Provides a chance to open a locked entity that you do not have access to. Name: Explosion_Radius Description: Increases the explosion radius of your explosives. Name: Dudless_Explosive Description: Reduces the chance of your satchels and beancans being duds. Name: Woodcutting_Hotspot Description: Treats each hit on a tree as though you hit the hotspot. Name: Mining_Hotspot Description: Treats each hit on a node as though you hit the hotspot. Name: Extended_Tea_Duration Description: Increases the duration of tea buffs by x% per level. Name: Extended_Mag Description: Increases the magazine capacity of weapons by x% per level. Name: Tea_Looter Description: Provides you with a x% chance per level to find tea in certain containers. Name: Bite_Speed Description: Decreases the time it takes to hook a fish by x% per level. Name: Heli_Speed Description: Increases the max thrust speed of the heli by x% per level. Name: Sonar Description: Allows the user to run a command to find all nearby submerged objects (dive sites, sharks, scientists etc). Name: Comfort Description: Provides the player and all nearby team mates with a % of comfort per level. Name:Heal_Share Description: Provides surrounding team mates with a % of health received per level. Name:XP_Share Description: Provides surrounding team mates with a % of the xp you gain per level. Name: Tea_Share Description: Provides surrounding team mates with a % of tea buffs when you consume tea per level. Name: Metabolism_Share Description: Provides surrounding team mates with a % of hydration and calories received per level. Name: Human_Workbench Description: Creates a workbench aura on the player. The player and nearby team mates can use them as a workbench (the level of which is based on the skill level). Name: Recycler_Efficiency Description: Increases the recycler efficiency by x%. Name: Metal_Detector_Luck Description: Provides the player with a chance per level to obtain an additional item when they excavate metal detection sites. Name: Efficient_Digger Description: Provides the player with a chance per level to automatically dig up metal detection sites when they are flagged. Name: Magnetic_Digger Description: Provides the player with a chance per level to automatically collect dug up items. Name: RadiationBaseValue Description: Provides you with a base radiation resistance of % per level, even when naked. Name: RadiationResistModifier Description: Increases the effectiveness of your clothings radiation resistance by % per level. Name: BikeEnginePower Description: Increases the engine power of all bikes (peddal and motor) by x % per level. Name: DriverCollisionResistance Description: Decreases the damage taken from collisions while driving a vehicle by x% per level. Name: Harvesting_Luck Description: Provides a drop table when a player collects harvesting materials. Grown and wild collectibles have their own loot tables. Name: Awareness Description: This skill will show the nearby location of (configurable): npcs, animals, dropped items, droppted item containers, corpses within x meters. Name: Woodcutting_Ultimate Description: Harvests the surrounding trees when cutting down a tree. Name: Mining_Ultimate Description: Provides access to a chat command to see all surrounding node locations. Name: Combat_Ultimate Description: Heals the player for a percentage of the damage that they deal to all sources. Name: Vehicle_Ultimate Description: Reduces damage dealt to the players mounted vehicle (default 100% deduction). Name: Harvester_Ultimate Description: Allows the player to set the genetic composition of plants. Name: Medical_Ultimate Description: Gives the player a chance to resurrect at their point of death if they choose to. Name: Skinning_Ultimate Description: Killing an animal with this buff active will provide the player with an enhanced ability for a period of time, depending on the animal killed. - Chicken: No fall damage. - Boar: Chance to find components while harvesting mushrooms and berries. - Wolf: Increased healing while near team mates. - Stag: Notification when a neutral player is nearby, and their last known location (configurable). - Bear: Scientists will not attack the player unless attacked. - Polarbear: Overshield. Name: Build_Craft_Ultimate Description: Use any coloured swipe cards in any reader. Name: Scavengers_Ultimate Description: Will automatically recycle components from barrels when they are broken.
The xp table uses a common equation to calculate its levels and xp requirements. You can read more about the method here: https://blog.jakelee.co.uk/converting-levels-into-xp-vice-versa/
There is also a spreadsheet you can make a copy of and adjust the x value at the top of. Increasing the number minimizes the xp between levels. Find a good value, then put it in the "x" value under the "Leveling information" section in the config.
It is recommended that you leave the y value at 2 or 3, and adjust the x value only.
Rule of thumb:
- 0.07: default
- 0.04: grindy.
API
object STCanGainXP(BasePlayer player, BaseEntity source, double value, string source_string) object STCanGainXP(BasePlayer player, string plugin, double value) Returning a non-null value will cancel the xp gain. Source can return null so be sure to check that.
string[] ST_GetPlayerLevel(BasePlayer player) // Example [ChatCommand("testapi")] void TestAPI(BasePlayer player) { var data = (string[])SkillTree.Call("ST_GetPlayerLevel", player); Puts($"Level: {data.First()}. XP: {data.Last()}"); } Returns the players level [0] and xp [1] values as a string[]
object STCanReceiveYield(BasePlayer player, BaseEntity entity) Returning a non-null value will cancel the yield gain.
object STOnLoseXP(BasePlayer player) Returning a non null value prevents the xp loss.
double GetExcessXP(BasePlayer player) Gets the excess xp over the players current level as a double.
RemoveXP(BasePlayer player, double value) Removes xp from the player equal to the value. Will not reduce the value below the start of their current level.
void STOnPlayerLevel(BasePlayer player, int oldLevel, int newLevel); Triggers when a player levels up. No return value.
void STOnPouchOpened(BasePlayer player, StorageContainer pouch) Triggers when a player opens the ExtraPockets storage.
object STCanModifyHorse(BasePlayer player, RidableHorse horse, float modifier) Returning a non-null value will prevent the horse from being modified by the Riding_Speed buff.
public void AddNode(string tree, string node, bool enabled, int max_Level, int tier, float value_Per_Buff, string _buff, string _buffType, string icon_url, object[] _perms = null) object[] perms { string perms_description, Dictionary<int, List<string>> tiers_and_perms } void AddCookingNodeToSkillTree() { if (SkillTree != null && SkillTree.IsLoaded) { Dictionary<int, Dictionary<string, string>> _perms = new Dictionary<int, Dictionary<string, string>>() { [1] = new Dictionary<string, string>() { ["cooking.instant"] = "Instant Cook" } }; string Description = "Cooking food with the Cooking plugin will be instant."; object[] perms = new object[] { Description, _perms }; string Tree = "Cooking"; string Node = "Instant Chef"; bool StartOn = true; int Max_Level = 1; int Tier = 2; float Value_per_Level = 1; string Buff = "Permission"; string BuffType = "Permission"; string URL = "https://i.imgur.com/3TMqFKG.png"; SkillTree.Call("AddNode", Tree, Node, StartOn, Max_Level, Tier, Value_per_Level, Buff, BuffType, URL, perms); } } Allows plugins to add custom nodes to trees.
[HookMethod("IsExtraPocketsContainer")] public object IsExtraPocketsContainer(uint uid) { if (containers.ContainsKey(uid)) return True; return False; } [HookMethod("GetExtraPocketsContainerProvider")] public Func<uint, bool> GetExtraPocketsContainerProvider() { return new Func<uint, bool>(uid => { if (containers.ContainsKey(uid)) return true; return false; }); } [HookMethod("GetExtraPocketsOwnerIdProvider")] public Func<uint, string> GetExtraPocketsOwnerIdProvider() { return new Func<uint, string>(uid => { Containers data; if (containers.TryGetValue(uid, out data)) return data.userIDString; return null; }); } API for extra pockets.
object STCanReceiveBonusLootFromContainer(BasePlayer player, LootContainer container) Prevents buffs from adding loot to containers if returning a non-null value.
object STOnItemRepairWithMaxRepair(Item item) Returning non-null prevents the item bring repaired to max.
object[] GetXPStats(ulong id) Returns object[]: int level, double xp, double current level start xp, double next level start xp.
float GetBuffValue(BasePlayer player, string skill) Returns the current modifier for the specified buff.
void AwardXP(ulong userid, double value, string plugin, bool noMod = false) Provides the player with the specified amount of xp
public void DisableBuffs(ulong id) Disables buffs for a player
public void EnableBuffs(ulong id) Enables buffs for a player
- #leveling
- #progression
- (and 13 more)