promotional bannermobile promotional banner

SFM Optimizer

A server-friendly performance add-on for Super Factory Manager (SFM): turns the laggy ROUND ROBIN polling into an instant, mathematically even distribution and adds smart sleep / slot memory.
Back to Files

sfm_optimizer-1.1.1.jar

File namesfm_optimizer-1.1.1.jar
Uploader
Lin18710118Lin18710118
Uploaded
Oct 2, 2026
Downloads
26
Size
26.9 KB
Mod Loaders
NeoForge
File ID
9034005
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:sfm-optimizer-1683019:9034005"

Learn more about Curse Maven

What's new

Super Factory Manager Optimizer — Changelog
===========================================

All notable changes to this project are documented in this file.
Each entry is written in English first, followed by Chinese.

-------------------------------------------------------------------------------
v1.1.1 — NeoForge 1.21.1
-------------------------------------------------------------------------------

[English]

Fixed
- Crash (NullPointerException at OutputStatement#runEvenSplit) while a manager
  rebuilt its program and updated the disk: SFM's linter ticks the program with
  a simulation context that has no manager (ProgramContext#createSimulationContext
  from IncompleteIOProgramLinter). Vanilla OutputStatement#tick returns early for
  such contexts, but the HEAD injection took over before that check. The mixin
  now stands down for simulation contexts so vanilla handles them.

Verification
- gradlew build passes; unit tests green.
- In-game check pending (user).

[中文]

修复
- 修复管理机重建程序、刷新磁盘时的崩溃(OutputStatement#runEvenSplit 空指针):
  SFM 检查器(IncompleteIOProgramLinter)会用 ProgramContext#createSimulationContext
  构造一个没有 manager 的模拟上下文来 tick 程序。原版 OutputStatement#tick 对这种上下文
  会提前返回,而我们的 HEAD 注入抢在检查之前接管了执行。现在模拟上下文一律交还原版处理。

验证
- gradlew build 通过;单元测试通过。
- 实机验证待用户执行。

-------------------------------------------------------------------------------
v1.1.0 — NeoForge 1.21.1
-------------------------------------------------------------------------------

[English]

Ported the mod to NeoForge 1.21.1.

Changed
- Build system migrated from ForgeGradle 6 to ModDevGradle 2.0.148; Java 17 -> 21;
  target NeoForge 21.1.252.
- Mod metadata moved to META-INF/neoforge.mods.toml; pack_format 15 -> 34.
- Config registration migrated to ModContainer#registerConfig / ModConfigSpec;
  config keys are unchanged.
- Mixin config: removed refmap (not needed on NeoForge 1.20.2+);
  compatibility level raised to JAVA_21.
- Dependency: Super Factory Manager 4.34.0 (MC 1.21.1 / NeoForge).
- Version scheme: 1.0.0 = Forge 1.20.1, 1.1.0 = NeoForge 1.21.1.

Unchanged
- Round-robin even split, smart sleep and slot memory logic are identical to 1.0.0.
- SFM 4.34.0 mixin targets were verified to have identical signatures on both the
  1.20.1 and 1.21.1 builds of SFM.

Verification
- gradlew build passes; 9/9 unit tests green.
- In-game checks on NeoForge 1.21.1 passed (round-robin even split, greedy
  regression, config toggle).

[中文]

将模组移植到 NeoForge 1.21.1。

变更
- 构建系统从 ForgeGradle 6 迁移到 ModDevGradle 2.0.148;Java 17 → 21;
  目标 NeoForge 21.1.252。
- 模组元数据迁移到 META-INF/neoforge.mods.toml;pack_format 15 → 34。
- 配置注册迁移到 ModContainer#registerConfig / ModConfigSpec;配置键名不变。
- Mixin 配置移除 refmap(NeoForge 1.20.2+ 不再需要);
  compatibility level 提升到 JAVA_21。
- 依赖 Super Factory Manager 4.34.0(MC 1.21.1 / NeoForge 版)。
- 版本约定:1.0.0 = Forge 1.20.1,1.1.0 = NeoForge 1.21.1。

未改动
- 轮询均分、智能休眠、槽位记忆逻辑与 1.0.0 完全一致。
- 已逐类核对 SFM 4.34.0 在 1.20.1 与 1.21.1 两个平台上的混入目标签名一致。

验证
- gradlew build 通过;9/9 单元测试通过。
- NeoForge 1.21.1 实机验证通过(轮询均分、贪心回归、配置开关)。

-------------------------------------------------------------------------------
v1.0.0 — Forge 1.20.1
-------------------------------------------------------------------------------

[English]

Initial release.

- Even-split distribution for ROUND ROBIN output: all targets are filled in a
  single execution instead of rotating one target per tick.
- Smart sleep: full or blocked output slots are skipped for a configurable cooldown.
- Slot memory: remembers the last successful slot to reduce rescanning of large
  inventories.
- Config: enableEvenSplit (default true), sleepCooldownTicks (default 20),
  enableSlotMemory (default true).

[中文]

首个版本。

- ROUND ROBIN 输出均分:单次执行内同时填充所有目标,而不是每 tick 轮换一个目标。
- 智能休眠:已满或阻塞的输出槽在冷却期内被跳过。
- 槽位记忆:记住最近成功的槽位,减少大容器的重复扫描。
- 配置项:enableEvenSplit(默认 true)、sleepCooldownTicks(默认 20)、
  enableSlotMemory(默认 true)。

This mod has no additional files