promotional bannermobile promotional banner

Zifeng Skill Tree

Convert FE energy into skill points and unlock 32 skills — base attributes, amplifiers, ultimates, and combat auras — in a full skill tree for NeoForge 1.21.1.
Back to Files

zifeng_s_custom_skill_tree-1.21.1-NeoForge-1.4.1.jar

File namezifeng_s_custom_skill_tree-1.21.1-NeoForge-1.4.1.jar
Uploader
wuliaoaszqbwuliaoaszqb
Uploaded
Sep 12, 2026
Downloads
156
Size
485.4 KB
Mod Loaders
NeoForge
File ID
8863894
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:zcs-1643398:8863894"

Learn more about Curse Maven

What's new

==================================================
Zifeng Skill Tree — CurseForge 更新报告(双语精简版)
Zifeng Skill Tree — CurseForge Changelog (Bilingual)
Minecraft 1.20.1 Forge + 1.21.1 NeoForge · v1.4.1
==================================================

【版本 Version】v1.4.1

--------------------------------------------------
English Version:
--------------------------------------------------
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
v1.4.1  ·  1.20.1 Forge + 1.21.1 NeoForge
FEATURE UPDATE — AE2 wireless access point binding, 256-block zones, reworked overlays
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🎁  NEW

1) Container binding now supports AE2 Wireless Access Points
   Link a WAP and drops go straight into your ME network instead of falling on the floor —
   the same storage path a storage bus uses. The highlight colour tells the target type
   apart (yellow-green = normal container, purple shell + cyan edge = AE network) and the
   bind message is AE-specific. Zone-fill material pickup can also pull from the ME
   network. AE2 remains a soft dependency: reflection only, nothing happens when absent.

2) Zone selection limit raised from 64 to 256 blocks per side
   (shared with the magnet-exclusion zone; validated on both client and server)

3) Mouse-wheel face adjust while holding the stick
   Aim at one face of the zone and scroll to push that face outward or pull it inward;
   hold Shift for 10-block steps. Very large zones (> 131072 blocks) warn first.

⚡  PERFORMANCE

4) Zone jobs now run as a cross-tick queue instead of one huge single-frame batch
   Large zones finish smoothly across several ticks and can be interrupted by pressing the
   trigger key again. The time budget adapts to server load (new config zoneMspLimitMs,
   default 45 ms, range 10–48): an idle server gets the full budget while a busy server
   gets almost none, so it never makes things worse.

5) Drops are batched into the bound container
   Previously every single drop re-resolved the binding target (string parse + dimension
   lookup + chunk/container lookup) — hundreds of thousands of times for a large zone.
   The target is now resolved once per tick and identical items are merged first, cutting
   container insertions by 2–3 orders of magnitude.

6) Excavation now sweeps top-down (high Y to low Y)
   Gravity blocks (sand/gravel) are harvested while their support still exists, so they are
   removed directly instead of becoming falling-block entities. Neighbour updates stay
   real-time, so water, lava, redstone and vines still react immediately.

🎨  RENDERING

7) Zone and magnet-exclusion overlays reworked
   A double-shell translucent filter is drawn on the outside and inside faces, so the
   overlay is visible whether you stand outside or inside the zone, on both loaders. The
   filter respects real depth (terrain hides it), while the outline is now x-ray so you can
   still see the boundary through terrain. Fill opacity and outline brightness were raised.

🔴  IMPORTANT FIXES

8) 1.20.1 — mining-speed skills did literally nothing
   That attribute is 1.21.1-only; on 1.20.1 the skill wrote into a custom attribute that
   nothing ever read. Reading logic added (same semantics as 1.21.1).

9) 1.20.1 — every attribute cap (1024) was broken
   Cap removal looked up vanilla attribute fields by reflective string names, which are NOT
   remapped by SRG → exception on a production install → swallowed by a catch → the
   whitelist stayed empty forever, so caps were never lifted. It looked fine in a dev
   environment (MCP names) and only broke inside modpacks. Now uses compile-time field
   references plus a completeness check.

10) Both loaders — fly mining (airborne mining penalty) did nothing
    Break-speed handling was server-only, but mining speed is client-predicted (the client
    accumulates progress until 100% and only then sends a packet), so the client predicted
    the un-boosted value. Now applied on both sides.

11) Both loaders — the blacklist admin command kicked you off the server
    The command feedback passed a non-String object as a component placeholder, which made
    the network packet fail to encode and disconnected the player. Now converted to String.

12) 1.21.1 — instant crash when resizing a zone
    After switching to "only draw camera-facing faces", a camera inside the zone produced
    zero faces, and building an empty buffer throws on 1.21.1. Now tolerant (skips drawing).

13) AE2 binding fixes (all three found in this cycle)
    a) Binding silently did nothing — the storage service was resolved with a wrong package
       name and the exception was swallowed, so a Wireless Access Point was treated as a
       plain container (its booster slot) and items never entered the ME network.
    b) Storage cells inside an AE drive disappeared when using item transfer — the haul code
       treated every non-player slot as container contents, and AE device slots are not
       block entities, so empty cells were pushed into the ME network. AE slots are skipped.
    c) Zone fill could not pull materials from AE — AEItemKey has two same-name single-arg
       methods, and name+arity matching picked the wrong overload → NPE swallowed → always
       empty. Now resolved by exact parameter types.

