FreeRPG [1.15-1.16.1] 1.1.1

An RPG plugin that adds skills, leveling, abilities, and more!

  1. suppusmac
    FreeRPG is a spigot 1.15+ plugin that adds an RPG skill system to minecraft. Inspired by Mcmmo, the goal of FreeRPG is to offer a free Mcmmo alternative. Each skill has a skill tree, with an additional global skill tree. The skill trees can be accessed with a very simplistic, Hypixel inspired GUI accessed using /freeRPG.

    FreeRPG Graphic (2).png

    Getting Started:

    To install on any spigot server, simply drag the FreeRPG.jar file into the plugins folder.

    To get started playing, type "/frpg". This will bring up the Skills GUI seen in the top screenshot. Clicking on any of the icons will take you to that skill's skill tree. Hovering over any of the icons or clicking on them will tell you more about the perk.

    Earning experience is straightforward, mine to get mining experience, cut trees to get woodcutting experience, etc. By the default config, every level you will gain 1 passive token which can be invested in the passive skills represented by the dyes on the left. Every 100 levels, you will gain 1 skill token which can be invested in the skills represented by the terracotta skill tree. Every 1000 levels, you will gain a global token that can be used in the global skill tree.

    To activate abilities, in most cases you can right click the corresponding tool then break a block. The 10 abilities are as follows:

    Big Dig: Activated by right clicking a shovel then breaking a block. Increases dig speed drastically.
    Timber: Activated by right clicking an axe then cutting a log. Will cause all logs above to break.
    Berserk Pick: Activated by right clicking a pickaxe then breaking a block. Will increase mining speed drastically.
    Natural Regeneration: Activated by right clicking a hoe then breaking a crop. Automatically replants all crops at a random growth stage.
    Super Bait: Activated by left clicking a fishing rod then fishing. Fish are instantly pulled out of the water, without waiting to get a bite.
    Rapid Fire: Activated by left clicking a bow. Arrow shots come out at maximum speed no matter how far the bow is pulled back.
    Spur Kick: Activated by right clicking most items while on a horse then left clicking most items. Grants your horse a temporary speed boost.
    Swift Strikes: Activated by right clicking a sword then hitting an entity. Your swings no longer have a cooldown.
    Stone Solid: Activated by right clicking with an empty hand then hitting an entity. Grants resistance at the cost of being slowed down.
    Great Axe: Activated by right clicking an axe then hitting an entity. Your attacks become an AOE strike that deals damage in a certain radius.

    Player Features:
    • Intuitive experience gain
    • 3 different token types to be invested in each skill tree
    • Tree Feller as an ability
    • Fishing system completely reworked, with many new drops
    • A grappling hook perk
    • New potion recipes, such as Haste and Resistance
    • Leaves drop table expanded
    • Custom crafting recipes for mob eggs
    • Custom crafting recipes for tipped arrows, without requiring dragon's breath
    • Ability to check horse stats
    • Much more detailed in the information page
    Admin Features:
    • Experience curve tweaking
    • Experience amount tweaking
    • Ability to tweak how often players receive tokens
    • Ability to modify drop items and rates
    • Permissions for earning exp, using abilities, and every command
    • Ability to set level caps
    • More to come soon...
    Config, Permissions and Use:
    config.yml download
    Code (Text):

      playerBaseHP: 20.0 #Amount of
      defaultLanguage: enUs #Current Choices: enUs, huHu, frFR
      allowCustomExplosions: true
      allowBuild: true
      allowPvP: true
      allowHurtAnimals: true
      saveStatsTimer: 900 #Number of seconds between each time the server saves all player stats
    multipliers: #EXP multipliers, global STACKS with any other multiplier
      globalMultiplier: 1.0
      diggingMultiplier: 1.0
      woodcuttingMultiplier: 1.0
      miningMultiplier: 1.0
      farmingMultiplier: 1.0
      fishingMultiplier: 1.0
      archeryMultiplier: 1.0
      beastMasteryMultiplier: 1.0
      swordsmanshipMultiplier: 1.0
      defenseMultiplier: 1.0
      axeMasteryMultiplier: 1.0
      repairMultiplier: 1.0
      agilityMultiplier: 1.0
      alchemyMultiplier: 1.0
      smeltingMultiplier: 1.0
      enchantingMultiplier: 1.0
      automaticPassiveUpgradesPerLevel: 1.0 #Number of passive tokens gained per level
      levelsPerPassiveToken: 1.0 #Number of levels required before a passive token is earned (ex. 0.5 --> 2 passive tokens per level)
      levelPerSkillToken: 100.0 #Number of levels required before a skill token is earned
      levelsPerGlobalToken: 1000.0 #Number of levels required before a global token is earned
      startingPassiveTokens: 0 #Starting tokens for newly joining players...
      startingSkillTokens: 0
      startingGlobalTokens: 0
      skillTokenToPassiveTokenConversion: 50 #When a skill tree is maxed, skill tokens will convert to passive tokens automatically at this exchange rate
      globalTokenToEXPbuff: 0.01 #When the global tree is maxed, Players will gain a +1% global exp boost instead of a token (ex. 0.05 --> +5% global exp boost per global token)
      startingSouls: 0
      refundCost: 250
      # Use this link to visualize the EXP curve and test parameters:
      maxLevel: -1
      exponentialGrowthFactor: 1.001595
      exponentialReferenceLevel: 1000
      exponentialReferenceEXP: 10000000.0
      levelBeginLinear: 1000
      LinearEXPperLevel: 20000.0
      maxLevel: -1
        drop1Name: glowstone_dust
        drop1Amount: 1
        drop2Name: gold_nugget
        drop2Amount: 1
        drop3Name: string
        drop3Amount: 1
        drop4Name: iron_nugget
        drop4Amount: 1
        drop5Name: cobweb
        drop5Amount: 1
        drop6Name: gold_ingot
        drop6Amount: 1
        drop7Name: name_tag
        drop7Amount: 1
        drop8Name: music_disc_null
        drop8Amount: 1
        drop9Name: horse_armor_null
        drop9Amount: 1
        drop10Name: diamond
        drop10Amount: 1
        drop10BaseChance: 0.0025
        drop11Name: emerald
        drop11Amount: 1
        drop11BaseChance: 0.00229
        drop12Name: enchanted_book
        drop12Amount: 1
        drop12BaseChance: 0.001275
        drop13Name: dragon_breath
        drop13Amount: 1
        drop13BaseChance: 0.00835
        drop14Name: totem_of_undying
        drop14Amount: 1
        drop14BaseChance: 0.0025
        drop15Name: nether_star
        drop15Amount: 1
        drop15BaseChance: 0.001
      maxLevel: -1
        leavesDrop1Name: feather
        leavesDrop1Amount: 1
        leavesDrop1Chance: 0.02
        leavesDrop2Name: gold_nugget
        leavesDrop2Amount: 1
        leavesDrop2Chance: 0.02
        leavesDrop3Name: golden_apple
        leavesDrop3Amount: 1
        leavesDrop3Chance: 0.0025
        leavesDrop4Name: experience_bottle
        leavesDrop4Amount: 1
        leavesDrop4Chance: 0.0075
        leavesDrop5Name: enchanted_golden_apple
        leavesDrop5Amount: 1
        leavesDrop5Chance: 0.0005
      maxLevel: -1
      maxLevel: -1
      maxLevel: -1
        tier1_baseChance: 0.045
        tier2_baseChance: 0.025
        tier3_baseChance: 0.015
        tier4_baseChance: 0.010
        tier5_baseChance: 0.005
        tier1_drop1Name: ender_pearl
        tier1_drop1Amount: 1
        tier1_drop1Random: 0
        tier1_drop1Name_HotRod: fire_charge
        tier1_drop1Amount_HotRod: 3
        tier1_drop1Random_HotRod: 0
        tier1_drop2Name: ghast_tear
        tier1_drop2Amount: 1
        tier1_drop2Random: 0
        tier1_drop2Name_HotRod: blaze_powder
        tier1_drop2Amount_HotRod: 1
        tier1_drop2Random_HotRod: 0
        tier1_drop3Name: gold_ingot
        tier1_drop3Amount: 1
        tier1_drop3Random: 0
        tier1_drop4Name: iron_ingot
        tier1_drop4Amount: 1
        tier1_drop4Random: 0
        tier1_enchantedArmor: 1
        tier2_drop1Name: wet_sponge
        tier2_drop1Amount: 3
        tier2_drop1Random: 0
        tier2_drop1Name_HotRod: sponge
        tier2_drop1Amount_HotRod: 1
        tier2_drop1Random_HotRod: 0
        tier2_drop2Name: emerald
        tier2_drop2Amount: 1
        tier2_drop2Random: 0
        tier2_drop3Name: slime_ball
        tier2_drop3Amount: 1
        tier2_drop3Random: 0
        tier2_drop3Name_HotRod: magma_cream
        tier2_drop3Amount_HotRod: 1
        tier2_drop3Random_HotRod: 0
        tier2_drop4Name: ender_pearl
        tier2_drop4Amount: 2
        tier2_drop4Random: 3
        tier2_drop4Name_HotRod: fire_charge
        tier2_drop4Amount_HotRod: 2
        tier2_drop4Random_HotRod: 3
        tier2_enchantedArmor: 1
        tier3_drop1Name: music_disc_null
        tier3_drop1Amount: 1
        tier3_drop1Random: 0
        tier3_drop2Name: spectral_arrow
        tier3_drop2Amount: 5
        tier3_drop2Random: 10
        tier3_drop3Name: chainmail_null
        tier3_drop3Amount: 1
        tier3_drop3Random: 0
        tier3_drop4Name: trident
        tier3_drop4Amount: 1
        tier3_drop4Random: 0
        tier3_enchantedArmor: 1
        tier4_drop1Name: diamond
        tier4_drop1Amount: 1
        tier4_drop1Random: 0
        tier4_drop2Name: nautilus_shell
        tier4_drop2Amount: 2
        tier4_drop2Random: 2
        tier4_drop3Name: emerald
        tier4_drop3Amount: 3
        tier4_drop3Random: 5
        tier4_drop4Name: crossbow_enchanted_null
        tier4_drop4Amount: 1
        tier4_drop4Random: 0
        tier4_enchantedArmor: 1
        tier5_drop1Name: elytra
        tier5_drop1Amount: 1
        tier5_drop1Random: 0
        tier5_drop2Name: heart_of_the_sea
        tier5_drop2Amount: 1
        tier5_drop2Random: 0
        tier5_drop3Name: totem_of_undying
        tier5_drop3Amount: 1
        tier5_drop3Random: 0
        tier5_drop4Name: diamond
        tier5_drop4Amount: 1
        tier5_drop4Random: 0
        tier5_enchantedArmor: 1
      maxLevel: -1
      maxLevel: -1
      maxLevel: -1
      maxLevel: -1
      maxLevel: -1
      maxLevel: -1
      maxLevel: -1
      maxLevel: -1
      maxLevel: -1
      maxLevel: -1
    Code (Text):

        description: Gives access to all FreeRPG commands
        default: op
          freeRPG.standardPlayer: true
          freeRPG.GUI: true
          freeRPG.changeStats: true
          freeRPG.getEXP: true
          freeRPG.useAbilities: true
        description: Grants the player all recommended permissions (for a common player)
        default: true
          freeRPG.GUI: true
          freeRPG.getEXP: true
          freeRPG.getSouls: true
          freeRPG.useAbilites: true
          freeRPG.canRepair: true
          freeRPG.canSalvage: true
          freeRPG.leaderboard: true
          freeRPG.toggles: true
        description: Gives access to all GUI commands
        default: true
          freeRPG.mainGUI: true
          freeRPG.configGUI: true
          freeRPG.craftGUI: true
          freeRPG.confirmGUI: true
          freeRPG.skillsGUI: true
        description: gives access to all toggle commands
        default: true
          freeRPG.toggleFlint: true
          freeRPG.toggleSpeed: true
          freeRPG.togglePotion: true
          freeRPG.toggleFlamePick: true
          freeRPG.toggleGrapple: true
          freeRPG.toggleHotRod: true
          freeRPG.toggleVeinMiner: true
          freeRPG.toggleMegaDig: true
        description: Gives access to all stat changing commands
        default: op
          freeRPG.giveEXP: true
          freeRPG.setLevel: true
          freeRPG.statReset: true
          freeRPG.setSouls: true
          freeRPG.setTokens: true
          freeRPG.saveStats: true
          freeRPG.setMultiplier: true
        description: Allows player to gain every type of EXP
        default: true
          freeRPG.diggingEXP: true
          freeRPG.woodcuttingEXP: true
          freeRPG.miningEXP: true
          freeRPG.farmingEXP: true
          freeRPG.fishingEXP: true
          freeRPG.archeryEXP: true
          freeRPG.beastMasteryEXP: true
          freeRPG.swordsmanshipEXP: true
          freeRPG.defenseEXP: true
          freeRPG.axeMasteryEXP: true
          freeRPG.repairEXP: true
          freeRPG.agilityEXP: true
          freeRPG.alchemyEXP: true
          freeRPG.smeltingEXP: true
          freeRPG.enchantingEXP: true
        description: allows the player to use all skill abilities
        default: true
          freeRPG.diggingAbility: true
          freeRPG.woodcuttingAbility: true
          freeRPG.miningAbility: true
          freeRPG.farmingAbility: true
          freeRPG.fishingAbility: true
          freeRPG.archeryAbility: true
          freeRPG.beastMasteryAbility: true
          freeRPG.swordsmanshipAbility: true
          freeRPG.defenseAbility: true
          freeRPG.axeMasteryAbility: true
        description: allows user to access main GUI with all skills
        default: true
        description: allows user to access a skill's GUI (skill tree)
        default: true
        description: allows user to access the configuration GUI
        default: true
        description: allows user to access the GUI that shows crafting recipes
        default: true
        description: allows user to access the cofirmation GUI when refunding skills
        default: true
        decription: Allows the user to access the link to the info google document
        default: true
        description: Allows the user to see all FreeRPG commands
        default: true
        description: Allows the user to access the leaderboard command, showing the user the top players in each skill
        default: true
        descriptin: Allows the user to access the enchant item command
        default: op
        decription: Allows the user to give FreeRPG experience to any other player, including themselves
        default: op
        description: Allows the user to set the FreeRPG skill level of any skill for any player
        default: op
        description: Allows the user to reset any FreeRPG skill of any player
        default: op
        description: Allows the user to set any player's personal EXP multiplier
        default: op
        description: Allows player to get digging experience
        default: true
        description: Allows player to get woodcutting experience
        default: true
        description: Allows player to get mining experience
        default: true
        description: Allows player to get farming experience
        default: true
        description: Allows player to get fishing experience
        default: true
        description: Allows player to get archery experience
        default: true
        description: Allows player to get beastMastery experience
        default: true
        description: Allows player to get swordsmanship experience
        default: true
        description: Allows player to get defense experience
        default: true
        description: Allows player to get axeMastery experience
        default: true
        description: Allows player to get repair experience
        default: true
        description: Allows player to get agility experience
        default: true
        description: Allows player to get alchemy experience
        default: true
        description: Allows player to get smelting experience
        default: true
        description: Allows player to get enchanting experience
        default: true
        description: allows the player to use the digging ability
        default: true
        description: allows the player to use the woodcutting ability
        default: true
        description: allows the player to use the mining ability
        default: true
        description: allows the player to use the farming ability
        default: true
        description: allows the player to use the fishing ability
        default: true
        description: allows the player to use the archery ability
        default: true
        description: allows the player to use the beast mastery ability
        default: true
        description: allows the player to use the swordsmanship ability
        default: true
        description: allows the player to use the defense ability
        default: true
        description: allows the player to use the axe mastery ability
        default: true
        description: allows player to use iron blocks to repair
        default: true
        description: allows player to use gold blocks to salvage
        default: true
        description: players with this permission will use freeRPG's changed fishing system
        default: true
        description: allows player to set other players (including themselves) soul stat
        default: op
        description: allows player to set other players (including themselves) token stats (global, skill, passive)
        default: op
        description: allows player to earn souls after unlocking the Soul Harvest Perk
        default: true
        description: allows to player to toggle the flint finder perk
        default: true
        description: allows to player to toggle the graceful feet perk
        default: true
        description: allows to player to toggle the potion master perk
        default: true
        description: allows to player to toggle the flame pickaxe perk
        default: true
        description: allows to player to toggle the grappling hook perk
        default: true
        description: allows to player to toggle the hot rod perk
        default: true
        description: allows to player to toggle the vein miner perk
        default: true
        description: allows to player to toggle the mega dig perk
        default: true
        description: allows player to save any or all player's stats to their stat file
        default: op
    basePlayerHP is the double value of the default player's HP. If for some reason you alter player's starting HP, change this value accordingly. This is only used in the "Hearty" Perk in the Defense skill. Changing this value will NOT change the default value of players total HP. It is simply a reference value.

    Multipliers change how much experience is earned for performing actions under each skill. For example, setting "diggingMultiplier" to 0.9 will cause ALL PLAYERS to earn 90% of base digging experience. In the future, I want every experience drop to be customizable.

    levelBefore_x_Token can be modified to change how many levels are required to earn each token type. These can be made any decimal value and should round accordingly.
    starting_x_Tokens are the tokens each new player starts with. This value is best set when initially installing the plugin.


    Here is an interactive Graph to assist in editting the leveling config:
    Desmos Graphing

    MaxLevel is currently not functioning, changing the value will do nothing.

    The leveling system is an exponential curve that switches to linear at level 1000 by default. The experience threshold for each level is given by:
    where B is exponentialGrowthFactor.

    The plugin determines an exponential curve that goes through two points:
    (level, experience) = (0,0)
    (level, experience) = (level reference, experience reference)
    This uniquely determines an exponential curve, the curve is replace with a linear growing experience curve at any point defined by levelBeginLinear. After this level, it will take LinearEXPperLevel's value in experience to level up. By default, the curve is exponential for the first 1000 levels, and becomes linear after that.

    This equation can be tweaked to the server administrator's liking. For solely linear growth, set levelBeginLinear to 1000.

    Drop tables can also be changed in the config. The name should match the minecraft id name. It should not be case sensitive. Any items with "null" at the end of them are specialty (enchanted, a random music disc, etc.).

    /frpg or /frpg skills - Opens skills GUI
    /frpg globalGUI - manually opens the global skill tree GUI
    /frpg skillTreeGUI [skillName] - manually opens a skill tree GUI
    /frpg configurationGUI - manually opens the configuration GUI

    /frpg expGive [playerName] [skillName] [amount] - gives any player experience in any skill
    /frpg setStatLevel [playerName] [skillName] [newLevel] - sets the skill level for any skill of a player
    /frpg statReset [playerName] [skillName] - resets a skill for a given player (this will not refund any tokens or experience)
    /frpg setSouls [playerName] [amount] - Sets the amount of souls a player has
    /frpg setTokens [playerName] [skillName] [skill/passive] [amount] OR
    /frpg setTokens [playerName] global [amount]
    - sets the amount of tokens a player has in a particular stat
    /frpg saveStats [playerName] OR /frpg saveStats - saves a singular player or all players' stats to their stat file. Will update the leaderboard
    /frpg setMultiplier [playerName] [multiplier] - Sets the amount of souls a player has

    /frpg flintToggle - manually toggles the "flint finder" perk
    /frpg speedToggle - manually toggles the "graceful feet" perk
    /frpg potionToggle - manually toggles the "potion master" perk
    /frpg flamePickToggle - manually toggles the "flame pick" perk
    /frpg grappleToggle - manually toggles the "grappling hook" perk
    /frpg hotRodToggle - manually toggles the "hot rod" perk
    /frpg veinMinerToggle - manually toggles the "vein miner" perk
    /frpg megaDigToggle - manually toggles the "mega dig" perk

    /frpg statLeaders [skillName] [page #] - produces list of highest level players in a particular stat
    /frpg enchantItem [level] - tries to enchant an item in your hand with a given enchantment level
    /frpg help [page #] - displays all the information above in game
    /frpg info - sends the player a message with a link to a google doc that outlines every skill and general mechanics

    FreeRPG should be compatible with most popular plugins. It has been tested with Essentials, Bssentials, World Edit, and Worldguard and yielded no issues. It has additionally been tested with Multiverse and has no major issues. However, player profiles for different worlds is not possible at the moment.

    Open Source:

    FreeRPG is an open source project. Anyone is welcome to view, use, or re-purpose the (poorly, self written) java on the github project page.

    Aoro, lokka30 and STN-Studios like this.

Recent Updates

  1. Languages and Bug Fixes
  2. Translation Framework and Better Compatability
  3. See last update

Recent Reviews

  1. MitoMadness
    Version: 1.0.8
    Fantastic plugin, with wonderful support behind it. Highly recommend downloading!
    1. suppusmac
      Author's Response
      Thanks for the review!
  2. wutong10086
    Version: 1.0.8
    Great high version RPG plugin with amazing support, looking forward to more updates
    1. suppusmac
      Author's Response
      Thanks for the review!
  3. WindowsXD
    Version: 1.0.8
    Brilliant plugin. The developer is friendly and is constantly working to make the plugin work 10/10.
    1. suppusmac
      Author's Response
      Thanks for the review!
  4. officialelex
    Version: 1.0.8
    Amazing plugin. Such a great idea to add skill trees; it makes it more fun! Also, great support by the developer! 11/10
    1. suppusmac
      Author's Response
      Thanks for the review!
  5. Agamer199
    Version: 1.0.7
    This is a great plugin! I really enjoy how you can edit the scaling of levels and level caps. My issue with this plugin is the lack of customization, I think it would be great if you could edit more variables like passive ability scaling and stuff like that. I also think it would be nice to have expanded skill trees in the future!
    1. suppusmac
      Author's Response
      Thanks for the review!

      More customization is on the road map. You can edit the rate at which all passive abilities change by changing the following variables in the config:

      automaticPassiveUpgradesPerLevel: 1.0
      levelsPerPassiveToken: 1.0

      However, customization of specific passive skills (such as just double drops for mining) is not supported yet.

      If I am to expand any of the skill trees, it would likely be after the plugin is fairly established. So those may be farther in the future.
  6. kirokp
    Version: 1.0.7
    This plugin is great! I especially like the fishing perks. 10/10 would recommend.
    1. suppusmac
      Author's Response
      Thanks for the review!
  7. Chopparen
    Version: 1.0.7
    The plugin doesnt work since last update. The plugin isnt useable it disables itself. Can you fix this ASAP? Please! (commands don't work!)
    1. suppusmac
      Author's Response
      Hi, thanks for the review!

      I made some changes to the config that will result in the plugin not starting up if you don't have the correct config file. If you're missing "defaultLanguage" under "general:" in config.yml, the plugin won't start. You can click "config.yml" to download the latest config.

      If that doesn't fix the problem, downgrade to an older version by navigating to the versions tab. I sadly won't be able to edit the plugin for a couple days so I won't be able to fix anything if the problem persists.

      In any event, as long as you keep your playerDatabase folder under /..../plugins/FreeRPG, your stats will be saved.
  8. WindowsXD
    Version: 1.0.7
    Very cool plugin, you get my respect for recreating MCmmo. I cant wait to see more updates
    1. suppusmac
      Author's Response
      Thanks for the review!
  9. Chopparen
    Version: 1.0.6
    I have a problem when I buy the 2 extra hearts it sets my hp to 2 hearts and not 12
    1. suppusmac
      Author's Response

      Sorry, the perk was using the wrong item in the config (it was setting Hp to "globalMultiplier + 4" instead of "playerBaseHP + 4"
      This will be fixed in the next version I post, sometime later today.

      Thanks for the review!
  10. vERKE
    Version: 1.0.6
    I've just tested the plugin, and it looks really great! Very promising, one feature I would request is a way to translate the messages and the GUI. I know its open source, so I could just go through the code, and translate it there, but a yml file for translations would be much easier. c:
    1. suppusmac
      Author's Response
      I'd estimate there are about 500 unique strings that would need to be translated and maybe 750 strings that would need to be reformatted to be translated (There are lots of essentially duplicate messages). This makes making an integrating .yml file a pretty tough task.

      However, this seems to be a fairly commonly requested feature, so I will (slowly) start working on a languages.yml file. I would certainty need to crowd source translations as well.

      For these reasons, translations (for the whole plugin) are probably not in the immediate future. But, I might be able to fairly quickly whip up a .yml file for translating the skill tree perks, since they lend themselves quite nicely to be restructured into some nested for loops. ;)