LevelZ is a mod which adds skillables to the player which can get skilled to unlock blocks and strengthen passive skills.
LevelZ is a mod built for the Fabric Loader. It requires Fabric API, Cloth Config API and LibZ to be installed separately; all other dependencies are installed with the mod.
LevelZ is licensed under GPLv3.
Most of the mods default settings can get changed via datapacks, Player attribute affecting settings can get changed via
the config file.
If you don't know how to create a datapack check out Data Pack Wiki
website and try to create your first one for the vanilla game.
If you know how to create one, the folder path has to be data\levelz\FOLDER\YOURFILE.json
For the skills put the file in folder skill
, for restrictions use restriction
.
Caution! Make sure you name the files differently than the existing ones.
Since version 2.0.0, skills can be created and overwritten via datapack.
A skill requires:
{
"health": {
"replace": false,
"id": 0,
"key": "health",
"level": 20,
"attributes": [
{
"type": "generic.max_health",
"base": 10,
"operation": "ADD_VALUE",
"value": 1
}
],
"bonus": [
{
"level": 5,
"key": "deathGraceChance"
}
]
},
"...": {
}
}
generic.armor
generic.armor_toughness
generic.attack_damage
generic.attack_knockback
generic.attack_speed
player.block_break_speed
player.block_interaction_range
generic.burning_time
generic.explosion_knockback_resistance
player.entity_interaction_range
generic.fall_damage_multiplier
generic.flying_speed
generic.follow_range
generic.gravity
generic.jump_strength
generic.knockback_resistance
generic.luck
generic.max_absorption
generic.max_health
player.mining_efficiency
generic.movement_efficiency
generic.movement_speed
generic.oxygen_bonus
generic.safe_fall_distance
generic.scale
player.sneaking_speed
zombie.spawn_reinforcements
generic.step_height
player.submerged_mining_speed
player.sweeping_damage_ratio
generic.water_movement_efficiency
bowDamage
: Each level grants +bowDamage on arrow damagebowDoubleDamageChance
: Chance to double arrow damage with bowcrossbowDamage
: Each level grants +crossbowDamage on arrow damagecrossbowDoubleDamageChance
: Chance to double arrow damage with crossbowitemDamageChance
: Each level grants +chance to not consume item damage on item usagepotionEffectChance
: Chance to increase effect amplifier by onebreedTwinChance
: Chance to have twins on breedingfallDamageReduction
: Each level grants +fallDamageReductiondeathGraceChance
: Chance to not die on critical damage intaketntStrength
: Grants +tntStrength tnt strengthpriceDiscount
: Each level grants %priceDiscount on tradingtradeXp
: Each level grants more %tradeXpmerchantImmune
: Grants immunity to reputation decrease and attack call on damaging merchantminingDropChance
: Each level grants %chance to double ore dropplantDropChance
: Each level grants %chance to double plant dropanvilXpCap
: Grants xp cap on anvil usageanvilXpDiscount
: Each level grants %discount on anvil usageanvilXpChance
: Chance to not use xp on anvil usagehealthRegen
: Each level grants %health on regenerationhealthAbsorption
: Grants absorption on regenerationexhaustionReduction
: Each level grants %exhaust reductionmeleeKockbackAttackChance
: Each level grants %chance to knockbackmeleeCriticalAttackChance
: Each level grants %chance to critical hitmeleeCriticalAttackDamage
: Each level grants +critical melee damage on critical hitmeleeDoubleAttackDamageChance
: Chance to double melee damagefoodIncreasion
: Each level grants %food value when eating fooddamageReflection
: Each level grants %damage reflectiondamageReflectionChance
: Each level grants %chance to reflect damageevadingDamageChance
: Chance to evade incoming damageA restriction requires:
A restriction can include:
{
"name_it_as_you_want": {
"replace": false,
"skills": {
"archery": 1,
"health": 5
},
"blocks": [
"minecraft:anvil"
],
"crafting": [
"minecraft:oak_planks",
"minecraft:iron_sword",
"minecraft:iron_chestplate"
],
"entities": [
"minecraft:villager"
],
"items": [
"minecraft:iron_sword"
],
"mining": [
"minecraft:pumpkin",
"minecraft:stone",
"minecraft:chiseled_polished_blackstone"
],
"enchantments": {
"minecraft:unbreaking": 1
}
},
"...": {
"skills": {
"health": 1
},
"mining": [
"minecraft:dirt"
]
}
}
To display information about a skill in the level gui, just add some lines in the lang json with the following key.
"skill.levelz.yourskillkey.0": "This is the whatever skill"
,
"skill.levelz.yourskillkey.1": "It does somethin"
,
...
Just increase the integer at the end of the json entry.
To permanently disable access to something, simply set the skill requirement higher than the maxLevel
property configured in levelz.json5
.
LevelZ provides two advancement criterions trigger called levelz:level
and levelz:skill
.\
The first one triggers when the player reached the set level.
"criteria": {
"levelexample": {
"trigger": "levelz:level",
"conditions": {
"level": 100
}
}
}
The second one triggers when the player reached the set skill level.
"criteria": {
"otherlevelexample": {
"trigger": "levelz:skill",
"conditions": {
"skill_name": "health",
"skill_level": 20
}
}
}
Levelz exposes configuration settings for many attributes, such as
setting max levels, experience rates from different mobs, etc..
These configuration settings are found in ${MINECRAFTDIR}/config/levelz.json5
/level playername add skill integer
/level playername remove skill integer
/level playername set skill integer
/level playername get skill
Inside the config there is a developer mode setting, when set to true, inside the creative menu, hover over an item/block with your mouse and press f8 (default key) to create or append the item/block id to the file called idlist.json inside your minecraft folder for easier datapack creation.