Skip to content

Weapons

Weapons are combat items that define attack patterns, damage values, and special abilities. Hytale features 23 distinct weapon categories with sophisticated interaction systems for melee and ranged combat.

Server Definitions: Assets/Server/Item/Items/Weapon/[Category]/ Client Models: Assets/Common/Items/Weapons/[Category]/ Interactions: Assets/Server/Item/Interactions/Weapons/[Category]/

Hytale includes 23 weapon categories, each with unique mechanics:

CategoryFilesTemplateDescription
Sword24YesBalanced melee with signature “Vortexstrike” ability
Axe13NoHeavy swings with ±20% damage variance
Battleaxe8YesTwo-handed with powerful charged attacks
Club6NoBlunt weapons with stun potential
Daggers10YesFast dual-wield attacks
Longsword7NoExtended reach melee
Mace9YesHeavy blunt damage with knockback
Spear17NoStackable throwable with stab attacks
Claws3NoClose-range rapid attacks
CategoryFilesTemplateDescription
Shortbow19YesCharge-based arrows with “Volley” signature
Crossbow8YesHigh-damage single shots
Blowgun2NoDart projectiles
Gun4NoFirearm projectiles
CategoryFilesTemplateDescription
Staff25NoMagic projectile casters
Wand5NoLight magic weapons
Spellbook3NoSpell casting items
CategoryFilesTemplateDescription
Bomb4NoExplosive thrown items
Dart2NoSmall thrown projectiles
Kunai2NoNinja throwing weapons
Arrow15NoAmmunition for bows
CategoryFilesTemplateDescription
Shield12YesBlocking and bash attacks
CategoryFilesTemplateDescription
Deployable3NoPlaceable combat items
_Debug5NoDevelopment/testing weapons
FieldTypeDescription
ParentstringTemplate to inherit from
TranslationPropertiesobjectLocalization configuration
ModelstringPath to .blockymodel file
TexturestringPath to texture file
IconstringPath to inventory icon
QualitystringQuality tier
ItemLevelintegerLevel requirement
Categoriesstring[]Always includes "Items.Weapons"
TagsobjectType and family classification
FieldTypeDefaultDescription
MaxDurabilitynumber80Maximum durability points
DurabilityLossOnHitnumber0.21Durability lost per attack
PlayerAnimationsIdstring-Animation set (Sword, Bow, Axe, etc.)
Reticlestring"DefaultMelee"Crosshair type
ItemSoundSetIdstring-Sound effect collection
FieldTypeDescription
InteractionsobjectMaps Primary, Secondary, Ability1 to root interactions
InteractionVarsobjectDamage values, effects, and behaviors per attack
WeaponobjectWeapon-specific configuration (stats, modifiers)
FieldTypeDefaultDescription
StatModifiersmap<string, StaticModifier[]>Stat modifiers applied while the weapon is held
EntityStatsToClearstring[]Entity stats to reset when switching to this weapon
RenderDualWieldedbooleanfalseWhether to render the weapon in both hands (used by daggers)

Seven weapon types have official templates that define base mechanics:

