Stamina Attributes

Quick rating

Stamina Attributes

No reviews yet

A small API that adds a stamina system controlled by entity attributes.

No Theme
Adventure/Exploration
Hunger & Stamina
API/Library
Mod Loaders
Fabric
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Required
Server Required

About

Project Details

Type
Mod
License
MIT License
Latest Version
stamina-attributes-4.0.0.jar
Authors
CurseForge
Modrinth

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.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

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:

  1. 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.
  2. 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:

  1. 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.
  2. 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
}

Screenshots

Gallery

  • Alternative Stamina Bar
    Alternative Stamina Bar This can be enabled and configured in the client configuration.
  • Default Stamina Bar
    Default Stamina Bar

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

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

~120,000
Total Downloads
CurseForge
~85,000
Modrinth
~35,000
Last Updated
CurseForge
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works