📌  COMPATIBILITY
   · Save-compatible — no data migration needed (new fields are defaulted).
   · Both platforms are identical: 122 skills + 1 stick-tool placeholder / 10 columns.
   · AE2 is a soft dependency — hidden and silent when absent.

Requirements: Forge 47.3.0+ (1.20.1, Java 17) / NeoForge 21.1.248+ (1.21.1, Java 21). No other dependencies.

--------------------------------------------------
中文版:
--------------------------------------------------
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
v1.4.1  ·  1.20.1 Forge + 1.21.1 NeoForge
功能版 · AE2 无线访问点绑定 + 256 选区 + 显示重做
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🎁  新增

① 容器绑定支持 AE2 无线访问点
   绑定无线访问点后,掉落物直接进入 ME 网络存储,不再掉在地上(与存储总线走同一条存取路径)。
   绑定高亮颜色按目标类型区分(黄绿 = 普通容器,紫外壳 + 青边线 = AE 网络),
   绑定提示也换成 AE 专属文案。选区填充取料同样支持从 ME 网络抽取。
   AE2 保持软依赖:纯反射实现,未安装时功能隐藏且无任何报错。

② 选区单边上限 64 → 256 格
   与磁铁屏蔽区共用同一上限,客户端与服务端校验同步放宽。

③ 木棍 + 鼠标滚轮逐面微调选区
   对着选区某个面滚动滚轮,该面朝外扩或朝内缩,按住 Shift 为 10 格步进。
   超大选区(超过 131072 格)会先给出可能卡顿的提示。

⚡  性能

④ 选区作业改为分 tick 队列,不再单帧一次性处理
   大选区跨多个 tick 平滑完成,随时再按一次触发键即可中断。
   时间预算会自适应服务器负载(新增配置 zoneMspLimitMs,默认 45 毫秒,范围 10~48):
   空闲服能拿到完整预算,忙碌服几乎拿不到,因此绝不会让卡顿更糟。

⑤ 掉落物批量入容器
   旧实现每掉落一格都要重新解析一次绑定目标(字符串解析 + 维度查找 + 区块/容器查询),
   大选区等于重复几十万次。现在每个 tick 只解析一次,并先把相同物品合并,
   容器插入次数下降 2~3 个数量级。

⑥ 挖掘遍历顺序改为从上往下(Y 高→低)
   重力方块(沙、砾石)在被处理时支撑还在,会被直接挖掉,而不是变成掉落的方块实体。
   邻居更新保持实时,所以水、岩浆、红石、藤蔓依然即时响应。

🎨  显示

⑦ 选区与磁铁屏蔽区的显示重做
   改为内外通用双层皮滤镜:站在选区外面和里面都能看到滤镜面,两个加载器表现一致。
   滤镜遵守真实深度(被地形挡住就看不见),线框则改为全透视,隔着山也能看到边界轮廓。
   同时提高了填充浓度与边框亮度,远距离也能看清边界。

🔴  重要修复

⑧ 1.20.1 — 挖掘速度技能完全没有效果
   该属性是 1.21.1 才有的原版属性;在 1.20.1 上技能把数值写进了自定义属性,
   但没有任何代码去读取它。现已补上读取逻辑(与 1.21.1 语义一致)。

⑨ 1.20.1 — 所有属性上限(1024)全部失效
   解除上限的代码用反射字符串名称去取原版属性字段,而反射字符串不会随 SRG 重映射
   → 生产环境抛异常 → 被 catch 静默吞掉 → 白名单永远为空 → 上限从未解除。
   开发环境用 MCP 名称所以「自测正常」,只在整合包里复现。
   现改为编译期字段引用 + 完整性校验。

⑩ 双平台 — 凌空采掘(空中挖掘惩罚)失效
   破速处理被限制为仅服务端执行,但挖掘速度是客户端预测的
   (客户端累积进度到 100% 才发包),于是客户端预测的是未加速的值。现改为双端同时生效。

⑪ 双平台 — 黑名单管理指令会把玩家踢出服务器
   指令反馈把非字符串对象当作组件占位参数传给了消息,导致网络包编码失败 → 玩家断线。
   现已统一转成字符串。

⑫ 1.21.1 — 调整选区范围时瞬间崩溃
   改为「只画朝向相机的面」之后,相机位于选区内部时会产生零个面,
   而 1.21.1 构建空缓冲会直接抛异常。现改为容错处理(空则跳过绘制)。

⑬ AE2 绑定相关修复(本轮共发现三处)
   a) 绑定静默失效:反射解析存储服务时用了错误的包名,异常被吞掉,
      于是无线访问点被当成普通容器(它的增压卡槽)处理,物品从未真正进入 ME 网络。
   b) 驱动器内磁盘消失:搬运术把所有非玩家槽位都当作容器内容,
      而 AE 设备槽位不是方块实体,于是空磁盘被塞进 ME 网络。现已跳过所有 AE 槽位。
   c) 选区放置无法从 AE 取料:AEItemKey 有两个同名的单参方法,按名称+参数个数匹配时
      选错重载 → NPE 被吞 → 取料恒为空。现改为按精确参数类型解析。

📌  兼容性
   · 旧存档完全兼容,无需任何数据迁移(新增字段均有默认值)。
   · 两平台功能与版本号完全一致:122 技能 + 1 工具占位 / 10 列。
   · AE2 为软依赖,未安装时功能自动隐藏且无报错。

运行要求:Forge 47.3.0+(1.20.1,Java 17)/ NeoForge 21.1.248+(1.21.1,Java 21)。无其他前置依赖。

This mod has no additional files