Home›Java›Mods›Archer's Dream
Archer's Dream
ModsJava

Archer's Dream

Java mod listed for Minecraft 1.21. Downloads from the MC Java Mods app on Android.

by qinme9 · on Modrinth

A NeoForge mod that lets arrows pass through gaps, door windows, and hollow bells instead of hitting invisible collision boxes.

⬇ Download on Modrinth

Archer's Dream

Archer's Dream is a Minecraft mod for NeoForge 1.21.1.

It makes arrow collision follow the visible solid parts of blocks, so arrows can pass through gaps in fences, windows in doors, and the hollow interior of bells—while still being stopped by actual wood, iron bars, door panels, or bell walls.

Features

Supported Blocks

Block Effect
Fence Uses centre posts plus upper/lower rails, so arrows can pass between rails
Fence Gate Uses gate posts and rails; arrows can pass through gaps even when closed
Iron Bars Uses vertical/horizontal bar strips from the texture, leaving gaps for arrows
Wall Uses visual shape, allowing arrows through upper/side visual gaps
Door Removes the small transparent window regions from the door texture
Trapdoor Removes the small transparent window regions from the trapdoor texture
Bell Uses a hollow bell body plus attachment collision

How It Works

Vanilla arrows use the normal block collision shape when checking whether they hit a block. Blocks like fences, iron bars, walls, and bells often have collision shapes that are more filled-in than their actual models, so arrows aimed at a gap can hit an invisible box.

This mod uses a Mixin to intercept block collision shape queries:

Doors and trapdoors are handled slightly differently. Their models are solid thin slabs, but their textures have transparent windows. This mod includes the vanilla window data and subtracts those window areas from the collision shape.

Project Structure

src/main/java/com/qinme/archersdream/
├── ArchersDream.java                 # Main mod class
├── mixin/
│   └── ArrowProjectileCollisionMixin.java
└── util/
    ├── ArrowBlockShapes.java         # Arrow-specific block collision shapes
    └── DoorWindowShapes.java         # Door/trapdoor texture window data

License

This project is licensed under the MIT License.

中文

Archer's Dream 是一个面向 NeoForge 1.21.1 的 Minecraft 模组。

它主要做一件事:让箭矢在飞行时按照方块“看得见的实体部分”进行碰撞判定,而不是被方块原本较粗糙的碰撞盒挡住。也就是说,箭可以穿过栅栏缝隙、门上的小窗、钟的内部等空心位置,但射中真实存在的木条、铁条、门板或钟壁时仍然会被挡住。

功能

支持处理的方块

方块类型 效果
栅栏 按中心柱和上下横条判定,可穿过横条之间的空隙
栅栏门 按门扇立柱和横条判定,关闭时也可穿过门扇空隙
铁栏杆 按纹理中的竖条和横条判定,可穿过条状空隙
墙 按视觉形状判定,可穿过上方或侧面的视觉空隙
门 扣除门板纹理上的小窗区域
活版门 扣除活版门纹理上的小窗区域
钟(Bell) 使用空心钟体加支架的精细碰撞

工作原理

Minecraft 原版箭矢在判定是否撞到方块时,使用的是方块的普通碰撞形状。栅栏、铁栏杆、墙、钟等方块的普通碰撞形状往往比实际模型更“满”,所以箭明明瞄准的是空隙,却会被看不见的碰撞盒挡住。

本模组通过 Mixin 拦截方块碰撞形状查询:

门和活版门的小窗处理方式略有不同:门板本身是完整薄片,但纹理上有透明窗口。模组内置了原版门/活版门纹理的窗口数据,生成碰撞箱时会把小窗区域从门板中扣除。

目录结构

src/main/java/com/qinme/archersdream/
├── ArchersDream.java                 # 模组主类
├── mixin/
│   └── ArrowProjectileCollisionMixin.java
└── util/
    ├── ArrowBlockShapes.java         # 箭矢专用方块碰撞形状
    └── DoorWindowShapes.java         # 门/活版门纹理小窗数据

开源许可

本项目使用 MIT License。

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

File checked by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more