About Skill System
xSkillSystem
xSkillSystem adds an RPG-style leveling experience to your gameplay. Whether you're chopping wood, mining for ores, or battling wildlife, every action earns you XP and helps you level up specialized skills. XP Table was testet properly and it should be fine. There are gather rates impact which are configurable and also a passive HP regen for skill "Vitality" depending on its level which is also configurable. Comes with an external config editor!
» Discord «
PLUG&PLAY PLUGIN, but configs are available to adjust it to your needs
Built in image caching/reading (ImageLibrary is NOT needed) => Automatic skill icons download and placement.
Skills: Each player starts at Level 1 in every skill and levels up through regular gameplay. Here's what you can master:
- Woodcutting – Chop trees. (Configurable Gather Rates depending on Level)
- Mining – Dig deep and extract valuable resources like stone, metal, and sulfur. (Configurable Gather Rates depending on Level)
- Gathering – Pick up natural items from the environment. (Configurable Gather Rates depending on Level)
- Slayer – Hunt animals, kill NPCs and fight players.
- Skinning – Skin downed animals for XP. (Configurable Gather Rates depending on Level)
- Building - Gain XP by building, upgrading, deploying etc.
- Crafting – Gain XP as you build tools, weapons, and other items.
- Vitality - Gain XP by using medical syringes & bandages (Configurable passive HP regen depending on Level)
Custom Level Rewards
v1.1.6 UPDATE
This update introduces a more powerful and customizable reward system for skill level-up's.
Server owners now have full control over level rewards and can assign a specific command and a custom reward message to any level of any skill.
By default level rewards are disabled, you need to enable it "EnableLevelRewards": true
Check config file (You can add as many blocks/rewards as you want. You can also add new skill blocks for other skills this is just the default to get into it):
> PLAYERID = SteamID from Player
> PLAYERNAME = Ingame Displayname
If needed, define a "RevokeCommand" - RevokeCommands will get executed if "ResetDataOnWipe" is set to "true", so, before player saved data gets deleted, the RevokeCommands gets executed.
ShowLevelRewardMessage looks ingame like this if enabled:
Double XP Weekends
Level up twice as fast every Friday evening through Sunday!
> Friday 8p.m. - Sunday 12p.m. (UTC +2)
> See the attached double-xp image (the green arrow up is indicating that the DXP event is running)
Commands
Use /skills to view your current levels and progress.
Use /stats <playername> to view others' skills.
Use /lb to see the leaderboards and find out who's on top!
!! ChatCommands are configurable !!
Plugin Preview (Old preview video, there is already much more):
External Config Editor
Visit Website for the external config editor and load you xSkillSystem.json config file: https://xskillsystem.gg-projects.io/
Config
Config descriptions can be found HERE or in the extern config editor when doing a mousehover over the
icon beside the config text.
{ "GlobalStats": false, "ResetDataOnWipe": false, "ShowSkillsIconAtLeftBottom": true, "EnableGatherRateBySkill": false, "GatherRateIncreasePerLevel_Woodcutting": 0.1, "GatherRateIncreasePerLevel_Mining": 0.1, "GatherRateIncreasePerLevel_Skinning": 0.1, "GatherRateIncreasePerLevel_Gathering": 0.1, "MaxGatherRate": 10.0, "PowerToolsXpPercent": 60.0, "UsePowerTools100PercentWithPermission": false, "ShowLevelUpPopup": true, "ShowXPPopup": true, "ShowXPPopupIcon": true, "XPPopupDurationSeconds": 1.5, "XPPopupColor": "#e89425", "LevelUpTextColor": "#e89425", "ShowGlobalLevelUpMessage": true, "GlobalMessageColorUsername": "#fcb74e", "GlobalMessageColorLevel": "#fcb74e", "GlobalMessageColorSkill": "#fcb74e", "GlobalMessageColorText": "#f08000", "DoubleXPTimesEnabled": true, "Commands": { "Skills": [ "skills" ], "Stats": [ "stats" ], "Leaderboard": [ "lb" ] }, "WoodcuttingXP": { "wood": 25 }, "MiningXP": { "stones": 75, "metal.ore": 150, "sulfur.ore": 175, "hq.metal.ore": 300 }, "SkinningXP": { "skinning": 90 }, "GatheringXP": { "collectible": 725, "selfgrown": 1250 }, "SlayerXP": { "chicken": 25, "boar": 75, "deer": 60, "wolf": 150, "stag": 70, "bear": 250, "default": 100, "crocodile": 850, "snake": 225, "panther": 650, "tiger": 650, "player_and_npcs": 1500 }, "CraftingXP": { "Build": 5, "Items": 2, "Resources": 1, "Clothing": 5, "Tool": 20, "Medical": 12, "Weapon": 18, "Ammo": 8, "Electrical": 6, "Component": 4, "Common": 2 }, "BuildingXP": { "block_place": 20, "upgrade_wood": 25, "upgrade_stone": 40, "upgrade_metal": 60, "upgrade_hqm": 100, "deployable": 15, "electrical": 20, "trap": 30, "turret": 60, "cupboard": 50, "door": 20 }, "VitalityXP": { "EnableXPPopup": true, "EnableHPRegen": false, "XPPerMedicalUse": 20.0, "HPRegenPerLevelPerSecond": 0.01, "MaxHPRegen": 5.0 }, "XPBaseTarget": 275, "XPTargetPerLevelIncrease": 85, "LevelRewards": { "EnableLevelRewards": false, "ShowLevelRewardMessage": true, "AutoClaimRewards": false, "LevelRewardCommands": { "Woodcutting": { "9": { "Command": "o.grant user PLAYERID xpermission.use", "RevokeCommand": "o.revoke user PLAYERID xpermission.use", "RewardMessage": "You received a permission to use '/xpermission' !" }, "15": { "Command": "o.grant user PLAYERID xslowmodechat.vip", "RevokeCommand": "o.revoke user PLAYERID xslowmodechat.vip", "RewardMessage": "You unlocked slow-mode chat VIP!" }, "34": { "Command": "supply.call", "RevokeCommand": "", "RewardMessage": "You triggered an airdrop event, it can take a while to land..." } }, "Mining": { "5": { "Command": "inventory.giveto PLAYERID wood 1500", "RevokeCommand": "", "RewardMessage": "You received 1500 wood!" }, "20": { "Command": "env.time 10", "RevokeCommand": "", "RewardMessage": "You set the server time to 10 o'clock!" }, "26": { "Command": "o.grant user PLAYERID xnullpointer95.use", "RevokeCommand": "o.revoke user PLAYERID xnullpointer95.use", "RewardMessage": "You unlocked permission xNullPointer, great!" } } } }, "DoubleXPTimes": [ { "Day": "Friday", "StartHour": 20, "EndHour": 24 }, { "Day": "Saturday", "StartHour": 0, "EndHour": 24 }, { "Day": "Sunday", "StartHour": 0, "EndHour": 24 } ] }
Permissions
xskillsystem.powertools100%
- Purpose: Allows players to receive 100% XP from power tools (chainsaw, jackhammer and krieg chainsword).
- Used only if UsePowerTools100PercentWithPermission = true in the config.
- Without this permission, power tools give reduced XP based on PowerToolsXpPercent.
Language
{ "Prefix": "<color=orange>[xSkillSystem]</color> ", "Cmd_Stats_Usage": "Usage: /stats <playername>", "Cmd_Stats_PlayerNotFound": "No player found matching '{0}'.", "Cmd_Stats_NoSkillData": "That player has no skill data yet.", "Rewards_NoneConfigured": "<color=red>No level-up rewards configured or level-up rewards disabled.</color>", "Rewards_NeedLevelToClaim": "<color=#f5ac02>You need level <color=#e3bb5f>{0}</color> in <color=#e3bb5f>{1}</color> to claim this reward.</color>", "Rewards_AlreadyClaimed": "<color=red>You already claimed the level {0} reward for {1}.</color>", "Rewards_AutoClaimed": "» <color=#f5ac02>Level reward automatically claimed!</color>\n» <color=#f5ac02>Skill: <color=#e3bb5f>{0}</color> | Level <color=#e3bb5f>{1}</color></color>\n» <color=#f5ac02>Reward: <color=#e3bb5f>{2}</color></color>", "Rewards_ClaimedManually": "» <color=#f5ac02>Level reward for achieving level <color=#e3bb5f>{0}</color> in <color=#e3bb5f>{1}</color></color>!\n» <color=#f5ac02>Reward: <color=#e3bb5f>{2}</color></color>", "UI_Rewards_Title_LevelRewards": "» Lᴇᴠᴇʟ Rᴇᴡᴀʀᴅs «", "UI_Rewards_Title_Rewards": "» Rᴇᴡᴀʀᴅs «", "UI_Rewards_Header_Skill": "Skill", "UI_Rewards_Header_Claim": "Claim", "UI_Rewards_Header_Level": "Level", "UI_Rewards_Header_Message": "Reward Message", "UI_Reward_ClaimButton": "CLAIM", "UI_Reward_ClaimedButton": "CLAIMED", "UI_Leaderboard_Header_Name": "Name", "UI_Leaderboard_Header_Rank": "Rank", "UI_Leaderboard_Header_Level": "Level", "UI_Skills_Title": "Sᴋɪʟʟs", "UI_Skills_Woodcutting": "» Wᴏᴏᴅᴄᴜᴛᴛɪɴɢ «", "UI_Skills_Mining": "» Mɪɴɪɴɢ «", "UI_Skills_Gathering": "» Gᴀᴛʜᴇʀɪɴɢ «", "UI_Skills_Slayer": "» Sʟᴀʏᴇʀ «", "UI_Skills_Skinning": "» Sᴋɪɴɴɪɴɢ «", "UI_Skills_Building": "» Bᴜɪʟᴅɪɴɢ «", "UI_Skills_Crafting": "» Cʀᴀғᴛɪɴɢ «", "UI_Skills_Vitality": "» Vɪᴛᴀʟɪᴛʏ «", "UI_SkillLabel_GatherRate": "Gᴀᴛʜᴇʀ Rᴀᴛᴇ", "UI_SkillLabel_HPRegen": "HP Rᴇɢᴇɴ", "UI_Healing": "Hᴇᴀʟɪɴɢ...", "GlobalLevelUpMessage": "<color={0}>{1}</color> <color={2}>has reached</color> <color={3}>level {4}</color> <color={2}>in</color> <color={5}>{6}</color><color={2}>!</color>" }
API
// Gives a player a specific amount of XP in a specific skill. Valid Skills: Woodcutting, Mining, Gathering, Slayer, Skinning, Crafting public void GiveXP(BasePlayer player, string skillName, ulong amount) // Returns a specific skill level of a player public int GetSkillLevel(BasePlayer player, string skillName) // Returns the current XP amount of a specific skill level for a player public ulong GetSkillXP(BasePlayer player, string skillName) // Sets a level for a specific skill of a player (Considers XP & XP_Target) public void SetSkillLevel(BasePlayer player, string skillName, int level) // Resets a specific skill level of a player public bool ResetPlayerSkill(BasePlayer player, string skillName) // Resets all skill levels of a player public void ResetAllSkills(BasePlayer player) // Returns if the double xp weekend is currently running (true or false) public bool IsDoubleXPWeekend()