Template_Weapon_Sword.json
{
"TranslationProperties": {
"Name": "server.items.Template_Weapon_Sword.name"
},
"DroppedItemAnimation": "Items/Animations/Dropped/Dropped_Diagonal_Left.blockyanim",
"Model": "Items/Weapons/Sword/Iron.blockymodel",
"Texture": "Items/Weapons/Sword/Iron_Texture.png",
"Icon": "Icons/ItemsGenerated/Weapon_Sword_Iron.png",
"PlayerAnimationsId": "Sword",
"Reticle": "DefaultMelee",
"Quality": "Template",
"ItemLevel": 15,
"Categories": ["Items.Weapons"],
"Interactions": {
"Primary": "Root_Weapon_Sword_Primary",
"Secondary": "Root_Weapon_Sword_Secondary_Guard",
"Ability1": "Root_Weapon_Sword_Signature_Vortexstrike"
},
"Tags": {
"Type": ["Weapon"],
"Family": ["Sword"]
},
"Weapon": {
"EntityStatsToClear": ["SignatureEnergy"],
"StatModifiers": {
"SignatureEnergy": [{ "Amount": 20, "CalculationType": "Additive" }]
}
},
"ItemSoundSetId": "ISS_Weapons_Blade_Large",
"MaxDurability": 80,
"DurabilityLossOnHit": 0.21
}
Weapon_Sword_Iron.json
{
"Parent": "Template_Weapon_Sword",
"TranslationProperties": {
"Name": "server.items.Weapon_Sword_Iron.name"
},
"Model": "Items/Weapons/Sword/Iron.blockymodel",
"Texture": "Items/Weapons/Sword/Iron_Texture.png",
"Quality": "Uncommon",
"Icon": "Icons/ItemsGenerated/Weapon_Sword_Iron.png",
"ItemLevel": 20,
"Recipe": {
"TimeSeconds": 3.5,
"KnowledgeRequired": false,
"Input": [
{ "ItemId": "Ingredient_Bar_Iron", "Quantity": 6 },
{ "ItemId": "Ingredient_Leather_Light", "Quantity": 3 },
{ "ItemId": "Ingredient_Fabric_Scrap_Linen", "Quantity": 3 }
],
"BenchRequirement": [
{
"Type": "Crafting",
"Categories": ["Weapon_Sword"],
"Id": "Weapon_Bench"
}
]
},
"InteractionVars": {
"Swing_Left_Damage": {
"Interactions": [{
"Parent": "Weapon_Sword_Primary_Swing_Left_Damage",
"DamageCalculator": { "BaseDamage": { "Physical": 9 } },
"DamageEffects": {
"WorldSoundEventId": "SFX_Sword_T2_Impact",
"LocalSoundEventId": "SFX_Sword_T2_Impact"
}
}]
},
"Swing_Right_Damage": {
"Interactions": [{
"Parent": "Weapon_Sword_Primary_Swing_Right_Damage",
"DamageCalculator": { "BaseDamage": { "Physical": 10 } },
"DamageEffects": {
"WorldSoundEventId": "SFX_Sword_T2_Impact",
"LocalSoundEventId": "SFX_Sword_T2_Impact"
}
}]
},
"Swing_Down_Damage": {
"Interactions": [{
"Parent": "Weapon_Sword_Primary_Swing_Down_Damage",
"DamageCalculator": { "BaseDamage": { "Physical": 18 } },
"DamageEffects": {
"WorldSoundEventId": "SFX_Sword_T2_Impact",
"LocalSoundEventId": "SFX_Sword_T2_Impact"
}
}]
},
"Thrust_Damage": {
"Interactions": [{
"Parent": "Weapon_Sword_Primary_Thrust_Damage",
"DamageCalculator": { "BaseDamage": { "Physical": 26 } },
"EntityStatsOnHit": [{ "EntityStatId": "SignatureEnergy", "Amount": 3 }],
"DamageEffects": {
"WorldSoundEventId": "SFX_Sword_T2_Impact",
"LocalSoundEventId": "SFX_Sword_T2_Impact"
}
}]
},
"Vortexstrike_Spin_Damage": {
"Interactions": [{
"Parent": "Weapon_Sword_Signature_Vortexstrike_Spin_Damage",
"DamageCalculator": { "BaseDamage": { "Physical": 19 } },
"DamageEffects": {
"WorldSoundEventId": "SFX_Sword_T2_Impact",
"LocalSoundEventId": "SFX_Sword_T2_Impact"
}
}]
},
"Vortexstrike_Stab_Damage": {
"Interactions": [{
"Parent": "Weapon_Sword_Signature_Vortexstrike_Stab_Damage",
"DamageCalculator": { "BaseDamage": { "Physical": 56 } },
"DamageEffects": {
"WorldSoundEventId": "SFX_Sword_T2_Impact",
"LocalSoundEventId": "SFX_Sword_T2_Impact"
}
}]
},
"Guard_Wield": {
"Interactions": [{
"Parent": "Weapon_Sword_Secondary_Guard_Wield",
"StaminaCost": { "Value": 10, "CostType": "Damage" }
}]
}
},
"MaxDurability": 120,
"DurabilityLossOnHit": 0.21
}
Weapon_Axe_Iron.json
{
"TranslationProperties": {
"Name": "server.items.Weapon_Axe_Iron.name"
},
"Categories": ["Items.Weapons"],
"Icon": "Icons/ItemsGenerated/Weapon_Axe_Iron.png",
"Quality": "Uncommon",
"ItemLevel": 20,
"Recipe": {
"TimeSeconds": 3.5,
"KnowledgeRequired": false,
"Input": [
{ "ItemId": "Ingredient_Bar_Iron", "Quantity": 4 },
{ "ItemId": "Ingredient_Fabric_Scrap_Linen", "Quantity": 3 },
{ "ItemId": "Ingredient_Leather_Light", "Quantity": 4 }
],
"BenchRequirement": [
{ "Type": "Crafting", "Categories": ["Weapon_Axe"], "Id": "Weapon_Bench" }
]
},
"Model": "Items/Weapons/Axe/Iron.blockymodel",
"Texture": "Items/Weapons/Axe/Iron_Texture.png",
"PlayerAnimationsId": "Axe",
"Utility": { "Compatible": true },
"Interactions": {
"Primary": "Axe_Attack"
},
"InteractionVars": {
"Axe_Swing_Down_Left_Effect": {
"Interactions": [{
"Parent": "Axe_Swing_Down_Left_Effect",
"Effects": { "WorldSoundEventId": "SFX_Axe_Iron_Swing" }
}]
},
"Axe_Swing_Down_Left_Damage": {
"Interactions": [{
"Parent": "Axe_Swing_Down_Left_Damage",
"DamageCalculator": {
"Type": "Absolute",
"BaseDamage": { "Physical": 17 },
"RandomPercentageModifier": 0.2
},
"DamageEffects": { "WorldSoundEventId": "SFX_Axe_Iron_Impact" }
}]
},
"Axe_Swing_Up_Right_Damage": {
"Interactions": [{
"Parent": "Axe_Swing_Up_Right_Damage",
"DamageCalculator": {
"Type": "Absolute",
"BaseDamage": { "Physical": 17 },
"RandomPercentageModifier": 0.2
},
"DamageEffects": { "WorldSoundEventId": "SFX_Axe_Iron_Impact" }
}]
},
"Axe_Swing_Left_Charged_Damage": {
"Interactions": [{
"Parent": "Axe_Swing_Left_Charged_Damage",
"DamageCalculator": {
"BaseDamage": { "Physical": 34 },
"Type": "Absolute",
"RandomPercentageModifier": 0.2
},
"DamageEffects": { "WorldSoundEventId": "SFX_Axe_Iron_Impact" }
}]
}
},
"IconProperties": {
"Scale": 0.45,
"Translation": [-26, -25],
"Rotation": [45, 90, 0]
},
"DroppedItemAnimation": "Items/Animations/Dropped/Dropped_Diagonal_Left.blockyanim",
"MaxDurability": 120,
"DurabilityLossOnHit": 0.56,
"Tags": { "Type": ["Weapon"], "Family": ["Axe"] },
"Weapon": {},
"ItemAppearanceConditions": {
"Health": [
{
"Particles": [{ "SystemId": "Torch_Fire" }],
"Model": "Items/Weapons/Axe/Iron.blockymodel",
"Texture": "Items/Weapons/Axe/Iron_Texture.png",
"Condition": [0, 20]
},
{
"Particles": [{ "SystemId": "Torch_Fire" }],
"Texture": "Items/Weapons/Axe/Iron_Rusty_Texture.png",
"Condition": [21, 40]
}
]
},
"ItemSoundSetId": "ISS_Weapons_Blunt_Small"
}
Weapon_Spear_Iron.json
{
"TranslationProperties": {
"Name": "server.items.Weapon_Spear_Iron.name"
},
"Categories": ["Items.Weapons"],
"Quality": "Uncommon",
"ItemLevel": 20,
"Model": "Items/Weapons/Spear/Iron.blockymodel",
"Texture": "Items/Weapons/Spear/Iron_Texture.png",
"MaxStack": 30,
"IconProperties": {
"Scale": 0.24,
"Translation": [-58, -58],
"Rotation": [45, 90, 0]
},
"Interactions": {
"Primary": "Spear_Attack",
"Secondary": "Spear_Block"
},
"InteractionVars": {
"Spear_Block_Damage": "Spear_Block_Damage",
"Spear_Stab_Effect": {
"Interactions": [{
"Parent": "Spear_Stab_Effect",
"Effects": { "WorldSoundEventId": "SFX_Axe_Special_Swing" }
}]
},
"Spear_Stab_Damage": {
"Interactions": [{
"Parent": "Spear_Stab_Damage",
"DamageCalculator": {
"BaseDamage": { "Physical": 6 },
"Type": "Absolute"
},
"DamageEffects": { "WorldSoundEventId": "SFX_Axe_Special_Impact" }
}]
},
"Spear_Throw_Charged_Projectile": {
"Interactions": [{
"Parent": "Spear_Throw_Charged_Projectile",
"ProjectileId": "Spear_Iron"
}]
}
},
"Icon": "Icons/ItemsGenerated/Weapon_Spear_Iron.png",
"DroppedItemAnimation": "Items/Animations/Dropped/Dropped_Diagonal_Left.blockyanim",
"PlayerAnimationsId": "Spear",
"Tags": { "Type": ["Weapon"], "Family": ["Spear"] },
"MaxDurability": 30,
"DurabilityLossOnHit": 0.56,
"Weapon": {},
"ItemSoundSetId": "ISS_Weapons_Wood"
}

