Перейти к содержимому
Mineforgian

Vantage Tacz Compat

A TaCZ addon that inflicts body-part-specific wounds on gunshots — head trauma, bleeding, fractures — with a painkiller system to suppress symptoms. Built for Vantage: Zero.

Загрузки
322
Подписчики
2
Обновлён
14 июля 2026 г.
Лицензия
MIT

Опубликован 7 июня 2026 г.

Vantage TaCZ Compat

A comprehensive mod adding body-part injuries, a consumable medical system, a weight system, stamina mechanics, and AI enemies for the TaCZ gun mod — built for the Vantage: Zero modpack.

Core Features

Weight System

  • Inventory items have weight (KG); main inventory and offhand count toward total weight
  • Three-tier status: Normal → Encumbrance (slowdown) → Overloaded (severe slowdown + jump reduction)
  • Configurable thresholds (default: heavy 80 KG, overload 150 KG)
  • Weight Limit Boost effect temporarily raises both thresholds
  • Independent armor slowdown: worn armor slows the player by its weight (default 80% of weight as %), stacking with the weight system
  • Different armor materials have different weights: Leather 10 KG/set, Iron 26 KG/set, Netherite 42 KG/set
  • Item tooltips show weight; armor additionally shows red "-X% Move Speed"

Body-Part Injury System

  • TaCZ gunshot hits are judged by hit location — does NOT use TaCZ's isHeadShot()
  • 7 body parts: Head, Abdomen, Left/Right Arm, Left/Right Leg
  • 4 wound effects:
    • Heavy Wound (Head, 20% chance): max health -10%
    • Abdomen Wound (Abdomen, 20% chance): max health -10%
    • Bleeding (Arms, 30% chance): 1 damage every ~6s, up to 4 layers, stops at HP ≤1
    • Fracture (Legs, 20% chance): -15% speed per leg, -30% with both legs
  • All wounds persist until treated or death
  • Fall fracture: ≥5 block fall triggers, base 50% + 10% per block

Painkiller System

  • Painkiller suppresses bleeding damage and fracture slowdowns (HUD icons remain visible)
  • Fractures can still stack while suppressed
  • On expiry: nausea + scream sound if heavy/abdomen wounds present

Consumable Medical System

  • Wheel UI (B key): ToolBelt-style radial selector, auto-aggregates inventory consumables
  • First-person 3D animation: model follows view, with camera shake, player arms, environment lighting
  • In-use HUD: progress bar + item name + remaining seconds + cancel hint
  • Two durability modes:
    • proportional: consumes durability proportional to missing health — for healing items
    • fixed: 1 durability per use — for wound-clearing items
  • Pre-use checks: blocks use if health full or no matching wound, with feedback message
  • Use restrictions: no hotbar switching / inventory / firing / drop / swap during use
  • Cancel: press R to cancel (HUD shows key hint, supports mouse button icons)
  • 7 default consumables: Bandage, Painkiller, Stim, Syringe, Medical Kit, Tourniquet, M2 IM Injection

New Armor Mechanic (TaCZ Bullet Damage)

  • Bullet damage splits by armor_ignore: piercing portion damages health, non-piercing consumes body-part armor durability
  • Armor durability exhausted but NOT destroyed — protection gone, reserved for repair
  • Consumables can repair armor, but permanently reduce its max durability cap

Stamina System

  • Sprint drains stamina, idle regenerates (with short delay)
  • Fatigued state when exhausted — blocks sprint until recovered
  • Jumping costs 10, sliding costs 20
  • Stamina Restore effect instantly refills
  • Vanilla hunger disabled (requires HungerStrike)
  • Aiming cancels sprint
  • Slide (V key, disabled by default): slide while sprinting, 30-tick speed decay, slide-jump boost

Player Health

  • Base health = 20 + 30 = 50 HP (25 hearts), configurable
  • Fully restored on first join and respawn

HUD Overlays

  • Health: avatar + health bar + percentage + 4 armor durability icons + oxygen bar
  • Stamina: bar above hotbar, hides when full, turns red below 20
  • Effect status: 9×9 effect blocks with smooth progress fill
  • Consumable use: progress bar + info below crosshair

AI Enemies

  • Soldier: 3-state AI (Patrol → Alert → Combat), random SMG, squad aggro sharing
  • Sniper: immobilized, random sniper rifle, 3~6s shot interval
  • Configurable AI parameters and gun blacklist
  • Creative tab spawn eggs

Key Bindings

Key Default Function
Consumable Wheel B Open consumable selection wheel
Cancel Use R Cancel active consumable use
Slide V Slide while sprinting (if enabled)

Dependencies

