- Tested Minecraft Versions:
- 1.7
- 1.8
- 1.9
- 1.10
- 1.11
- 1.12
- 1.13
- 1.14
- Contributors:
- Drekryan
Please post all issues on the Github page(under the issues tab on github)
Description:
DwarfCraft is an RPG plugin that allows players to improve their characters skills and capabilities. Players can pay trainers to improve their skills, which provides benefits such as increased weapon damage, decreased tool wear, increased drops from blocks or mobs, etc. Because of the training system, DwarfCraft can provide an interesting and fun RPG base for Survival MP servers that will remain relevant and interesting for casual and intense players alike. The races brought upon by this plugin can be used in very interesting ways. You could add back story to the races and make your world be at war between the races or you could have a peaceful world where all races live in harmony.
Features:
- Players may choose to play as any race you choose. The default races i have provided are Human, Gnome, Dwarf and Elf. Switching resets all skills. The race names are entirely configurable. Players will default to the default race in the config if not they will be forced to chose a race before they can level anything.
- Players use the ItemGUIs (Second Image) to train and deposit items with trainers. Cyan deposits all available required items to the trainer. Lime green trains the skill, while Cactus green trains the skill and then deposits any leftover items to the trainer. Individually clicking an item just deposits that item type to the trainer.
- All settings, skills, effects and races are fully customisable. The level cap could be 1000 if you wanted it to however it is recommended to keep it at level 30 unless you are adept enough to alter the CSV files accordingly.
- Races allow players to specialize in certain skills which allows them to train it past the vanilla level. i.e. Human's (smithing, cooking and farming), Elves (Combat and Hunting), Dwarves (Mining and Excavating) and Gnomes (Brewery and Crafting)
- Races are fully customisable to every extent. You can add up to 9 races but i highly reccommend to have around 4 otherwise the races wont have a distinct personality to them.
- The plugin contains 40+ skills that progress from level 0 (worse than normal) to level 30 (extremely proficient). Each skill has several effects. Most effects reach par at skill level 5. New supported skills will be released.
- Skills are improved by paying a training cost to a trainer. Server admins may place trainers and customized messaging NPCs. Skill costs are increased with level and balanced to encourage specialization. Example: To train "Pickaxe Use" from 0 to 1 cost 16 cobblestone. To train from 15 to 16 cost 640. At level 0 pickaxes degrade 20% faster than normal, at level 20 they degrade about 45% slower.
- A trainer can be almost any EntityType. I.E. the fishing trainer could be a squid.
Github: Here
- Skills and Effect details are easily found through in-game commands.
[NOTE] There are pre-releases available on github however they could be unstable and buggy.
Requirements:
Original Authors' Thread Page: Here
PlaceHolder API plugin support:
Basic PlaceHolders
--------------------------------------------------------------------------------------------------------------------------
%dwarfcraft_maxskilllevel% - Displays the maximum level a player can level a skill to.
%dwarfcraft_racelevellimit% - Displays the maximum level a player can level a skill to for when their race doesn't specialise in a skill
--------------------------------------------------------------------------------------------------------------------------
Player PlaceHolders
--------------------------------------------------------------------------------------------------------------------------
%dwarfcraft_playerrace% - Displays the player's race.
%dwarfcraft_playerlevel% - Displays the player's level
--------------------------------------------------------------------------------------------------------------------------
For Plugin Developers:
The API in DwarfCraft is slowly coming along. Everything should be accessible if you make an object of the plugin through spigot. You can have a look through the source code if it helps. Also your IDE should tell you what most methods do. A Javadocs is in progress. If you need any help just PM me.
Currently there are six events, DwarfLevelUp, DwarfDepositEvent, DwarfEffectEvent, DwarfRaceChangeEvent, DwarfLoadSkillsEvent and DwarfLoadRacesEvent.
DwarfLevelUpEvent is fired whenever a player levels up a DwarfSkill.
DwarfDepositEvent is fired whenever a player deposits item for a DwarfSkill to a trainer.
DwafEffectEvent is fired whenever an effect is fired. i.e. whenever DwarfCraft alters a mob drop, crafting recipe, block drop, etc.
DwarfRaceChangeEvent is fired when a player's race is attempted to be changed. (Just before the race change is saved into the database)
DwarfLoadSkillsEvent is fired just after all the skills are read from the csv files.
DwarfLoadRacesEvent is fired just after the races.config file is read.
Here's an example of how to utilise DwarfCraft.
Code (Java):public class Companion extends JavaPlugin implements Listener {
private DwarfCraft dwarfcraft;
@Override
public void onDisable() {
}
/**
* Called upon enabling the plugin
*/
@Override
public void onEnable() {
PluginManager pm = getServer().getPluginManager();
if (getServer().getPluginManager().getPlugin("DwarfCraft") == null || getServer().getPluginManager().getPlugin("DwarfCraft").isEnabled() == false) {
System.out.println("[Companion] Couldn't find DwarfCraft!");
System.out.println("[Companion] Companion now disabiling...");
getServer().getPluginManager().disablePlugin(this);
return;
}
dwarfcraft = (DwarfCraft) pm.getPlugin("DwarfCraft");
System.out.println("[Companion] Hooked into DwarfCraft!");
pm.registerEvents(this, this);
System.out.println("[Companion]" + getDescription().getName() + " version " + getDescription().getVersion() + " is enabled!");
}
public void onPlayerInteract(PlayerInteractEvent event) {
DCPlayer player = dwarfcraft.getDataManager().find(event.getPlayer());
if (event.getAction() == Action.LEFT_CLICK_BLOCK) {
if(player.getRace().equalsIgnoreCase("Dwarf")) {
//DO SOMETHING HERE
}
}
}
}
Commands & Permission Nodes:
The commands shown below are all sub commands of the base command DwarfCraft. i.e. "/DwarfCraft <subcommand>"
For Example "/DwarfCraft SkillSheet"
Basic Commands
--------------------------------------------------------------------------------------------------------------------------
SkillSheet - Displays your skillsheet.
Info - Displays a General Info Page about DwarfCraft.
Rules - Displays the set Server Rules in the DwarfCraft config.
SkillInfo - Displays the Progress/Info of the specific Skill of that player.
Race - Displays the DwarfCraft Race GUI which displays a players race information, or changes it.
EffectInfo - Displays the Effect of the specified skill of the specified player.
Tutorial - Gives the player the DwarfCraft Pocket Guide
--------------------------------------------------------------------------------------------------------------------------
Admin Commands
--------------------------------------------------------------------------------------------------------------------------
Debug - Changes the Debug Level the less it is the more Debug Messages you will see.
Reload - Reloads DwarfCraft.
Race - Allows an admin to manually change a players race.
Tutorial - Allows an admin to give a player the DwarfCraft Pocket Guide
List - List all the trainers that are on the server.
SetSkill - Sets the level of the specified skill on the specified player.
Create - Creates a DwarfCraft Trainer at your location.
--------------------------------------------------------------------------------------------------------------------------
Permissions Nodes:
dwarfcraft.norm.dwarfcraft
- This base command permission node is required for all sub commands to work
dwarfcraft.norm.commandname
- This permissions node is only for the specified Basic Commands.
dwarfcraft.norm.race.racename
- This permissions node is for races, if the player doesn't have the perm they can't change to this race. The race name has to be in lowercase.
dwarfcraft.op.commandname
- This permission node is only for the specified Admin Commands.
Skills:
Tool Use Skills: These skills impact how quickly your tools will degrade. High levels will enable you to get as much as three times as many uses out of shovels, axes, and picks. See also Plowman and Swordsman skills.
- [1] Pickaxe Use - Pickaxes
- [2] Shovel Use - Shovels
- [3] Axe Durability - Axes
- (Repeat) [6] Fisher Man - Rod Durability and Quantity of Fish.
Harvesting Skills: There are many skills that effect the rate at which you gather materials from blocks such as stone, ores, dirt, sand, gravel, and logs. Higher skill levels will drop several of the desired block, and will increase the chance that you instantly break what you are digging or chopping.
- [11] Excavator - Cobblestone instant-break
- [12] Quarry Worker - Cobblestone quantity
- [13] Ore Miner - Gold, Coal and Iron quantity
- [14] Exotic Miner - Emerald, Lapis Lazuli, Diamond, and Redstone quantity
- [17] Nether Miner - Quartz, Glowstone and Netherrack quantity.
- [21] Sand Digger - Sand quantity and instant-break
- [22] Gravel Digger - Gravel and Flint quantity and instant-break
- [23] Dirt Digger - Dirt quantity and Dirt/Grass instant-break
- [31] Lumberjack - Log quantity and instant-break
Farming Skills: Several skill handle how effective you are at farming wheat or gathering other plant materials. The Plowman skill also affects the durability of plows. Note that in DwarfCraft it is much harder to gather both seeds and wheat, so level 0 farmers will not be able to provide an endless supply of bread.
- [4] Seed Gatherer - Plow durability and Seed Quantity from hoeing grass.
- [5] Melon Farmer - Melon Slice Quantity from Melon Blocks.
- [6] Fisher Man - Rod Durability and Quantity of Fish.
- [41] Wheat Farmer - Quantity of Wheat and Seeds from reaping grown Crops
- [42] Exotic Farmer - Cane(Reed), Cactus and Cocoa Beans Quantity
- [43] Vegetable Farmer - Potato and Carrot Quantity.
- [74] Florist - Flowers and Pumpkins Quantity
- (Repeat) [91] Alchemist - Can sometimes make extra potions and nether wart quantity.
- [80] Shearer - Quantity of Mushrooms when shearing Mooshrooms and quantity of Wool when shearing Sheep.
Crafting/Smelting Skills: The crafting skills affect how many of an item you craft when using the normal recipe at a crafting bench. Many crafting skills have additional effects. The Smelting skills affact how many extra items are dropped from furnaces when smelting items.
- [7] Stone Shaper - Stone tools
- [8] Smelter - When smelting gold/iron ore, extra ingots and stone can be dropped.
- [9] Iron Forger - Iron tools
- [10] Diamond Forger - Diamond tools
- [15] Wood Carver - Wooden tools
- [16] Gold Forger - Gold tools
- [32] Wood Splitter - Planks and Sticks
- [51] Mason - Cobblestone Tiles and Steps and Smooth Stone Tiles
- [53] Wood Crafter - Ladders, Fences, Doors, and Wood Tiles and Steps
- [61] Book Maker - Books
- [62] Brick Maker - Brick Blocks
- [63] Demolitionist - TNT and damage from explosions.
- [65] Rail Worker - Rail sections
- [66] Baker Man - Bread, Pumpkin Pie, Cookies, Cake, and Baked Potatoes
- [67] Fletcher - Arrows
- [68] Grillardin - When smelting raw meets, extra cooked meats can be dropped.
- [86] Exotic Armour - Gold and Diamond armour
- [88] Sign Maker - Signs
- [89] Torch Maker - Torches
- [91] Alchemist - Can sometimes make extra potions and nether wart quantity.
Damage Reduction Skills: In addition to Demolitionist reducing damage from explosions, there are skills that effect fire, falling, suffocation, and lava damage. There are also skills that affect the durability and crafting count of armor.
- (Repeat) [63] Demolitionist - Damage from explosions
- [64] Fire Starter - Damage from fire, durability of Flint and Tinder
- [72] Climbing - Damage from falls, short fall forgiveness
- [83] Scout - Leather armor durability, amount crafted, projectile damage reduction.
- [84] Soldier - Iron armor durability, amount crafted
Combat Skills: The Swordsman, Axe Swinger and Bowman skills affect the damage you do with those weapons. The swordsman skill also has a durability effect.
- [85] Archer - Arrow Damage and Enemy Feather/Arrow Drops
- [87] Swordsman - Sword Damage and Durability
- [101] Axe Swinger - Axe Damage
Hunting Skills: These skills allow a player to gather more resources for killing enemies with sword or bow. Note that this mod completely removes drops from creatures killed in any other way, to prevent "automated mob farming"
- [76] Nether Hunter - Blaze, Magma Cube, Pig Zombie, Ghast
- [81] Animal Hunter - Pig, Cow, Sheep, Chicken
- [82] Monster Hunter - Creeper, Skeleton, Spider
- (Repeat)[85] Archer - Zombie
Exploration Skills: These skills benefit activities related to exploring, travel, and adventure. The effects vary widely, but should result in more successful forays into the wilderness, and more valuable materials brought home.
- [71] Sailor - Boat Travel Speed and Boat break results (sailor>15 allows recoverable boats)
- [73] Survivalist - Health gained from uncooked pork, fish, and mushroom stew
- [75] Dungeon Delver - Monster Spawners can drop Iron, Gold, Diamond, and Lapis blocks
Other Skills: See details -
- [99] Noble - Dwarf Fortress nobles are useless. DwarfCraft nobles mine obsidian better, and it costs 100s of eggs to train. Any player that collects 100s of eggs and spends all day mining obsidian is just like a Dwarf Fortress noble.
List of Items Required:
- [1] Pickaxe Use - Cobblestone
- [2] Shovel Use - Dirt
- [3] Axe Durability - Log
- [4] Seed Gatherer - Seeds
- [5] Melon Farmer - Melon Slices
- [6] Fisher Man - Raw Fish
- [7] Stone Shaper - Stone tools
- [8] Smelter - Lava Bucket/coal
- [9] Iron Forger - Iron tools
- [10] Diamond Forger - Diamond tools
- [11] Excavator - Cobblestone
- [12] Quarry Worker - Cobblestone
- [13] Ore Miner - Coal/Iron Ingot/Gold Ingot
- [14] Exotic Miner - Emerald/Lapis Lazuli/Diamond/Redstone
- [15] Wood Carver - Wooden tools
- [16] Gold Forger - Gold tools
- [17] Nether Miner - Quartz/Glowstone Dust/Netherrack
- [21] Sand Digger - Sand
- [22] Gravel Digger - Gravel
- [23] Dirt Digger - Dirt
- [31] Lumberjack - Log
- [32] Woodsplitter - Log
- [41] Wheat Farmer - Wheat/Seeds
- [42] Exotic Farmer - Reed/Cactus/Cocoa Beans
- [43] Vegetable Farmer - Potatoes/Carrots
- [51] Mason - Half-steps
- [52] Glass Worker - Glass
- [53] Wood Crafter - Plank/Stick
- [61] Book Maker - Paper/Books
- [62] Brick Maker - Bricks/Brickblock
- [63] Demolitionist - Gunpower/TNT
- [64] Fire Starter - Fint + Tinder
- [65] Rail Worker - Powered Cart
- [66] Baker Man- Cake Block
- [67] Fletcher - Arrows
- [68] Grillardin - Cooked Porkchop/Steak/Cooked Fish
- [71] Sailor - Clay Block
- [72] Climber - Pumpkin
- [73] Survivalist - Mushrooms
- [74] Florist - Flower
- [75] Dungeon Delver - Saddles
- [76] Nether Hunter - Blaze Rods
- [80] Shearer - Shears/Wool
- [81] Animal Hunter - Pork Leather Wool
- [82] Monster Hunter - String/Gunpowder
- [83] Scout - Leather Breastplates
- [84] Soldier - Iron Breasplates
- [85] Archer - Feather/Flint
- [86] Exotic Armor - Gold and Diamond armour
- [87] Swordsman - Leather/String
- [88] Sign Maker - Signs
- [89] Torch Maker - Torches
- [91] Alchemist - Nether Warts
- [99] Noble - Eggs
- [101] Axe Swinger - Rotten Flesh/String
How to create Skills:
This is here to help you create some new skills that are based upon the already made skill "skeletons". This page will explain what each part of the .csv files mean. First thing first there is a relation between skills and effects. Skills are what the trainer teaches the player but effects are what the skills do. If you had a skill with id 6 your effect id's can range between 60 - 69, this means Effect 0 of skill 6 to Effect 9 of skill 6, etc.
Skill csv:
ID: The id of the skill
Name: The Name for your skill
Item1: The first item id for leveling your skill
Item1Base: The base amount required for leveling
Item1Max: The maximum amount required for leveling the skill.
Item2: The second item id for leveling your skill.
Item2Base: The Base amount for leveling your skill.
Item2Max: The maximum amount required for leveling the skill.
Item3: The third tiem id for leveling your skill
Item3Base: The Base amount for leveling your skill.
Item3Max: The maximum amount required for leveling the skill.
Held: The id for the item held by the trainer that knows the skill.
Effects csv:
ID: The skill id and the Effect number e.g. if your skill id is 60 then your first effect would have an id of 600.
BaseValue: The Base Value of the effect. e.g. Tall_Grass drops 0.6 seeds when broken.
LevelIncrease: This is the increment that is added to basevalue of the effect depending on your level. This can be a negative value for example in tool durability you wouldn't want your tool to be destroyed more so the increment is a negative value.
LevelIncreaseNovice: I am not too sure what this does but its generally a considerably smaller value of the LevelIncrease or 0.
Min: The minimum that the effects value can reach e.g. (BaseValue + LevelIncrease) * skill can't be less than 5.
Max: The maximum that the effects value can reach.
Floor: If true floors the effect value. i.e. always rounds down to a whole integer.
Exception: If true then between the Low skill level and the High Skill level it will only give the ExceptionValue for the effects value. (i.e. between lvls 0-5 only 0 iron ingots are dropped).
ExceptionLow: The lower integer of the interval for the ExceptionValue to be applied to the effect.
ExceptionHigh: The higher integer of the interval for the ExceptionValue to be applied to the effect.
ExceptionValue: The value that will replace the effect value when the players skill level is in between the ExceptionLow and ExceptionHigh interval.
NormalLevel: The vanilla level of the effect e.g. 1 cobblestone is dropped when stone is broken.
Type: This is what the effect is Based on below this there will be a list of Effect Types.
OriginID: The Block id or item id of the effect. If the Type is MOBDROP or SHEAR then a mob can be specified by name from the Spigot EntityType.class. If no mob is specified then it applied the effect on all mobs that drop the outputID.
OutputID: The output item id of the effect once the block is broken of the item is activated.
RequireTool: True if your skill/effect requires a tool to activate e.g. Mining - Pickaxe.
Tools: the list of tools that can activate the effect if true. For Example: 270 274 257 285 278. This only has a space between item ids.
Effect Types:
BLOCKDROP - An itemstack is dropped when a block is broken
MOBDROP - An itemstack is dropped when a mob is killed
SWORDDURABILITY - Sword durability
PVPDAMAGE - Player vs. Player Damage, all damage effect types either increase of decrease the damage taken.
PVEDAMAGE - Player vs. Entity Damage
EXPLOSIONDAMAGE - Explosion Damage
FIREDAMAGE - Fire Damage
FALLDAMAGE - Fall Damage
FALLTHRESHOLD - Unknown
PLOWDURARBILTY - Durability of hoes
TOOLDURABILITY - General Tool durabilty
EAT - When a player eats determines how much hunger is gained
CRAFT - When crafting determines the amount is crafted per recipe
PLOW - An itemstack is dropped when grass is plowed
DIGTIME - Something to do with digging.
BOWATTACK - When a player attacks with its bow, how much damage is done.
VEHICLEDROP - If your boat or minecraft is dropped or destroyed.
VEHICLEMOVE - How fast or if you can move your vehicle.
SPECIAL - Special and unknown
FISH - When a player fishes with their rod an itemstack can be dropped as well as their fish.
RODDURABILITY - The amount of durability that is lost when a player successfully catches fish.
SMELT - The amount of items dropped out of the furnace after smelting.
SHEAR - The amount of items dropped when shearing animals
Skill Submission:
To submit skills for me to add to DwarfCraft all you have to do is follow the simple template below and the specified instructions. You can submit a request because the base skill code isn't implemented or you have to submit an edited .csv file with your skill in it.
Template:
Skill Name:
Skill Description (Brief):
Skill.csv link (if not a request):
Effects.csv link (if not a request):
If you follow this simple template then i will take your skills into consideration and will hopefully add it into the official skill database. If you have multiple skills that you have added or requested don't bother making two posts just do more Skill Name's and Skill Description's. For Example:
Skill Name: skill1
Skill Description: Blah
Skill Name skill2
Skill Description Blah
Downloads Prior to MC1.8:
(Previous versions were built against CraftBukkit, Downloads on bukkitdev page.)
Donations:
Changelog Prior to MC1.8:
V2.0
- Updated the NPCLib
- Now built against spigot instead of craftbukkit.
- Fixed the plugin always converting the database of trainers.
(Remainder of the Changelog on my old bukkit forum page)
Permission to continue the plugin from the original authors:
![]()

DwarfCraft 4.2.1
Player progression plugin with skills that are improved by training with npcs (not xp)
Recent Updates
- Fixed NPE on plugin disable if citizens wasn't found Dec 20, 2018
- Support for 1.13 API and full Material/Tag support Dec 20, 2018
- mcMMO compatability and skill level up command scripts Jul 20, 2018