The DamageCalculator object defines how damage is computed:

DamageCalculator structure
{
"DamageCalculator": {
"BaseDamage": {
"Physical": 17,
"Projectile": 0
},
"Type": "Absolute",
"RandomPercentageModifier": 0.2
}
}
TypeDescription
PhysicalMelee damage
ProjectileRanged damage
TypeDescription
AbsoluteDamage is used directly
(default)May apply modifiers

The RandomPercentageModifier adds variance to attacks:

  • 0.2 = ±20% damage variance
  • A 17 base damage attack deals 13-21 damage

InteractionVars define per-attack damage and effects:

VariablePurpose
Swing_Left_DamageLeft swing attack
Swing_Right_DamageRight swing attack
Swing_Down_DamageOverhead swing
Thrust_DamageStabbing attack
Vortexstrike_Spin_DamageSignature spin phase
Vortexstrike_Stab_DamageSignature stab finisher
Guard_WieldBlock stance
VariablePurpose
Primary_Shoot_ChargeCharging sound/effects
Primary_Shoot_Strength_[0-4]Shot power levels (0s to 1.2s+ charge)
Primary_Shoot_Damage_Strength_[0-4]Damage per power level
Primary_Shoot_Impact_Strength_[0-4]Hit effects per power
Primary_Shoot_Miss_Strength_[0-4]Miss effects per power
Signature_Volley_*Volley ability variants
Guard_WieldBlock with bow
Guard_BashMelee attack while blocking

