RPG Classes 1.3.0 — Minecraft Java 1.12.2
Installation
-
Install Minecraft Java Edition 1.12.2 and Forge 14.23.5.2860 for 1.12.2. Official website: https://files.minecraftforge.net/net/minecraftforge/forge/index_1.12.2.html
-
Use Java 8, 64-bit for the Forge 1.12.2 game profile.
-
Place
KlasyRPG-1.12.2-1.3.0.jarin themodsfolder of the correct Minecraft instance. In the standard Windows launcher, this is%APPDATA%\.minecraft\mods. -
Launch the Forge profile. The mod will appear in the list as Klasy RPG.
-
In multiplayer, the same file must be present in the server’s
modsfolder and in every player’smodsfolder. No other mods or additional libraries are required in themodsfolder.
The JAR file should not be opened by double-clicking and does not need to be extracted. This is a Forge mod, not a Spigot/Paper plugin or a Fabric mod.
Updating from version 1.0.0, 1.1.0, or 1.2.0
Close the game and server, remove the previous JAR from the mods folder, and then add version 1.3.0. There should be only one version of Klasy RPG in the folder. Use the same file on the server and for all players.
The class, stat levels, and unspent points from version 1.2.0 are preserved. Saves with four stats are also supported; the remaining four stats will start at zero. You do not need to create a new world or choose a class again. The Wizard and Assassin will receive their new properties after entering the world.
Earlier versions did not save the number of resets used. Therefore, after updating, every existing player receives one free reset under the new rules, regardless of any previous free stat changes. Starting with this version, the use of the free reset is permanently saved for the character. A save created with 1.3.0 should be opened with version 1.3.0; older versions do not respect the new costs and reset history.
Character Selection
When entering the world for the first time, a screen with eight classes will appear. Click a class, read its bonuses and drawbacks, and then confirm your choice in an additional window. The first choice is free. Every later class change costs 150 EXP levels. A separate world means a new character.
The class and all skill tree levels are preserved after death, logout, restarting the game, and changing dimensions. You can change your class and point distribution in the menu according to the costs described below. Before selecting a class, combat, block breaking, and item use are disabled; the player is protected from normal damage during selection. The game menu can still be used to leave the world.
The character menu can be opened with K, /klasa, or /drzewko. The K keybind can be changed in the controls settings.
Changing Class: 150 EXP Levels
Open the K menu, press Change class: 150 lvl, choose a different class card, and confirm the change in the additional window. You can change class multiple times; every change costs exactly 150 EXP levels.
The cost works like an anvil: it removes levels while preserving the percentage fill of the EXP bar. If you have 184 levels, you will have 34 after the change. If you have exactly 150 levels, you will be left at level 0 with the same partial EXP bar progress. Choosing your current class, having insufficient EXP, or cancelling does not charge anything.
Changing class preserves all stats, unspent points, and the use of the free reset. It does not automatically reset the skill tree. Resetting is a separate action with a separate cost. Changing class does not heal you: if the new class has lower maximum HP, your current health will be capped at the new maximum; a higher maximum does not restore HP.
Classes and Balance in Version 1.3.0
A normal character has 20 HP. 2 HP = 1 heart. Percentage values refer to the appropriate base value; class and skill tree bonuses to movement speed and damage multiply with each other.
| Class | Bonuses | Drawbacks | Starting HP |
|---|---|---|---|
| Warrior | +10% melee damage | −15% movement speed | 20 |
| Barbarian | +6 HP | −15% attack speed | 26 |
| Archer | +20% movement speed, +15% bow damage | −15% melee damage, −2 HP | 18 |
| Female Warrior | +1.5 blocks melee reach | −10% melee damage, −2 HP | 18 |
| Wizard | average +25% EXP from orbs, regenerates 1 HP every 8 seconds | −6 HP, −15% damage, −15% attack speed | 14 |
| Paladin | +6 armor points | −0.5 block melee reach | 20 |
| Merchant | +3 Luck, +1 Looting level, chest bonus | −4 HP | 16 |
| Assassin | 1.75× attack speed, 1.5× movement speed, smooth stepping onto full blocks | −6 HP, −25% melee damage | 14 |
The Female Warrior has a 4.5-block attack reach in survival mode, while the Paladin has 2.5 blocks. Distance is measured from the player’s eyes to the target’s hitbox. Increased reach does not allow attacks through walls and does not affect block breaking or placement distance. Combat uses standard Minecraft attacks, weapon damage, and attack cooldown.
Merchant bonus: if the Merchant is the first player to open a naturally generated chest, then when its contents are generated there is a 30% chance of receiving one additional stack of 1–3 emeralds, gold ingots, or iron ingots. This applies to standard Minecraft minecraft:chests/* loot tables, including minecart chests using those tables. Reopening the chest does not generate additional items. +1 Looting stacks with the enchantment and affects mob drops that support Looting; it does not guarantee a rare item. +3 Luck also affects loot tables that use the Luck attribute.
The Wizard receives a bonus when collecting experience orbs, including those from mobs, mining ores, furnaces, and trading. It does not multiply EXP added with the /xp command. Fractional bonus points are randomized with a 25%, 50%, or 75% probability depending on the value of the orb. This makes the average bonus 25%, including for orbs worth 1 EXP. For an orb worth 4 EXP, the bonus is exactly 1 EXP. Regeneration does not require a full hunger bar. The additional EXP is added directly to the player; it does not increase the value of the orb itself and does not provide extra repair through the Mending enchantment.
The Wizard also has −15% damage dealt: the 0.85 multiplier applies to melee attacks, arrows, and other damage for which the game identifies the player as the source, such as harming potions. The Strength effect still increases melee damage only. Regeneration restores 1 HP every 8 seconds at the standard rate of 20 ticks per second.
While walking or sprinting, the Assassin smoothly steps onto obstacles that are one full block high, just like a normal character walking onto stairs or slabs. No jump key press is required. This replaces the previous +0.5 block jump height bonus; normal jumping and Jump Boost potions still work normally. While using this class, Minecraft’s auto-jump is temporarily disabled so the character steps up smoothly instead of hopping. The auto-jump setting in the game options is preserved and becomes active again after changing class. Stepping respects collision and headroom; it does not allow the player to climb obstacles higher than one block without jumping. The feature is disabled while flying and in spectator mode.
New Character Menu
The class selection screen contains eight cards with icons, roles, and starting HP. After clicking a card, the panel on the right shows its bonuses and limitations. The change is only saved after pressing the selection button and confirming it in an additional window. The current class is marked CURRENT.
The skill tree displays eight stat cards. Click a card to see its current bonus, gain per level, and a description of how it works. At the top there are separate counters for Owned, Allocated, Unspent, and the current EXP level. Each stat bar shows progression from 0 to 100.
Shared Skill Tree: Eight Stats
Every class uses the same skill tree. Stats start at level 0.
| Stat | Gain per Level | Gain at Level 100 |
|---|---|---|
| Strength | +0.5% melee damage | +50% melee damage |
| Dexterity | +0.5% movement speed and +0.5% attack speed | +50% movement speed and +50% attack speed |
| Vitality | +0.5 maximum HP | +50 HP, equal to 25 hearts |
| Magic Resistance | −1% damage from magic, fire, and Wither; +1 percentage point chance to resist a harmful effect | 100% reduction and 100% resistance chance |
| Endurance | −0.25% physical damage | −25% physical damage |
| Vampirism | healing equal to 0.1% of actual damage dealt | 10% life steal |
| Critical Hits | +0.25 percentage points critical hit chance | 25% critical hit chance |
| Luck | +0.25 percentage points chance for an additional valuable item | 25% chance for an additional item |
Each stat can reach 100 points. A character can have no more than 100 points in total, including both allocated and unspent points. For example, you can have 100 Strength and 0 in all other stats, or distribute them as 60/10/20/0/0/0/10/0. You cannot raise all eight stats to 100 at the same time.
Magic Resistance includes damage from effects such as poison, harming potions, fire, lava, and Wither. The resistance chance applies when a negative effect is being applied, such as poison, slowness, or weakness. An effect that is not resisted keeps its normal duration; increasing the stat does not remove effects that have already been applied. Beneficial potions work normally. At 100 points, the retained rate of 1% per point provides full protection within this scope.
Endurance reduces damage from melee hits, projectiles, explosions, cacti, and falling blocks or anvils. The reduction is applied after armor and absorption. It does not affect magic, fire, Wither, fall damage, drowning, suffocation, or the void. Example: if 8 damage remains after normal defense, 100 Endurance reduces it to 6.
Vampirism heals the player from melee hits and arrows fired by the player. It uses damage dealt after the target’s defenses and cannot exceed the target’s remaining HP; misses, fully blocked attacks, and excess damage from a finishing blow do not increase healing. At 100 points, if the target loses 10 HP, the player restores 1 HP, up to their maximum health.
Critical Hits provide a random 1.5× critical hit in melee combat and with arrows. Minecraft’s normal melee critical hit does not receive a second multiplier from this stat. Natural arrow properties and enchantments remain active.
Luck gives an independent chance to receive one additional item after killing a mob as the player and when the contents of a standard minecraft:chests/* chest are generated for the first time. If the bonus roll succeeds, the item is an iron ingot (40%), gold ingot (30%), emerald (20%), or diamond (10%). Example: 100 Luck means a 25% chance for a bonus, which results in a 2.5% chance for an additional diamond. Normal loot remains unchanged; the bonus does not guarantee any specific item. Reopening the same chest does not repeat the roll. The Merchant class bonus works additionally and independently. It does not add items to dead players’ drops and respects mob loot being disabled with doMobLoot.
Resetting and Reallocating Points
The first skill tree reset is free. Every later reset costs 50 EXP levels.
-
In the K menu, press Reset skill tree: free or Reset skill tree: 50 lvl.
-
Check the cost and the number of points that will be returned, then confirm.
-
All eight stats will return to level 0, and their points will be added to the Unspent counter.
-
Select stats and use Allocate 1 point to redistribute this pool without additional charges.
A reset applies to the entire skill tree. The button for undoing a single point has been removed so the reset cost cannot be bypassed. Resetting an empty skill tree is blocked: it does not consume EXP or use the first free reset. Simply opening or cancelling the window also costs nothing.
Reset history is preserved after death, logout, restarting the game, changing dimensions, and changing class. The free reset is available once per character in a given world/server. Every later reset always costs 50 levels, including after choosing another class.
Payment removes levels like an anvil. If you have 70 levels, after a paid reset you will have 20 with the same percentage fill of the EXP bar. If you have fewer than 50 levels, you cannot perform another paid reset. Changing class and performing a paid reset together costs 200 levels; with the first free reset, the total cost is 150.
Resetting does not refund EXP previously spent on purchasing points, does not remove purchased points, and does not reduce the cost of the next new point. If you own 40 points, after resetting you will have 40 unspent points. Redistributing those 40 points is free; the next new point still costs 82 EXP levels. When unspent points are available, progression uses them before purchasing new points. The limits remain unchanged: 100 total points and a maximum of 100 in a single stat.
Resetting Vitality to zero reduces maximum HP and, if necessary, caps current health at the new maximum. Adding Vitality again increases the maximum, but does not heal the player by itself.
Cost of New Points and EXP
The cost of a new point is 2 × (number of owned points + 1) EXP levels. Owned points include both allocated points and points returned to the unspent pool. The cost does not depend on the selected stat.
| Next Purchased Character Point | Cost in EXP Levels |
|---|---|
| 1 | 2 |
| 2 | 4 |
| 3 | 6 |
| 4 | 8 |
| 10 | 20 |
| 25 | 50 |
| 50 | 100 |
| 100 | 200 |
The Upgrade for … lvl button opens a confirmation window showing the price and the level that will remain after the purchase. The purchase removes the required EXP levels like an anvil, preserving the percentage fill of the EXP bar. If you have 17 levels and buy the first point for 2, you are left with 15 levels. The next point costs 4, so buying it immediately leaves you at level 11. If you have exactly the required number of levels, you will be left at level 0 while preserving the partial EXP bar fill.
Opening the menu and cancelling the confirmation costs nothing. Insufficient EXP, exceeding the limit, and repeated or outdated requests are rejected by the server. Death removes normal EXP according to Minecraft’s standard rules, but no longer removes purchased skill tree points.
Source Code and Rebuilding
The included source files contain the ForgeGradle project as well as tests for progression, saving, EXP costs, and combat rules. Building the project yourself requires JDK 8 and internet access. In the project directory, run gradlew.bat build on Windows or bash gradlew build on Linux/macOS. The finished file will be created in build/libs. The reobfJar task adapts method names for a normal Forge installation; this is the output that should be placed in the mods folder.
Official documentation for the API used: https://docs.minecraftforge.net/en/1.12.x/networking/simpleimpl/.
Verification Scope
The current build and test results are stored in the included WERYFIKACJA.txt file. Mods created by other authors, especially those that replace the combat, reach, or loot systems, require separate testing in the specific modpack.
