
Auto-Shield Reborn
Auto-block with a shield in either hand, within a 180-degree arc, with server-set durability cost. Fabric + NeoForge, MC 26.x.
- Загрузки
- 1K
- Подписчики
- 1
- Обновлён
- 5 августа 2026 г.
- Лицензия
- All-Rights-Reserved
Опубликован 11 июня 2026 г.
Auto-Shield Reborn
Hold a shield in either hand and you automatically block any hit a raised shield would normally block - no need to raise it. All blocking is server-authoritative, so it works on dedicated servers even for players who do not have the mod installed.
Why Auto-Shield Reborn
- Block without raising. Melee, projectiles, and most direct damage from your front 180-degree arc (horizontal) are blocked automatically while a shield is in your main or off hand; hits from behind still land, and shield-bypassing damage (fire, fall, drowning, magic, starvation) passes through - exactly like a manually-raised shield.
- Server-authoritative + fair. The per-hit shield durability cost is server-configurable (0-10, default 1; 0 = the shield never wears). Operators set it; everyone else sees it read-only.
- Lightweight. Adds no blocks, items, or commands. Install it on a server for the behaviour; install it on clients too for the in-game config screen.
Usage
Hold a shield. Each automatic block plays the shield sound, swings your arm, and chips the shield by the configured cost. Open the config screen from ModMenu (Fabric) or the Config button on the mod-list entry (Forge / NeoForge); operators edit the durability cost and the server clamps, persists, and syncs it to everyone.
Ships as a Fabric, Forge, and NeoForge mod (client + server).
- Source code: https://github.com/Kishku7/autoshield-reborn/tree/minecraft-1.20-26.3
- Report issues / Support: https://github.com/Kishku7/mod_support/issues
By Kishku7. All Rights Reserved. A from-scratch rewrite of agorasim20/autoshield (CC0-1.0).
Ченджлог
1.2.1+26.3Бета26.3-snapshot-7 · 5 августа 2026 г.
Fixed
LivingEntity.swing(InteractionHand, boolean)is GONE at 26.3-snapshot-7 -- a hard compile break in the auto-block mixin, which swings the shield hand as block feedback. Both the 1-arg and 2-arg overloads were removed; the only remaining form isswing(hand, SwingAnimation, sendToSwingingEntity). Now emitted per version by the codegen (compat.swing_anim,>= 26.3): 26.3+ passes the shield's owngetInteractAnimation()-- a block is a use-path action, which is the animation vanilla threads through its own interact sites -- and every earlier cell keeps the plain 2-arg call. ThesendToSwingingEntityflag staystrueeither way: this mixin runs server-side and the blocking player should see their own swing.
Changed
- Fabric 26.3 cell moved to MC 26.3-snapshot-7 (from snapshot-6): fabric-api
0.156.1+26.3->0.156.2+26.3, resourcepack_format94->95(bumped in_codegen/compat.pyresource_format, the mod's single source for that value), exclusive window[26.3-alpha.6, 26.3-alpha.7)->[26.3-alpha.7, 26.3-alpha.8). Every 26.3 snapshot bumps pack_format by one, so each jar stays snapshot-exclusive. ModMenu stays on21.0.0-alpha.1(still the 26.3-line major). No other cell changed.
Notes
- The other snapshot-7 breaking surfaces do not touch ASR: the trailing
Predictionargument onLivingEntity.drop(ItemStack, boolean)/Inventory.placeItemBackInInventory(ASR neither drops nor returns items), the client-sideLocalPlayer.drop(boolean)return-type change, theInteractionResult.SwingSourceCLIENT/SERVER->PREDICTED/SERVER_ONLYrename (ASR uses only the plainInteractionResultconstants), and the 32 new concrete slab/stair blocks plus the filled-map colour component removals.
1.2.0+26.3Бета26.3-snapshot-6 · 29 июля 2026 г.
Added
/asrcommands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):/asror/asr durability-- show the current durability cost (anyone)./asr durability <0-10>-- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did./asr reload-- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only itsCommandDispatcherand an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric viaCommandRegistrationCallback, and on NeoForge/Forge viaRegisterCommandsEvent(both the EB6 and EB7 wiring).
ASRConfig.reload()backing/asr reload.
Fixed
- All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate
major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a
newer mojmap MC. The 26.1 row pinned
17.0.0-beta.1-- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just theModMenuApi/ConfigScreenFactorysurface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.
Changed
- Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).
Verified
- Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
- Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
- Behavioural, on the Raider 26.3-snapshot-6 dedicated server:
/asrreported cost 1,/asr durability 4applied and echoed,/asrread back 4,/asr reloadre-read 4, and the value was confirmed written toconfig/autoshield-reborn.json.
Known gap (unchanged from 1.1.3)
- ASR still has no
scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their owngradlew. Every other loader has a canonical build script.
1.2.0+26.2Релиз26.2 · 29 июля 2026 г.
Added
/asrcommands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):/asror/asr durability-- show the current durability cost (anyone)./asr durability <0-10>-- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did./asr reload-- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only itsCommandDispatcherand an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric viaCommandRegistrationCallback, and on NeoForge/Forge viaRegisterCommandsEvent(both the EB6 and EB7 wiring).
ASRConfig.reload()backing/asr reload.
Fixed
- All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate
major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a
newer mojmap MC. The 26.1 row pinned
17.0.0-beta.1-- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just theModMenuApi/ConfigScreenFactorysurface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.
Changed
- Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).
Verified
- Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
- Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
- Behavioural, on the Raider 26.3-snapshot-6 dedicated server:
/asrreported cost 1,/asr durability 4applied and echoed,/asrread back 4,/asr reloadre-read 4, and the value was confirmed written toconfig/autoshield-reborn.json.
Known gap (unchanged from 1.1.3)
- ASR still has no
scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their owngradlew. Every other loader has a canonical build script.
1.2.0+26.2-neoforgeРелиз26.2 · 29 июля 2026 г.
Added
/asrcommands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):/asror/asr durability-- show the current durability cost (anyone)./asr durability <0-10>-- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did./asr reload-- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only itsCommandDispatcherand an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric viaCommandRegistrationCallback, and on NeoForge/Forge viaRegisterCommandsEvent(both the EB6 and EB7 wiring).
ASRConfig.reload()backing/asr reload.
Fixed
- All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate
major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a
newer mojmap MC. The 26.1 row pinned
17.0.0-beta.1-- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just theModMenuApi/ConfigScreenFactorysurface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.
Changed
- Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).
Verified
- Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
- Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
- Behavioural, on the Raider 26.3-snapshot-6 dedicated server:
/asrreported cost 1,/asr durability 4applied and echoed,/asrread back 4,/asr reloadre-read 4, and the value was confirmed written toconfig/autoshield-reborn.json.
Known gap (unchanged from 1.1.3)
- ASR still has no
scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their owngradlew. Every other loader has a canonical build script.
1.2.0+26.1Релиз26.1, 26.1.1, 26.1.2 · 29 июля 2026 г.
Added
/asrcommands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):/asror/asr durability-- show the current durability cost (anyone)./asr durability <0-10>-- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did./asr reload-- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only itsCommandDispatcherand an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric viaCommandRegistrationCallback, and on NeoForge/Forge viaRegisterCommandsEvent(both the EB6 and EB7 wiring).
ASRConfig.reload()backing/asr reload.
Fixed
- All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate
major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a
newer mojmap MC. The 26.1 row pinned
17.0.0-beta.1-- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just theModMenuApi/ConfigScreenFactorysurface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.
Changed
- Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).
Verified
- Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
- Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
- Behavioural, on the Raider 26.3-snapshot-6 dedicated server:
/asrreported cost 1,/asr durability 4applied and echoed,/asrread back 4,/asr reloadre-read 4, and the value was confirmed written toconfig/autoshield-reborn.json.
Known gap (unchanged from 1.1.3)
- ASR still has no
scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their owngradlew. Every other loader has a canonical build script.
1.2.0+26.1.2-neoforgeРелиз26.1, 26.1.1, 26.1.2 · 29 июля 2026 г.
Added
/asrcommands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):/asror/asr durability-- show the current durability cost (anyone)./asr durability <0-10>-- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did./asr reload-- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only itsCommandDispatcherand an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric viaCommandRegistrationCallback, and on NeoForge/Forge viaRegisterCommandsEvent(both the EB6 and EB7 wiring).
ASRConfig.reload()backing/asr reload.
Fixed
- All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate
major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a
newer mojmap MC. The 26.1 row pinned
17.0.0-beta.1-- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just theModMenuApi/ConfigScreenFactorysurface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.
Changed
- Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).
Verified
- Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
- Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
- Behavioural, on the Raider 26.3-snapshot-6 dedicated server:
/asrreported cost 1,/asr durability 4applied and echoed,/asrread back 4,/asr reloadre-read 4, and the value was confirmed written toconfig/autoshield-reborn.json.
Known gap (unchanged from 1.1.3)
- ASR still has no
scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their owngradlew. Every other loader has a canonical build script.
1.2.0+1.21.9Релиз1.21.9 · 29 июля 2026 г.
Added
/asrcommands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):/asror/asr durability-- show the current durability cost (anyone)./asr durability <0-10>-- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did./asr reload-- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only itsCommandDispatcherand an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric viaCommandRegistrationCallback, and on NeoForge/Forge viaRegisterCommandsEvent(both the EB6 and EB7 wiring).
ASRConfig.reload()backing/asr reload.
Fixed
- All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate
major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a
newer mojmap MC. The 26.1 row pinned
17.0.0-beta.1-- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just theModMenuApi/ConfigScreenFactorysurface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.
Changed
- Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).
Verified
- Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
- Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
- Behavioural, on the Raider 26.3-snapshot-6 dedicated server:
/asrreported cost 1,/asr durability 4applied and echoed,/asrread back 4,/asr reloadre-read 4, and the value was confirmed written toconfig/autoshield-reborn.json.
Known gap (unchanged from 1.1.3)
- ASR still has no
scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their owngradlew. Every other loader has a canonical build script.
1.1.1+26.2-neoforgeРелиз26.2 · 28 июля 2026 г.
Added
- scripts/build-neoforge.ps1 - Auto-Shield Reborn previously had no canonical NeoForge build script, so its NeoForge/26 cell had no reproducible build path and a bare gradlew build silently compiled a stale gitignored gen/ tree. The new script drives cog-gen then Gradle with per-26.X -P overrides and copies to dist/, matching the other mods.
Changed
- NeoForge 26 cells rebuilt against the now-PUBLISHED NeoForge builds: 26.1 -> 26.1.2.87, 26.2 -> 26.2.0.35-beta (previously 26.2.0.25-beta, and the 26.1 NeoForge jar had no reproducible build at all). mavenLocal() removed from the cell.
- No source or behaviour change. Server-boot smoketested on NeoForge 26.1.2 and 26.2.
Комментарии
Загружаем…