Storytime ships with three built-in ability types. Set the type field in a race's ability block to one of these resource locations.
storytime:transform
Transforms the player into another entity type. The player's model changes to the target entity, and their stats temporarily reflect that entity's natural attributes.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
entity |
string | yes | — | Entity type resource location, e.g. "minecraft:wolf" |
duration |
integer | no | 0 |
Duration in ticks. 0 means toggle mode |
scale |
number | no | not set | Overrides the entity's natural scale |
Behaviour
When duration is 0, the transformation is a toggle. The player presses R to transform and again to revert. There is no automatic expiry.
When duration is greater than 0, the transformation ends automatically after that many ticks. The cooldown starts when the transformation ends, not when it begins.
Example
"ability": {
"type": "storytime:transform",
"parameters": {
"entity": "minecraft:wolf",
"duration": 600
},
"cooldown": 3600,
"display_name": "Wolf Form",
"description": "Become a wolf for 30 seconds."
}
storytime:last_stand
A two-phase defensive ability. Phase 1 applies strong buffs. Phase 2 applies debuffs after Phase 1 ends, preventing spam.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
hp_threshold |
number | no | 7.0 |
Health (half-hearts) below which the ability can activate |
phase1_duration |
integer | no | 200 |
Phase 1 duration in ticks |
phase1_effects |
array | no | — | Effects applied in Phase 1 |
phase2_duration |
integer | no | 300 |
Phase 2 duration in ticks |
phase2_effects |
array | no | — | Effects applied in Phase 2 |
auto_cast |
boolean | no | false |
If true, triggers automatically when health drops below hp_threshold |
Effect objects
Each entry in phase1_effects and phase2_effects is an object with:
| Field | Type | Required | Description |
|---|---|---|---|
effect |
string | yes | Potion effect resource location |
amplifier |
integer | yes | Effect amplifier (0 = level I) |
duration |
integer | no | Duration in ticks; defaults to the phase duration |
Behaviour
When auto_cast is false, the player must press R while their health is at or below hp_threshold. When auto_cast is true, the ability triggers on its own the moment health drops to the threshold — the player does not need to press anything.
After Phase 1 ends, Phase 2 begins immediately regardless of what the player does.
Example
"ability": {
"type": "storytime:last_stand",
"parameters": {
"hp_threshold": "6.0",
"phase1_duration": "400",
"phase1_effects": [
{ "effect": "minecraft:strength", "amplifier": 1 },
{ "effect": "minecraft:resistance", "amplifier": 1 },
{ "effect": "minecraft:regeneration", "amplifier": 0 }
],
"phase2_duration": "200",
"phase2_effects": [
{ "effect": "minecraft:slowness", "amplifier": 2 },
{ "effect": "minecraft:nausea", "amplifier": 0 }
],
"auto_cast": "false"
},
"cooldown": 24000,
"display_name": "Survival Instinct",
"description": "When near death, fight back."
}
storytime:spell_cast
Casts a spell in one of four modes.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
spell_mode |
string | yes | One of projectile, self, aoe, beam |
effects |
array | no | Potion effects to apply (used by self, aoe, beam) |
projectile_type |
string | no | Entity type to fire (used by projectile) |
projectile_speed |
number | no | Projectile speed (used by projectile) |
projectile_damage |
number | no | Projectile damage (used by projectile) |
cast_sound |
string | no | Sound event to play on cast |
cast_message |
string | no | Chat message sent to the casting player on cast |
Spell modes
projectile — Fires an entity in the direction the player is looking.
"parameters": {
"spell_mode": "projectile",
"projectile_type": "minecraft:fireball",
"projectile_speed": 1.5,
"projectile_damage": 8.0
}
self — Applies effects to the casting player.
"parameters": {
"spell_mode": "self",
"effects": [
{ "effect": "minecraft:haste", "amplifier": 1, "duration": 600 }
],
"cast_message": "Haste activated."
}
aoe — Applies effects to all entities within a radius around the player. Radius is currently determined by the ability implementation.
"parameters": {
"spell_mode": "aoe",
"effects": [
{ "effect": "minecraft:poison", "amplifier": 0, "duration": 100 }
]
}
beam — Applies effects to the first entity directly in the player's line of sight.
"parameters": {
"spell_mode": "beam",
"effects": [
{ "effect": "minecraft:weakness", "amplifier": 1, "duration": 200 }
]
}
Effect objects
The same format as Last Stand effects:
| Field | Type | Required | Description |
|---|---|---|---|
effect |
string | yes | Potion effect resource location |
amplifier |
integer | yes | Effect amplifier (0 = level I) |
duration |
integer | yes | Duration in ticks |