Mod Required Notes
Forge Yes ≥46
Minecraft Yes 1.20.1
TaCZ Yes ≥1.1.4
HungerStrike Yes Disables vanilla hunger
PlayerAnimator No Slide animations (optional)
ParCool No Stim effect (optional)

Localization

  • English (US)
  • 简体中文

Usage Guide

Installation

  1. Install Minecraft 1.20.1 + Forge 47.x
  2. Place the following mods into the mods/ folder:
    • TaCZ (≥1.1.4)
    • HungerStrike (≥8.0.0)
    • Vantage TaCZ Compat (this mod)
  3. Launch the game

Quick Start

1. Injuries & Treatment

  • After being shot by a TaCZ weapon, you may receive different wounds depending on hit location (head Heavy Wound, abdomen Abdomen Wound, arm Bleeding, leg Fracture)
  • Press B to open the consumable wheel and select the appropriate item:
    • Bleeding → use Tourniquet or Bandage
    • Heavy Wound / Abdomen Wound / Fracture → use Bandage
    • Low health → use Medical Kit or Syringe
    • Need sustained combat → use Painkiller (suppression) or Stim (speed)
  • You can also use Painkiller to temporarily suppress bleeding and fracture effects (beware of comedown)

2. Weight Management

  • Open your inventory and hover over items to see their weight (KG)
  • Total weight above 80 KG → Encumbrance (light slowdown)
  • Total weight above 150 KG → Overloaded (severe slowdown + jump reduction)
  • Armor weight does NOT count toward inventory weight, but armor independently slows you (heavier armor = more slowdown)
  • The Weight Limit Boost effect temporarily raises thresholds

3. Stamina Management

  • Sprinting drains stamina; when exhausted, you cannot sprint until you recover above 20
  • The stamina bar is above the hotbar; it turns red below 20
  • Jumping costs 10 stamina, sliding costs 20

4. Consumable Use Flow

  1. Press B to open the wheel
  2. Move the mouse to the target consumable's sector (center shows the item name)
  3. Release B to confirm use
  4. During use:
    • A progress bar and remaining time appear at the bottom of the screen
    • Slowness II is applied to the player
    • Hotbar switching, inventory, firing, and item dropping are disabled
    • Press R to cancel (no effects consumed)
  5. When use completes, the gun draw sound plays automatically

Configuration

All settings are in config/vantagetaczcompat-common.toml. Changes require a game restart. Key sections:

Weight

[Weight]
    weightMax = 200.0              # Maximum weight cap
    heavyThreshold = 80.0          # Encumbrance threshold
    overloadThreshold = 150.0      # Overload threshold
    armorSpeedPenaltyPerKg = 0.8   # Armor slowdown factor (0.8 = 80% of weight)
    overloadJumpReduction = 0.5    # Overload jump reduction (0.5 = 50% less height)
    weightLimitBoostAmount = 40.0  # Weight Limit Boost effect amount
    # Item weight overrides, format: mod:item,weight
    itemWeights = ["minecraft:iron_block,8.0", "minecraft:netherite_chestplate,16.0", ...]

Wounds

[Damage Multipliers]
    headDamageMultiplier = 1.0       # Head damage multiplier
    abdomenDamageMultiplier = 1.0    # Abdomen damage multiplier
    limbDamageMultiplier = 0.3       # Limb damage multiplier

[Bullet Wound Chances]
    headWoundChance = 0.20           # Head → Heavy Wound chance
    abdomenWoundChance = 0.20        # Abdomen → Abdomen Wound chance
    bleedingChance = 0.30            # Arm → Bleeding chance
    fractureChance = 0.20            # Leg → Fracture chance

[Fall Fracture]
    fallFractureChance = 0.50        # Base fracture chance
    fallFractureMinDistance = 5.0    # Minimum fall distance
    fallFractureChancePerBlock = 0.10 # Chance per additional block

Stamina

[Stamina Values]
    staminaMax = 100.0            # Maximum stamina
    staminaSprintDrain = 0.2      # Sprint drain per tick
    staminaRegen = 0.3            # Idle regen per tick
    staminaRegenDelay = 20        # Regen delay after drain (ticks)
    staminaJumpCost = 10.0        # Jump cost
    staminaSlideCost = 20.0       # Slide cost

Consumable Use

[Consumable Use]
    healIntervalTicks = 5          # Heal loop interval (ticks)
    slowdownAmplifier = 1          # Slowdown amplifier (1 = Slowness II)
    slowdownExtraDuration = 20     # Extra slowdown after animation (ticks)

New Armor Mechanic