Bows deal increasing damage based on charge time:

Charge LevelTimeProjectile Damage
00.0s6
10.3s10
20.6s12
30.9s14
41.2s+15

Weapons with templates include signature abilities that charge over combat:

  • Charges SignatureEnergy stat through combat
  • At 100% energy, activates via Ability1
  • Two-phase attack: spinning AoE + powerful stab
  • Visual particles indicate charged status
  • Charges SignatureEnergy and SignatureCharges
  • Fires multiple arrows simultaneously
  • Model swaps to show triple arrows when ready
  • 25 projectile damage per arrow

Weapons can change visuals based on stats:

Signature ability visual effects
{
"ItemAppearanceConditions": {
"SignatureEnergy": [
{
"Condition": [100, 100],
"ConditionValueType": "Percent",
"Particles": [
{
"SystemId": "Sword_Signature_Ready",
"TargetNodeName": "Handle",
"PositionOffset": { "X": 0.8 },
"TargetEntityPart": "PrimaryItem"
},
{
"SystemId": "Sword_Signature_Status",
"TargetNodeName": "Handle",
"PositionOffset": { "X": 0.55 },
"TargetEntityPart": "PrimaryItem",
"Scale": 1.3
}
],
"ModelVFXId": "Sword_Signature_Status"
}
]
}
}
PropertyTypeDescription
Condition[min, max]Value range to match
ConditionValueTypestring"Percent" or absolute
ModelstringOverride model path
TexturestringOverride texture path
ParticlesarrayParticle effects to spawn
ModelVFXIdstringVisual effect to apply
LocalSoundEventIdstringSound to play
WorldSoundEventIdstringWorld-audible sound

Weapons include inline recipes:

Recipe structure
{
"Recipe": {
"TimeSeconds": 3.5,
"KnowledgeRequired": false,
"Input": [
{ "ItemId": "Ingredient_Bar_Iron", "Quantity": 6 },
{ "ItemId": "Ingredient_Leather_Light", "Quantity": 3 },
{ "ItemId": "Ingredient_Fabric_Scrap_Linen", "Quantity": 3 }
],
"BenchRequirement": [
{
"Type": "Crafting",
"Categories": ["Weapon_Sword"],
"Id": "Weapon_Bench"
}
]
}
}
PropertyTypeDescription
TimeSecondsnumberCrafting duration
KnowledgeRequiredbooleanWhether recipe must be learned
InputarrayRequired materials
BenchRequirementarrayRequired crafting stations

Common weapon sound sets:

