Jump to content
Message added by imthenewguy,

1.5.0 contains a patch that will only work from the next forced wipe. It is advised to shut down your server and run this new version after the server has been updated.

16 Screenshots

  • 327.9k
  • 8.1k
  • 911.06 kB

About Skill Tree

OOEU9yx.png

 

 

odiMsyN.png

 

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:

  • 110 unique buff types across 125 skill nodes.
  • 13 unique skill trees.
  • 65+ 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.

 

 

 

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.

//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).

 

BWj9ScD.png

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.

 

lgYAffa.png

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
ShipWreckEvent_Winner - winner of the Ship Wreck Event

 

9sW0oI9.png

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: 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.

 

pGE5klo.png

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

 

  • Like 14
  • Love 14

User Feedback

1.1m

Downloads

Total number of downloads.

5.8k

Customers

Total customers served.

84k

Files Sold

Total number of files sold.

1.6m

Payments Processed

Total payments processed.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.