[New Armor Mechanic]
    enableNewArmorMechanic = true  # Toggle
    armorDurabilityMultiplier = 4.0 # Non-piercing damage → armor durability factor

Custom Consumables

This mod loads consumables via the TaCZ extension pack mechanism. The default pack is at .minecraft/tacz/vtc_default_consumable/.

Adding a New Consumable

  1. Create files in the extension pack directory:

    vtc_default_consumable/
    └── assets/vantagetaczcompat/
        ├── consumable/my_item.json                  ← Definition
        ├── geo_models/consumable/my_item_geo.json   ← 3D model
        ├── animations/consumable/my_item.animation.json ← Use animation
        └── textures/consumable/
            ├── model/my_item.png                    ← 3D model texture
            └── slot/my_item.png                     ← 2D inventory icon
    
  2. Definition file example:

    {
      "name": "item.vantagetaczcompat.my_item",
      "model": "vantagetaczcompat:consumable/my_item_geo",
      "texture": "vantagetaczcompat:consumable/model/my_item",
      "slot_texture": "vantagetaczcompat:consumable/slot/my_item",
      "animation": "vantagetaczcompat:consumable/my_item_use",
      "animation_duration": 3.0,
      "heal_start_delay": 0.5,
      "durability": 4,
      "use_ticks": 60,
      "durability_mode": "fixed",
      "armor_repair_type": null,
      "armor_max_durability_reduction_percent": 0.0,
      "effects_to_apply": [
        { "id": "vantagetaczcompat:clear_wound", "duration": 1, "amplifier": 0 }
      ],
      "effects_to_remove": []
    }
    
  3. Add the translation in the lang file:

    { "item.vantagetaczcompat.my_item": "My Item" }
    
  4. Press F3+T to hot-reload resources — the new consumable will appear in the creative tab immediately

For full field reference, see docs/consumable_json_format.md in the project.

Custom Item Weights

Add entries to itemWeights in the config:

itemWeights = [
    "minecraft:iron_block,8.0",
    "mymod:my_item,15.5"
]

Format is mod:item,weight. Unlisted items use the default formula (based on stack ratio).

Obtaining Consumables

Open the creative inventory and find the Vantage TaCZ Compat tab. All loaded consumables are displayed dynamically. They share a single registered Item, distinguished by the ConsumableId NBT tag.

FAQ

Q: Consumables don't appear? A: Ensure .minecraft/tacz/vtc_default_consumable/ exists and contains a consumable/ directory. The mod auto-exports on first launch. If missing, delete the directory and restart to regenerate it.

Q: Config changes don't take effect? A: Config changes require a game restart. Note that changing defaults in gradle.properties does NOT auto-update an existing toml file — either delete config/vantagetaczcompat-common.toml to regenerate it, or edit the toml file directly.

Q: Can't see the first-person animation? A: Make sure your main hand is empty or holding a consumable. The consumable model automatically hides the gun and appears during use.

Q: Cancel hint didn't update after rebinding? A: The HUD dynamically reads the current key binding and shows the corresponding hint, including mouse button icons. Changes take effect immediately.

Q: Why doesn't armor disappear at 0 durability? A: This is by design in the new armor mechanic. Armor at 0 durability loses its protection but is preserved as an item, reserved for future repair consumables.

Q: How to disable sliding? A: Set enableSlide = false in the config (disabled by default).

Ченджлог

2.0.0Бета1.20.1 · 14 июля 2026 г.

2.0.0 Beta

Weight System

  • Added inventory weight system: main inventory (slots 0-35) and offhand (×1.5) count toward total weight, capped at weightMax (default 200 KG)
  • Armor slots do NOT count toward inventory weight — armor slowdown is handled by a separate system
  • Three-tier status based on effective thresholds (config + Weight Limit Boost bonus):
    • Below heavyThreshold (default 80 KG): normal
    • heavyThreshold ~ overloadThreshold (default 150 KG): Encumbrance — light speed penalty (0~6%)
    • Above overloadThreshold: Overloaded — heavy speed penalty (8~20%) + jump height reduction
  • Overloaded jump reduction: Y-momentum cut by overloadJumpReduction (default 0.5 = 50% less height), scaled higher as weight increases
  • New effects: encumbrance (HARMFUL), overloaded (HARMFUL), weight_limit_boost (BENEFICIAL, raises both thresholds)
  • All three effects show icons in the effect overlay

