Description
TACZ Self Shields
NeoForge 1.21.1 addon for TACZ (unofficial port) that adds ballistic body plating: a partitioned protection pool against gunfire, vanilla projectiles, and fire — without vanilla Absorption and without fall protection.
Portuguese version: README_pt-br.md
Developed by RN Team.
| Mod ID | tacz_self_shields |
| Version | 0.1.0 |
| Minecraft | 1.21.1 |
| Loader | NeoForge 21.1.x |
| Required dependency | TACZ (modId: tacz) |
| Optional | JEI (recipe viewing) |
| Authors | RN Team |
Technical docs (ADRs): docs/architecture-1.0.md
Changelog: CHANGELOG.md
What the mod does
Ballistic plate
- Craftable item installed with right-click (use action with a placeholder animation).
- Each installed plate becomes one protection partition (default: 10 points).
- Up to 4 plates at once (default: 40 points total).
- Protection is not Absorption (no yellow hearts).
Automatic plate installation
When using a new plate:
| Situation | Result |
|---|---|
| Free slot available (e.g. 1.5 plates) | Adds 1 full plate → e.g. 2.5 (slots 1–2 full, 3rd half) |
| At max with a damaged plate (e.g. 3.5) | Replaces the rightmost damaged plate → 4 full; the old one disappears (not returned to inventory) |
| 4 full slots, no damage | Does not install (slots full message) |
Order is always normalized: full plates on the left, damaged on the right. Damage is consumed from the right.
What the plating blocks
- TACZ gunfire
- Vanilla projectiles (arrows, tridents, etc. —
IS_PROJECTILEtag) - Fire
What it does not block
- Fall damage
- Melee, explosions, drowning, and other sources not listed above
Damage formula
When pool > 0:
- Apply percent reduction (default 10%)
- Consume the remainder from the protection pool
- Leftover goes to health (overflow)
With no pool: full damage goes to health.
HUD
Segmented bar above the armor bar (left status column). Each segment = one partition; color shifts as it wears down (green → yellow → red).
Sounds
- Install: plays on click (RMB), without waiting for use to finish
- Partition break: plays when a plate reaches zero
Files: assets/tacz_self_shields/sounds/plate_install.ogg and plate_break.ogg
Guide: docs/sounds.md
Crafting
Two netherite ingots stacked vertically in any column of the 3×3 grid (multiple craftable patterns). JEI shows only the main recipe; the other patterns remain valid at the crafting table.
Test command
/tacz dumb <num_shields 0-4> <pos>
Spawns a shootable dummy with finite plates and a name tag showing points (requires permission level 2).
Requirements
- Minecraft 1.21.1
- NeoForge 21.1.x
- TACZ NeoForge 1.21.1 (required)
- JEI (optional)
Configuration
Server config file: tacz_self_shields-server.toml
| Key | Default | Description |
|---|---|---|
max_partitions |
4 |
Maximum installed plates |
ballistic_points_per_plate |
10 |
Points granted by each new plate |
damage_reduction |
0.10 |
Fraction negated before consuming the pool (0.10 = 10%) |
Build and run
gradlew.bat build
Jar output under build/libs/ (e.g. tacz_self_shields-1.21.1-0.1.0.jar).
gradlew.bat runClient
Project structure (summary)
docs/
architecture-1.0.md # ADRs
sounds.md # Sounds and future keyframes
src/main/java/com/taczselfshields/
ballistic/ # Pool, formula, damage
client/ # HUD, dummy renderer
command/ # /tacz dumb
compat/jei/ # Hides alternate recipes in JEI
config/ # TOML
entity/ # Shield dummy
item/ # Ballistic plate
network/ # HUD sync
registry/ # Items, sounds, entities, attachments
Out of scope (0.1.0)
- GeckoLib install animation / Blockbench sound keyframes (
.bbmodelmay exist; runtime wiring deferred) - Manually removing plates / repairing without consuming a new item
- Protection against melee, explosions, drowning, etc.
- TACZ gun packs / KubeJS / mixins