Sound SetWeapon Types
ISS_Weapons_Blade_LargeSwords, longswords
ISS_Weapons_Blade_SmallDaggers
ISS_Weapons_Blunt_SmallAxes, maces, clubs
ISS_Weapons_Blunt_LargeBattleaxes
ISS_Weapons_WoodBows, staves, spears

Each weapon type has a PlayerAnimationsId:

Animation IDUsed By
SwordSwords
BowShortbows, crossbows
AxeAxes, battleaxes
SpearSpears
StaffStaves, wands
ShieldShields
DaggerDaggers
ItemDefault items
WeaponExample.java
import com.hypixel.hytale.server.core.asset.type.item.config.Item;
import com.hypixel.hytale.server.core.asset.type.item.config.ItemWeapon;
public class WeaponExample {
public void accessWeapons() {
Item sword = Item.getAssetMap().get("Weapon_Sword_Iron");
if (sword != null) {
// Check if it's a weapon
ItemWeapon weaponConfig = sword.getWeapon();
if (weaponConfig != null) {
// Access weapon-specific properties
}
// Get combat properties
double maxDurability = sword.getMaxDurability();
double durabilityLoss = sword.getDurabilityLossOnHit();
String animationSet = sword.getPlayerAnimationsId();
// Get interactions
Map<InteractionType, String> interactions = sword.getInteractions();
String primaryAttack = interactions.get(InteractionType.Primary);
}
}
}
MyPlugin_Sword_Custom.json
{
"Parent": "Template_Weapon_Sword",
"TranslationProperties": {
"Name": "server.items.MyPlugin_Sword_Custom.name"
},
"Model": "MyPlugin/Weapons/Sword/Custom.blockymodel",
"Texture": "MyPlugin/Weapons/Sword/Custom_Texture.png",
"Icon": "Icons/ItemsGenerated/MyPlugin_Sword_Custom.png",
"Quality": "Rare",
"ItemLevel": 35,
"MaxDurability": 150,
"InteractionVars": {
"Swing_Left_Damage": {
"Interactions": [{
"Parent": "Weapon_Sword_Primary_Swing_Left_Damage",
"DamageCalculator": { "BaseDamage": { "Physical": 15 } }
}]
},
"Swing_Right_Damage": {
"Interactions": [{
"Parent": "Weapon_Sword_Primary_Swing_Right_Damage",
"DamageCalculator": { "BaseDamage": { "Physical": 16 } }
}]
},
"Swing_Down_Damage": {
"Interactions": [{
"Parent": "Weapon_Sword_Primary_Swing_Down_Damage",
"DamageCalculator": { "BaseDamage": { "Physical": 28 } }
}]
},
"Thrust_Damage": {
"Interactions": [{
"Parent": "Weapon_Sword_Primary_Thrust_Damage",
"DamageCalculator": { "BaseDamage": { "Physical": 38 } }
}]
}
}
}

For unique weapon behaviors, define all interactions manually:

MyPlugin_Weapon_Unique.json
{
"TranslationProperties": {
"Name": "server.items.MyPlugin_Weapon_Unique.name"
},
"Model": "MyPlugin/Weapons/Unique.blockymodel",
"Texture": "MyPlugin/Weapons/Unique_Texture.png",
"Icon": "Icons/ItemsGenerated/MyPlugin_Weapon_Unique.png",
"Quality": "Epic",
"ItemLevel": 50,
"Categories": ["Items.Weapons"],
"PlayerAnimationsId": "Sword",
"Reticle": "DefaultMelee",
"Tags": { "Type": ["Weapon"], "Family": ["Unique"] },
"Interactions": {
"Primary": "MyPlugin_Unique_Primary",
"Secondary": "MyPlugin_Unique_Secondary"
},
"InteractionVars": {
"Primary_Attack_Damage": {
"Interactions": [{
"Parent": "MyPlugin_Unique_Primary_Damage",
"DamageCalculator": {
"BaseDamage": { "Physical": 25 },
"Type": "Absolute"
}
}]
}
},
"Weapon": {},
"MaxDurability": 200,
"DurabilityLossOnHit": 0.15,
"ItemSoundSetId": "ISS_Weapons_Blade_Large"
}
  1. Use templates: Inherit from existing templates for consistent combat feel
  2. Balance damage curves: Follow existing patterns for material tiers
  3. Include sound effects: Use appropriate ItemSoundSetId and DamageEffects
  4. Set proper durability: Higher tier = higher durability
  5. Test all attacks: Verify each InteractionVar works correctly
  6. Match animation set: Use compatible PlayerAnimationsId
  7. Prefix IDs: Use plugin name prefix for all custom weapons