Skip to content

New configuration ​

This update mostly changes experience source configuration. It now uses expressions to calculate experience based on conditions and parameters. Read more here.

Migration ​

Experience per level ​

Before:

json
"experience_per_level": [
	10,
	11,
	13,
	15,
	17,
	...
	173,
	179,
	186,
	193,
	200
]

After (using values):

json
"experience_per_level": {
	"type": "values",
	"data": {
		"values": [
			10,
			11,
			13,
			15,
			17,
			...
			173,
			179,
			186,
			193,
			200
		]
	}
}

After (using expression):

json
"experience_per_level": {
	"type": "expression",
	"data": {
		"expression": "min(level ^ 1.432 + 10, 200)"
	}
}

Experience Source ​

Before:

json
{
	"type": "puffish_skills:kill_entity",
	"data": {
		"anti_farming": {
			"enabled": true,
			"limit_per_chunk": 15,
			"reset_after_seconds": 300
		}
	}
}

After:

json
{
	"type": "puffish_skills:kill_entity",
	"data": {
		"parameters": {
			"dropped_xp": {
				"type": "entity_dropped_experience"
			}
		},
		"experience": [
			{
				"expression": "dropped_xp"
			}
		],
		"anti_farming": {
			"enabled": true,
			"limit_per_chunk": 15,
			"reset_after_seconds": 300
		}
	}
}

Categories ​

categories.json is now part of config.json

Before:

File categories.json:

json
[
	"combat",
	"mining"
]

After:

File config.json:

json
{
	"version": 1,

	"categories": [
		"combat",
		"mining"
	]
}

Category ​

There is a new property exclusive_root in category.json. It decides if root skills should be exclusive, so when one of them is unlocked, the others are locked.

Before:

json
{
	"unlocked_by_default": true,
	"title": "Combat",
	"icon": {
		"type": "item",
		"data": {
			"item": "diamond_sword"
		}
	},
	"background": "textures/gui/advancements/backgrounds/adventure.png"
}

After:

json
{
	"exclusive_root": true,
	"unlocked_by_default": true,
	"title": "Combat",
	"icon": {
		"type": "item",
		"data": {
			"item": "diamond_sword"
		}
	},
	"background": "textures/gui/advancements/backgrounds/adventure.png"
}