All versions
2.0.0
Beta
Vantage Tacz Compat 2.0.03 weeks ago 95
Compatibility
Minecraft: Java Edition
1.20.1
Platform
Forge
Supported environments
Client and server
Required content
Any compatible version
Unavailable version
Changes
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
- Below
- 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 NBTConsumableId - 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 itemsfixed: 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
RenderHandEventat HIGHEST priority (before TaCZ'sFirstPersonRenderHandler) - Uses TaCZ's
renderFirstPersonPoseStack (screen coordinate system) — model follows view rotation - Applies
AnimateGeoItemRenderer.applyFirstPersonPositioningTransform()for models withidle_viewbone - Applies
camerabone quaternion for camera shake animation - Renders player arms bound to
lefthand_pos/righthand_posbones 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(namespacetestpack) tovtc_default_consumable(namespacevantagetaczcompat) - 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_typesupports"helmet"/"chest"/ null- Repair permanently reduces armor max durability cap by
armor_max_durability_reduction_percent(NBTvantagetaczcompat.max_damage_reduction)
Stamina System (Updated)
- Sprint drains
staminaSprintDrain(default 0.2/tick), regeneratesstaminaRegen(default 0.3/tick) afterstaminaRegenDelay(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 fullstamina_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
enableSlidein 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
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:P0sN6dBU:bEE3X4A8"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:P0sN6dBU:bEE3X4A8"
}