Armor Speed Penalty

  • Worn armor now slows the player independently of the weight system
  • Speed reduction = total armor weight × armorSpeedPenaltyPerKg (default 0.8 = 80% of weight as % slowdown)
  • Each armor material has a distinct weight (configurable via itemWeights):
    • Leather: 10 KG/set → 8% slowdown
    • Chainmail: 20 KG/set → 16% slowdown
    • Iron: 26 KG/set → 20.8% slowdown
    • Gold: 32 KG/set → 25.6% slowdown
    • Diamond: 34 KG/set → 27.2% slowdown
    • Netherite: 42 KG/set → 33.6% slowdown
  • Uses a separate attribute UUID from the weight system — both can stack

Item Weight Tooltip

  • All items display Weight: X.X KG (gray) in their tooltip
  • Armor items additionally display -X% Move Speed (red)
  • Weights respect stack count (matches inventory calculation)

Consumable System

  • Shared item: all consumables use one registered item vantagetaczcompat:consumable, distinguished by NBT ConsumableId
  • Resource loading: reuses TaCZ JsonDataManager / LazyJsonDataManager, supports F3+T hot-reload
  • Durability modes:
    • proportional (default): consumes durability proportional to missing health/armor — suited for healing items
    • fixed: 1 durability per use, uses = durability value — suited for wound-clearing items
  • Use precondition checks:
    • Proportional mode (healing): blocks use if health is full — shows "Health Full"
    • Fixed mode (wound clearing): blocks use if no matching wound — shows "No wound detected"
  • Use restrictions (during animation): no hotbar switching, no inventory (E), no scroll-wheel, no drop (Q), no swap (F), no TaCZ firing; ESC pause menu still works
  • Slowdown II applied for the animation duration + extra ticks
  • Cancel: press R (rebindable) during use to cancel — no effects applied
  • Cancel key hint: HUD shows "Press R to Cancel" (or mouse button icon + "Cancel" if rebound to mouse)
  • Draw sound: manually plays TaCZ gun draw sound after use ends (main hand item didn't switch, so TaCZ's native draw doesn't trigger)

Consumable Wheel UI

  • Press B (rebindable) to open a ToolBelt-style radial wheel
  • Inner radius 20px, outer radius 100px, smooth QUADS-rendered sectors
  • Scans inventory and aggregates consumables (same type merged, highest-durability stack used)
  • Center shows selected item name, hover shows tooltip
  • Release the key to use the selected consumable, right-click to close
  • Opening animation with radius gradient

First-Person Consumable Rendering

  • Intercepts RenderHandEvent at HIGHEST priority (before TaCZ's FirstPersonRenderHandler)
  • Uses TaCZ's renderFirstPerson PoseStack (screen coordinate system) — model follows view rotation
  • Applies AnimateGeoItemRenderer.applyFirstPersonPositioningTransform() for models with idle_view bone
  • Applies camera bone quaternion for camera shake animation
  • Renders player arms bound to lefthand_pos / righthand_pos bones using player skin texture
  • Uses event.getPackedLight() instead of hard-coded brightness — respects environment lighting
  • 2D inventory icons rendered by dedicated BEWLR (ConsumableItemRenderer) for GUI / third-person / ground contexts

Consumable Use HUD

  • Crosshair-below layout with 3 rows:
    • Row 1: progress bar (100×5, white fill, semi-transparent black background)
    • Row 2: item name (left) + remaining seconds (right)
    • Row 3: cancel hint — mouse button icon + "Cancel" if rebound to mouse, or "Press X to Cancel" if keyboard

Mouse Button Icons

  • 5 icons (left/right/middle/side1/side2) from sprite sheet textures/gui/mouse_buttons.png
  • Each source icon 67×67px, scaled to 16×16 for HUD display
  • Used in cancel hint when the cancel key is a mouse button

Default Consumables Pack

  • Renamed extension pack from migrated_testpack (namespace testpack) to vtc_default_consumable (namespace vantagetaczcompat)
  • 7 default consumables included:
    • Bandage (fixed, 4 uses): clears one wound layer
    • Painkiller (proportional, 5 durability): painkiller effect for 5 minutes
    • Stim (fixed, 1 use): ParCool inexhaustible effect for 9s
    • Syringe (proportional, 1 durability): Regeneration for 5s
    • Medical Kit (proportional, 8 durability): Regeneration for 5s
    • Tourniquet (fixed, 4 uses): clears one bleeding layer
    • M2 IM Injection (fixed, 1 use): Speed effect for 5 minutes
  • Each consumable ships with 3D geo model, use animation, model texture, and 2D slot texture

New Armor Mechanic (TaCZ Bullet Damage)

  • TaCZ bullet damage now splits by armor_ignore:
    • Piercing portion (damage × armorIgnore) → direct health damage
    • Non-piercing portion → consumes corresponding body-part armor durability (× armorDurabilityMultiplier, default 4×)
    • Overflow beyond armor durability → health damage
  • Armor durability exhausted but not destroyed (protected by Mixin) — protection gone, reserved for repair consumables
  • Body part → armor slot mapping: HEAD→helmet, ABDOMEN/arms→chestplate, legs→leggings
  • Only affects TaCZ bullet damage; other damage types keep vanilla armor reduction

Consumable Armor Repair

  • armor_repair_type supports "helmet" / "chest" / null
  • Repair permanently reduces armor max durability cap by armor_max_durability_reduction_percent (NBT vantagetaczcompat.max_damage_reduction)

Stamina System (Updated)

  • Sprint drains staminaSprintDrain (default 0.2/tick), regenerates staminaRegen (default 0.3/tick) after staminaRegenDelay (default 20 ticks)
  • Must have ≥25 stamina to start sprinting (won't interrupt mid-sprint)
  • Fatigued state when stamina ≤0 or <20 and not sprinting — blocks new sprint until >20
  • Jumping costs 10, sliding costs 20
  • stamina_restore: instantly restores stamina to full
  • stamina_infinite / stamina_finite: toggle infinite stamina
  • Vanilla hunger locked to 20 / saturation 5.0 (requires HungerStrike)
  • Aiming a TaCZ gun cancels sprint

Slide Mechanic (WIP, disabled by default)

  • Press V (rebindable) while sprinting ≥5 ticks to slide
  • 30-tick linear speed decay, crouching hitbox, locked direction
  • Slide-jump gives forward boost
  • 2s cooldown
  • Enable via enableSlide in config

Wound System (Updated)

  • Body-part detection uses hit coordinates + rotation matrix + local AABB — does NOT use TaCZ's isHeadShot()
  • 7 body parts: HEAD (y 1.5-2.0), ABDOMEN (y 0.8-1.5), LEFT_ARM/RIGHT_ARM, LEFT_LEG/RIGHT_LEG, NONE
  • Head (20% chance): Heavy Wound — max health -10% of base cap (not flat -10 HP)
  • Abdomen (20% chance): Abdomen Wound — max health -10% of base cap
  • Arms (30% chance): Bleeding — 1 damage every ~6s, up to 4 layers, stops at HP ≤1
  • Legs (20% chance): Fracture — -15% speed per leg, max -30% (both legs)
  • All wounds permanent until treated or death
  • Configurable trigger chances and damage multipliers per body part

Painkiller System (Updated)

  • Suppresses bleeding damage and fracture slowdowns (HUD icons remain visible)
  • Fractures can still stack while suppressed (recorded as suppressed amplifier)
  • Comedown: 1s nausea + scream sound if heavy/abdomen wounds present on expiry

Fall Fracture

  • Falling ≥5 blocks triggers per-leg independent fracture check
  • Base 50% + 10% per additional block, each leg rolled separately
  • Scream sound on trigger

Player Health

  • Base health = 20 + playerBaseHealthBonus (default 30 = 50 HP / 25 hearts)
  • Fully restored on first join and respawn
  • Vanilla hunger disabled (HungerStrike)

HUD Overlays

  • Health overlay: avatar + health bar (80×5) + health % + 4 armor durability icons (9×9) + oxygen bar; hides vanilla health/hunger/armor/experience/jump bar/potion icons
  • Stamina overlay: stamina bar (80×5) above hotbar, hides when full and not sprinting, turns red below 20
  • Effect overlay: 9×9 effect status blocks above hotbar with smooth progress fill
  • Consumable use overlay: progress bar + item name + remaining time + cancel hint below crosshair

AI Entities

  • Soldier (soldier): 3-state AI (Patrol → Alert → Combat), 30 HP, random SMG single-fire, squad aggro sharing within 20 blocks, drops depleted gun on death
  • Sniper (sniper): immobilized soldier, random sniper rifle, 3~6s shot interval, aims at legs
  • Configurable AI parameters: health, patrol radius, sight range, hit probability, shoot cooldown, reload time, etc.
  • Configurable gun blacklist for AI (default: tacz:timeless50, tacz:ai_awp, tacz:m107, tacz:m95)
  • Spawn eggs in creative tab

Localization

  • English (US)
  • Chinese (Simplified)

Technical

  • 6 Mixin classes (2 common + 1 client in common json + 3 client in client json), registered via JAR manifest MixinConfigs
  • Capability-based player data (stamina, slide, painkiller suppression, weight threshold bonus)
  • Server-authoritative consumable use sessions
  • 4 network packets (Slide, StaminaSync, ConsumableUse, ConsumableWheelUse)
  • TaCZ extension pack auto-exported to .minecraft/tacz/vtc_default_consumable/ on first launch

Комментарии

Загружаем…