Compatibility
Minecraft: Java Edition
1.21–1.21.1
1.20–1.20.1
1.19.2
Platforms
Forge
Supported environments
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Links
Creators
Details
Licensed MIT
Published 11 months ago
Updated 2 months ago
General
Addon to Pufferfish's Skills
Contains support for
Recommend checking the documentation:
- https://puffish.net/skillsmod/docs/creators/configuration/calculations/prototypes
- https://puffish.net/skillsmod/docs/creators/configuration/calculations/operations/operation
Attributes have been moved to Additional Attributes
Experience Source
Harvesting Crops
Hooks into the method which gets the items from the loot table
Operations:
player
: The player harvesting the crops (prototype is Player)block
: The block being harvested (prototype is Block State)tool
: The tool being used (prototype is Item Stack)dropped_seeds
: Amount of dropped seeds based on#forge:seeds
(prototype isnumber
)dropped_crops
: Amount of dropped crops based on#forge:crops
(prototype isnumber
)
Example:
{
"type": "pufferfish_unofficial_additions:harvest_crops",
"data": {
"variables": {
"crops": {
"operations": [
{
"type": "block"
},
{
"type": "puffish_skills:test",
"data": {
"block": "#minecraft:crops"
}
}
]
},
"dropped_crops": {
"operations": [
{
"type": "dropped_crops"
}
]
},
"dropped_seeds": {
"operations": [
{
"type": "dropped_seeds"
}
]
}
},
"experience": [
{
"condition": "crops",
"expression": "dropped_crops + (dropped_seeds * 0.2)"
}
]
}
}
Fishing Experience
Gets called per fished item
Operations:
player
: The player who is fishing (prototype is Player)tool
: The tool being used (prototype is Item Stack)fished
: The item being fished (prototype is Item Stack)
Example:
{
"type": "pufferfish_unofficial_additions:fishing",
"data": {
"variables": {
"fishes": {
"operations": [
{
"type": "fished"
},
{
"type": "puffish_skills:test",
"data": {
"item": "#minecraft:fishes"
}
}
]
},
"fished_amount": {
"operations": [
{
"type": "fished"
},
{
"type": "count"
}
]
}
},
"experience": [
{
"condition": "fishes",
"expression": "fished_amount * 4"
},
{
"condition": "!fishes",
"expression": "fished_amount * 2"
}
]
}
}
Rewards
Effect
Apply effects (infinite duration):
- Before removing the reward from the definition you'll have to reset the skills (or manually remove the effects yourself)
{
"type": "pufferfish_unofficial_additions:effect",
"data": {
"effect": "minecraft:regeneration",
"amplifier": 0,
"type": "GRANT"
}
}
Grant immunity up to a certain amplifier:
{
"type": "pufferfish_unofficial_additions:effect",
"data": {
"effect": "minecraft:wither",
"amplifier": 1,
"type": "IMMUNE"
}
}
Modify duration and / or amplifier of incoming effects:
- If the duration reaches
0
due to modifications the effect will not be applied- Valid operations are
+
,-
,x
and/
- This element is optional
- Valid operations are
- If the amplifier goes below
0
due to modifications the effect will not be applied
{
"type": "pufferfish_unofficial_additions:effect",
"data": {
"effect": "minecraft:slowness",
"amplifier": -2,
"duration_modification": "/2.5",
"type": "MODIFY"
}
}
Walkable Powder Snow
Allows walking on powder snow
{
"type": "puffish_skills:tag",
"data": {
"tag": "walk_on_powder_snow"
}
}
Iron's Spells 'n Spellbooks
Experience Sources
Added an experience source for casting spells
Note: The experience source will trigger for each spell tick, meaning for continuous spells it can happen multiple
times (see the expected_ticks
parameter)
Operations:
player
: The caster (prototype is Player)main_hand
: Item in main hand (prototype is Item Stack)spellbook
: The currently equipped spell book (prototype is Item Stack)school
: The school type of the spell (prototype is custom)- The value is defined with
school
- The value is defined with
spell
: The spell (prototype is custom)- The value is defined with
spell
- Contains the following sub-operations:
min_level
: The minimum level of this type of spell (prototype isnumber
)max_level
: The maximum level of this type of spell (prototype isnumber
)cast_type
: The way the spell is being cast (INSTANT
,LONG
,CONTINUOUS
) (prototype is custom)- The value is defined with
value
- The value is defined with
- The value is defined with
level
: The level of the spell (incl. modifications through items etc.) (prototype isnumber
)min_level_rarity
: The minimum level of the spell based on the rarity (prototype isnumber
)rarity_name
: Name of the rarity (COMMON
,RARE
,EPIC
,LEGENDARY
) (prototype is custom)- The value is defined with
value
- The value is defined with
rarity
: The ordinal of the rarity (0
isCOMMON
and4
isLEGENDARY
) (prototype isnumber
)mana_cost
: Mana cost for the spell at that level (if the cast consumes mana) (prototype isnumber
)mana_cost_per_second
: Only set for continuous spells (and if the cast costs mana) (prototype isnumber
)cast_duration
: Duration of continuous spells (in seconds) (prototype isnumber
)cast_charge_time
: Charge-up time of spells (if they have one) (in seconds) (prototype isnumber
)cooldown
: Cooldown after the spell was cast (in seconds) (prototype isnumber
)expected_ticks
: Will be1
for instant and long type spells - for continuous it's the amount of spell ticks if the whole duration is used (prototype isnumber
)
Example:
{
"type": "pufferfish_unofficial_additions:spell_casting",
"data": {
"variables": {
"level": {
"operations": [
{
"type": "level"
}
]
},
"rarity": {
"operations": [
{
"type": "rarity_name"
},
{
"type": "puffish_skills:test",
"data": {
"value": "LEGENDARY"
}
},
{
"type": "switch",
"data": {
"true": 5,
"false": 1
}
}
]
},
"mana_cost": {
"operations": [
{
"type": "mana_cost"
}
]
},
"mana_cost_per_second": {
"operations": [
{
"type": "mana_cost_per_second"
}
]
},
"spellbook": {
"operations": [
{
"type": "spellbook"
},
{
"type": "puffish_skills:test",
"data": {
"item": "irons_spellbooks:iron_spell_book"
}
}
]
},
"fire_school": {
"operations": [
{
"type": "school"
},
{
"type": "puffish_skills:test",
"data": {
"school": "irons_spellbooks:fire"
}
}
]
},
"blaze_storm": {
"operations": [
{
"type": "spell"
},
{
"type": "puffish_skills:test",
"data": {
"spell": "irons_spellbooks:blaze_storm"
}
}
]
}
},
"experience": [
{
"condition": "spellbook & !blaze_storm & fire_school",
"expression": "level + (mana_cost / 5) + rarity"
},
{
"condition": "blaze_storm",
"expression": "(level + (mana_cost_per_second / 10)) / 2"
}
]
}
}