Stamina Attributes
No reviews yet
A small API that adds a stamina system controlled by entity attributes.
Does not follow a specific thematic focus apart from vanilla Minecraft.
Includes a large focus on traversing worlds with enhanced world generation, structures, dungeons, and more for players to find unique loot.
Adds or modifies hunger and stamina systems for more complex survival mechanics.
Provides a framework or library for other mods to use.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
Stamina Attributes
This API adds a stamina system controlled by entity attributes.
Default implementation
LivingEntities can have up to generic.max_stamina amounts of stamina. Stamina is regenerated by generic.stamina_regeneration every generic.stamina_tick_threshold ticks.
When stamina is reduced, regeneration is stopped for generic.stamina_regeneration_delay_threshold ticks.
When stamina is <= 0, regeneration is stopped for generic.depleted_stamina_regeneration_delay_threshold ticks.
generic.reserved_stamina describes the percentage amount of maximum stamina, that is currently not available.
generic.item_use_stamina_cost is the amount of stamina that is reduced when using an item with a stamina cost.
There are two ways to give an item a stamina cost:
- Items in the "staminaattributes:using_costs_stamina" item tag reduce stamina by generic.item_use_stamina_cost when they are used once. When stamina is < 0 the use action is not performed. In that case the item gets a cooldown, configured in the server config.
- Items in the "staminaattributes:continuous_using_costs_stamina" item tag reduce stamina by generic.item_use_stamina_cost every tick while they are used. When stamina is < 0, the usage is cancelled. In that case the item gets a cooldown, configured in the server config.
Default attribute values
- generic.max_stamina: 10
- generic.stamina_regeneration: 0
- generic.stamina_tick_threshold: 20
- generic.stamina_regeneration_delay_threshold: 20
- generic.depleted_stamina_regeneration_delay_threshold: 60
- generic.reserved_stamina: 0
- generic.item_use_stamina_cost: 0
Default item tags
"staminaattributes:using_costs_stamina":
{
"values": [
"minecraft:snowball"
]
}
"staminaattributes:continuous_using_costs_stamina":
{
"values": [
"minecraft:bow",
"minecraft:crossbow",
"minecraft:shield"
]
}
Customization
When the gamerule "naturalStaminaRegeneration" is true, players have a stamina regeneration of at least 1.
The client config allows customizing the HUD element. The details are explained in this wiki article.
The server config controls the integration with game mechanics, like stamina costs for various actions like jumping.
API
Casting a "LivingEntity" to the "StaminaUsingEntity" interface gives access to all relevant methods.
Stamina Attributes
This API adds a stamina system controlled by entity attributes.
Default implementation
LivingEntities can have up to staminaattributes:max_stamina amounts of stamina. Stamina is regenerated by staminaattributes:stamina_regeneration every staminaattributes:stamina_tick_threshold ticks.
When stamina is reduced, regeneration is stopped for staminaattributes:stamina_regeneration_delay_threshold ticks.
When stamina is <= 0, regeneration is stopped for staminaattributes:depleted_stamina_regeneration_delay_threshold ticks.
staminaattributes:reserved_stamina describes the percentage amount of maximum stamina that is currently not available.
staminaattributes:item_use_stamina_cost is the amount of stamina that is reduced when using an item with a stamina cost. There are two ways to give an item a stamina cost:
- Items in the "staminaattributes:using_costs_stamina" item tag reduce stamina by staminaattributes:item_use_stamina_cost when they are used once. When stamina is < 0 the use action is not performed. In that case the item gets a cooldown, configured in the server config.
- Items in the "staminaattributes:continuous_using_costs_stamina" item tag reduce stamina by staminaattributes:item_use_stamina_cost every tick while they are used. When stamina is < 0, the usage is cancelled. In that case the item gets a cooldown, configured in the server config.
The different staminaattributes:*_tick_stamina_cost attributes describe the stamina cost for the corresponding activity. This cost is applied every tick (20x per second). This includes the following activities:
- sprinting
- sneaking
- walking
- swimming
- walking underwater
- walking in water
- climbing
The different staminaattributes:*_action_stamina_cost attributes describe the stamina cost for the corresponding actions. This cost is applied once every time the action is performed. This includes the following actions:
- jumping
- sprint jumping
- attack blocking
- attacking
- block breaking
Several activities and actions can be configured to require stamina. If stamina is 0 or lower, they can't be performed. This includes:
- jumping
- sprinting
- swimming
- attacking
- block breaking
- attacking
- attack blocking
Blocks that can be broken instantly by hand (blocks with a "destroyTime" of 0) can be excluded from the stamina requirement.
Exhaustion
If a player has 0 or less stamina, they are exhausted, which means that a status effect is applied. This status effect is defined in the server config.
This feature can be enabled in the server config, but it's disabled by default.
Default attribute values
- staminaattributes:max_stamina: 10 (10 for players)
- staminaattributes:stamina_regeneration: 0 (1 for players)
- staminaattributes:stamina_tick_threshold: 20
- staminaattributes:stamina_regeneration_delay_threshold: 20
- staminaattributes:depleted_stamina_regeneration_delay_threshold: 60
- staminaattributes:reserved_stamina: 0
- staminaattributes:item_use_stamina_cost: 0 (0.05 for players)
- staminaattributes:sprinting_tick_stamina_cost: 0 (0.05 for players)
- staminaattributes:sneaking_tick_stamina_cost: 0 (0.05 for players)
- staminaattributes:walking_tick_stamina_cost: 0
- staminaattributes:swimming_tick_stamina_cost: 0 (0.05 for players)
- staminaattributes:walking_underwater_tick_stamina_cost: 0 (0.05 for players)
- staminaattributes:walking_in_water_tick_stamina_cost: 0 (0.05 for players)
- staminaattributes:climbing_tick_stamina_cost: 0 (0.05 for players)
- staminaattributes:jumping_action_stamina_cost: 0 (1 for players)
- staminaattributes:sprint_jumping_action_stamina_cost: 0 (1 for players)
- staminaattributes:attack_blocking_action_stamina_cost: 0 (1 for players)
- staminaattributes:attacking_action_stamina_cost: 0 (1 for players)
- staminaattributes:block_breaking_action_stamina_cost: 0 (1 for players)
All default values for players can be set in the server config.
Default item tags
"staminaattributes:using_costs_stamina":
{
"values": [
"minecraft:snowball"
]
}
"staminaattributes:continuous_using_costs_stamina":
{
"values": [
"minecraft:bow",
"minecraft:crossbow",
"minecraft:shield"
]
}
Customization
The client config allows customizing the HUD element.
Using the stamina system
Java
Casting a "LivingEntity" to the "StaminaUsingEntity" interface gives access to all relevant methods.
Data packs
Stamina Attributes implements several data driven methods to interact with the current stamina value of an entity.
- the "staminaattributes:add_stamina" enchantment effect allows adding a defined amount to the current stamina
- the "staminaattributes:stamina_using_entity" entity sub predicate passes when the current stamina of an entity matches the defined range
Example
This enchantment reduces stamina of the attacker by 2, as long as the attacker has at least 5 stamina:
{
"anvil_cost": 1,
"description": {
"translate": "enchantment.staminaattributes.test"
},
"effects": {
"minecraft:post_attack": [
{
"affected": "attacker",
"effect": {
"type": "staminaattributes:add_stamina",
"amount": {
"type": "minecraft:linear",
"base": -2.0,
"per_level_above_first": -2.0
}
},
"enchanted": "attacker",
"requirements": {
"condition": "minecraft:entity_properties",
"entity": "direct_attacker",
"predicate": {
"type_specific": {
"type": "staminaattributes:stamina_using_entity",
"stamina_amount": {
"min": 5.0
}
}
}
}
}
]
},
"max_cost": {
"base": 25,
"per_level_above_first": 8
},
"max_level": 1,
"min_cost": {
"base": 5,
"per_level_above_first": 8
},
"slots": [
"hand"
],
"supported_items": "#minecraft:swords",
"weight": 5
}
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers