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 ingame config editor!
PLUG&PLAY PLUGIN, but configs are available to adjust it to your needs
Built in image caching/reading (ImageLibrary is NOT needed) => Place 'xSkillSystem' folder content into '/oxide/data/xSkillSystem/' and reload xSkillSystem Plugin.
Custom Level Rewards (Permissions, Items, Trigger Console Commands, Trigger Events etc.)
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.
Since the new system was quite complex, please understand that it was not added to the ingame config editor yet, it will come by time!
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:
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)
> Each skill has unique XP values, making your path to mastery feel rewarding.
> Ores has different XP table.
> Animals / Player / NPC has different XP table and depends on distance. (BaseXP + (distance *2))
> Each 10th level will trigger a global message.
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)
Eye-Catching UI
Each skill comes with a custom icon, sleek visual panels, XP- and level up popups.
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!
Use /xsscfg to open ingame config (Permission: xskillsystem.config needed)
Use /xssdebug to toggle save debug messages
!! ChatCommands are configurable !!
Plugin Preview:
Ingame Config Editor
Permission needed: xskillsystem.config
Chat Command: /xsscfg
If you configure more aliases for chat commands separate it with a comma in the ingame config. (Example: skills, sk, skz)
Config
{ "ResetDataOnWipe": false, "EnableGatherRateBySkill": false, "GatherRateIncreasePerLevel_Woodcutting": 0.1, "GatherRateIncreasePerLevel_Mining": 0.1, "GatherRateIncreasePerLevel_Skinning": 0.1, "GatherRateIncreasePerLevel_Gathering": 0.1, "MaxGatherRate": 10.0, "PowerToolsXpPercent": 60.0, /* The default value for PowerToolsXpPercent is 60, which means players receive 60% of the normal XP for that skill when using a power tool. Power Tools: chainsaw, krieg chainsword & jackhammer */ "IconURL_Woodcutting": "https://i.ibb.co/21NHVd5w/woodcutting-1.png", "IconURL_Mining": "https://i.ibb.co/nsxwGKdk/mining-1.png", "IconURL_Gathering": "https://i.ibb.co/fYPfZxTR/gathering-1.png", "IconURL_Skinning": "https://i.ibb.co/JW7X2CJF/skinning-1.png", "IconURL_Slayer": "https://i.ibb.co/fYwD7kDZ/slayer-1.png", "IconURL_Crafting": "https://i.ibb.co/J1Kpn2k/crafting-1.png", "IconURL_Building": "https://i.ibb.co/6Rzn2kdk/building.png", "IconURL_Vitality": "https://i.ibb.co/vnJfNX6/vitality.png", "ShowLevelUpPopup": true, "ShowXPPopup": true, "ShowXPPopupIcon": true, "XPPopupDurationSeconds": 1.5, "XPPopupColor": "#e89425", "LevelUpTextColor": "#e89425", "ShowGlobalLevelUpMessage": true, "GlobalMessageColorUsername": "#3bff6e", "GlobalMessageColorLevel": "#3bff6e", "GlobalMessageColorSkill": "#3bff6e", "GlobalMessageColorText": "#3aba5c", "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 }, "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, //Level 1 to 2 you need by default 275 XP, you can change this here. (If changed, delete dataFile) "XPTargetPerLevelIncrease": 85, //XP_Target incremental, e.g. level 2 to 3 will require 360 XP. (Previous TargetXP + 85) "LevelRewards": { "EnableLevelRewards": false, "ShowLevelRewardMessage": true, "LevelRewardCommands": { "Woodcutting": { "5": { "Command": "o.grant user PLAYERID xpermission.use", "RewardMessage": "You received a permission to use '/xpermission' !" }, "15": { "Command": "o.grant user PLAYERID xslowmodechat.vip", "RewardMessage": "You unlocked slow-mode chat VIP!" }, "34": { "Command": "supply.call", "RewardMessage": "You triggered an airdrop event, it can take a while to land..." } }, "Mining": { "5": { "Command": "inventory.giveto PLAYERID wood 1500", "RewardMessage": "You received 1500 wood!" }, "20": { "Command": "env.time 10", "RewardMessage": "You set the server time to 10 o'clock!" }, "26": { "Command": "o.grant user PLAYERID xnullpointer95.use", "RewardMessage": "You unlocked permission xNullPointer, great!" } } } }, "DoubleXPTimes": [ //This default config gives you double xp from Friday 8 p.m. - Sunday 12 p.m. (Double XP Weekend) [UTC TIME +2] { "Day": "Friday", // Valid days: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday "StartHour": 20, // 8p.m. "EndHour": 24 // 12p.m. }, { "Day": "Saturday", "StartHour": 0, "EndHour": 24 }, { "Day": "Sunday", "StartHour": 0, "EndHour": 24 } ] }
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()




DiSCORD