Repository navigation
Releases: adofaiex/Iridium
Release list
2.1.0_beta3
2.1.0_beta3
更新日志 / Changelog
Note
Iridium supports multiple mod loaders.See README.md for platform installation.
Warning
Linux/macOS requires libgdiplus for UI rendering and image compression. See gdi.md to installation.
CHANGES
- The settings window is now a real UGUI panel instead of IMGUI: it opens without a hitch, scrolls smoothly, can be dragged and resized from any edge or corner, and remembers its position and size between sessions.
- The panel is available on every loader now (MelonLoader / BepInEx / UnityModManager / MiniModLoader), and its hotkey is a normal setting under General → Panel hotkey (default Ctrl+F9). Under UMM the old settings page only shows a reminder of the current hotkey.
- Shortcut recording is now click-to-start and click-to-save: press the button, type the combination (shown live on the button), then click anywhere or press the button again to save. Esc keeps the old value. Function keys and modifier combinations are recorded correctly.
- Reopening a chart from the editor no longer shrinks image decorations: the texture scale is remembered per texture instead of being reset on every level load (v2 / v3).
- Fixed the settings panel not opening with the hotkey under MelonLoader and BepInEx.
- MelonLoader now enables the mod at startup, so the optimizer patches are actually applied there — previously nothing was patched under MelonLoader.
- Fixed patch errors on MelonLoader caused by a Harmony API version mismatch.
- UI fixes: buttons no longer render as plain white rectangles, nested (indented) rows line up with their parent, long descriptions wrap instead of being cut off, and sliders, switches, checkboxes, info icons and section arrows all use the same theme values as before.
- Added a vertical scrollbar in the panel's colours, and the option list keeps its scroll position across rebuilds.
- v2 (ADOFAI 2.9.8) keeps the existing IMGUI settings window; the UGUI panel, resizing and position memory are v3 only.
Caution
Disclaimer: Optimization mods are not a silver bullet — do not chase FPS blindly. If issues occur, disable the specific feature and report the bug instead of labeling the entire mod broken.
提交记录 / Commits
| Hash | Message |
|---|---|
05be40c |
feat: UGUI(shit code) support and Iris.Iml update |
b14b72c |
update: readme |
5f26b8f |
chore: bump Iris.Iml submodule (parse guards, frame cache, TextField work) |
67b9e41 |
feat: 设置 UI 改版 (我到底怎么改的) |
65441a0 |
feat: port 7 hot path optimization patches to v2 (2.9.8) |
3f0882e |
feat: add 10 hot path optimization patches to v3 |
83801ee |
chore: bump version to 2.1.0_beta1 |
Please Use the version that fits your ADOFAI version.
2.1.0_beta2
2.1.0_beta2
更新日志 / Changelog
Note
Iridium supports multiple mod loaders.See README.md for platform installation.
Warning
Linux/macOS requires libgdiplus for UI rendering and image compression. See gdi.md to installation.
CHANGES
- We rewrote part of the mod in Rust, a faster compiled language. Loading levels, custom easing animations, updating paths in the editor, parallax decorations and hitbox checks now all run faster and use less CPU.
- One download works everywhere: the package now includes the new code for Windows, Linux and macOS (both Intel and Apple Silicon), and the mod picks the right one automatically when it starts.
- If the new code can't run on your system, the mod falls back to the old code and works exactly as before — just without the extra speed.
Caution
Disclaimer: Optimization mods are not a silver bullet — do not chase FPS blindly. If issues occur, disable the specific feature and report the bug instead of labeling the entire mod broken.
提交记录 / Commits
| Hash | Message |
|---|---|
a770241 |
chore: 版本号升到 2.1.0 beta2(v2/v3 同步) |
0ae50f7 |
docs: changelog 改成玩家能看懂的说法——直接讲 rust 重写后哪些功能更快 |
4bca5ff |
docs: 重写 changelog——上轮 1-9 条随 2.0.1 已发布,换成本轮原生库变更 |
4f648c4 |
ci: 加 native-macos job 产 universal dylib——一个 zip 装齐三平台原生库 |
98b7d94 |
ci: 远程 CI 构建 Rust 原生库——.so + 交叉编译 .dll 一起进包 |
250df79 |
rm: unused files |
236d6d5 |
step 4: |
5dc5bb3 |
feat: 双线性缩放走原生——iridium_core_resize_bilinear 纹理降采样 |
9778f59 |
chore: 清掉 easing 编译警告——未用形参与多余 mut |
4f402ff |
feat: 合批顶点内核走原生——iridium_core_parallax_compute 视差批量求值 |
4b95302 |
feat: 增量重建走原生——iridium_core_remake_path_from 锚点续算 |
4bfc2dd |
chore: native 基准扩展——JSON 解析/空间索引 rebuild+query,防优化 |
c0cd056 |
feat: 缓动批量求值接线——IrTween.Update 走 iridium_core_evaluate_batch |
945f6fc |
feat: 装饰物命中空间索引接入——AABB 粗筛跳过无候选物理查询 |
d30263d |
feat: JSON 原生解析接线——NativeJson 物化器 + Deserialize(Partially) 补丁(v2/v3) |
867b0c4 |
refactor: batch deco(rs) |
ff58f8c |
feat: v2 接入 iridium_core——缓动求值与 RemakePath 走 Rust |
64c0b43 |
feat: iridium_core 接线第一批——缓动引擎与 RemakePath 走 Rust |
c39e4a3 |
refactor: easing engine(rs) |
e42fce0 |
refactor: remake path by rust |
Please Use the version that fits your ADOFAI version.
2.1.0_beta1
2.1.0_beta1
更新日志 / Changelog
Note
Iridium supports multiple mod loaders.See README.md for platform installation.
Warning
Linux/macOS requires libgdiplus for UI rendering and image compression. See gdi.md to installation.
CHANGES
- Restart after fail: floors that are already at their start state are skipped, and hold objects are reused instead of destroyed and rebuilt (v2 / v3).
- Lower per-frame overhead: holds skip material writes while their geometry is unchanged, each floor runs OnBeat once per beat instead of twice, and the audio spectrum is computed once per frame and shared with the conductor, volume trackers and background bars.
- Faster editor interaction: selecting floors or decorations and opening panels no longer deep-copies the whole level, and decoration / event lookups are indexed instead of scanning every event (noticeable on charts with hundreds of thousands of events).
- Hit texts are created on demand instead of pre-building about 1400 of them when a level loads (v3).
- Search across all settings: type in the search box to filter every option, then click a result to jump straight to it.
- The optimizer is split into four categories (basics / gameplay / effects / advanced), with clearer sections and parent-child option grouping.
- Option descriptions are rewritten for players, and the info icon is now placed consistently next to the option text.
- v2 (ADOFAI 2.9.8) receives the restart and editor optimizations from items 1 and 3.
- Fixed a freeze when switching settings categories, and fixed broken UI files being rendered silently.
Caution
Disclaimer: Optimization mods are not a silver bullet — do not chase FPS blindly. If issues occur, disable the specific feature and report the bug instead of labeling the entire mod broken.
提交记录 / Commits
| Hash | Message |
|---|---|
88193b0 |
update: readme |
92a8da4 |
chore: bump Iris.Iml submodule (解析守卫/帧缓存/TextField 增强) |
9c31394 |
feat: 设置 UI 改版 (我到底怎么改的) |
b3524f1 |
feat: 移植 7 项热路径优化补丁到 v2 (2.9.8) |
4570ab7 |
feat: v3 新增 10 项热路径性能优化补丁 |
83801ee |
chore: bump version to 2.1.0_beta1 |
Please Use the version that fits your ADOFAI version.
2.0.1
2.0.1
更新日志 / Changelog
Note
Iridium supports multiple mod loaders.See README.md for platform installation.
Warning
Linux/macOS requires libgdiplus for UI rendering and image compression. See gdi.md to installation.
CHANGES
- Support loading, editing and saving adofai 3.x charts on the 2.9.8 version (v3-only properties are preserved).
- Editor: much faster tile insert / delete and tile switching on large charts.
- Loading: large charts load faster (lazy effects and floor numbers, chunked activation).
- Lower memory usage on very large charts.
- Adjustable render resolution — lower it a bit for higher FPS (v2 / v3).
- MiniModLoader(A Third-party mod loader) support.
- Faster decoration hitbox detection, and decoration scaling while playing.
Caution
Disclaimer: Optimization mods are not a silver bullet — do not chase FPS blindly. If issues occur, disable the specific feature and report the bug instead of labeling the entire mod broken.
提交记录 / Commits
| Hash | Message |
|---|---|
74ea21a |
docs: chinese changelog for 2.0.1 release |
46902eb |
release: 2.0.1 stable - v3 chart support on 2.9.8, editor & loading optimizations, memory fixes |
0419105 |
我真是脑子泡水了(/bx) |
8bde975 |
Revise question template for clarity and labels |
1ab3947 |
Update feature request template configuration |
c179eeb |
remove title field |
63d53c6 |
Update bug report template configuration |
54e3597 |
docs: allow attaching Player.log (.log) in bug report template |
cbe92cc |
docs: ask for mod loader (dropdown) and loader version in issue templates |
8817db6 |
fix: harden editor floor optimization against old levels, sprite floors and stale materials |
c46b65b |
perf: optimize decoration hitbox detection behind a new optimizer toggle |
0771217 |
update: changelog |
a1e54e1 |
feat: framebuffer render scale for v2/v3 + snapshot6 |
508a260 |
ModsTagLib.MiniModLoader初步支持 |
b661720 |
docs: ask for the Iridium version in the question template too |
7d48281 |
docs: ask for the Iridium version as free text in bug reports |
7a9d568 |
feat: update md |
f3be85e |
fix: log PatchGuard finalizer attach failures once at warning level |
4da407e |
chore: bump mod version to 2.0.1 (match release/Info.json) |
bb20c42 |
fix: hide judge text on 3.4.0 when template is empty; register nested hot-path patches |
6509987 |
revert: remove performance overlay (not ready for release) |
eedd7b4 |
docs: libgdiplus install guides; prep 2.0.1_beta1 release |
5ba3a00 |
feat: bring v3 optimizations and features to v2 (2.9.8) |
617af5f |
feat: ADOFAI 3.4.0 support, patch exception guard, split-perfect judge text |
7390d5a |
perf: fix batching activation/mesh-upload bugs, add UGUI perf overlay |
fb57708 |
feat: static decoration batching (M2/M3) + decoration filter cache; bump to snapshot3 |
83b2845 |
feat: batch static decoration |
ef9ff08 |
docs: rewrite release changelog for the optimization rework |
d8bff66 |
feat: memory optimization rework, custom easing engine rewrite, decoration hot-path optimizations |
d9c5423 |
fix: ver mismatch |
b127d7b |
feat: 。。。refactor UI,memory optimize |
c33f44a |
fix: editor shortcuts never triggered; align modifier bits and repair saved keys |
Please Use the version that fits your ADOFAI version.
2.0.1_snapshot6
2.0.1_snapshot6
更新日志 / Changelog
Note
Iridium supports multiple mod loaders.See README.md for platform installation.
Warning
Linux/macOS requires libgdiplus for UI rendering and image compression. See gdi.md to installation.
CHANGES
1.Support Decoration Scaling when Playing Games. (2x optimization)
Caution
Disclaimer: Optimization mods are not a silver bullet — do not chase FPS blindly. If issues occur, disable the specific feature and report the bug instead of labeling the entire mod broken.
提交记录 / Commits
| Hash | Message |
|---|---|
0771217 |
update: changelog |
a1e54e1 |
feat: framebuffer render scale for v2/v3 + snapshot6 |
508a260 |
ModsTagLib.MiniModLoader初步支持 |
b661720 |
docs: ask for the Iridium version in the question template too |
7d48281 |
docs: ask for the Iridium version as free text in bug reports |
Please Use the version that fits your ADOFAI version.
2.0.1_snapshot5
2.0.1_snapshot5
更新日志 / Changelog
Note
Iridium supports multiple mod loaders.See README.md for platform installation.
Warning
Linux/macOS requires libgdiplus for UI rendering and image compression. See gdi.md to installation.
CHANGES
1.Filter Patches won't throw error now(it's an accident)
Caution
Disclaimer: Optimization mods are not a silver bullet — do not chase FPS blindly. If issues occur, disable the specific feature and report the bug instead of labeling the entire mod broken.
提交记录 / Commits
| Hash | Message |
|---|---|
7a9d568 |
feat: update md |
f3be85e |
fix: log PatchGuard finalizer attach failures once at warning level |
Please Use the version that fits your ADOFAI version.
2.0.1_beta1
2.0.1_beta1
更新日志 / Changelog
Note
Iridium supports multiple mod loaders.See README.md for platform installation.
Warning
Linux/macOS requires libgdiplus for UI rendering and image compression. See gdi.md to installation.
What's New
- ADOFAI 3.4.0 Support: Fully compatible with the latest game version while maintaining backward compatibility.
- New Perfect Hit Text: Independent text customization for big/small P in 3.4.0 with inherited old settings and
{offset}placeholder support. - Filter & Decoration Performance: Eliminates per-frame recalculations when idle, significantly reducing dense chart stutters (built-in animated effects like VHS remain unaffected).
- v2 Version Update (ADOFAI 2.9.8): Aligned multiple v3 features for players on 2.9.8 (including decoration caching, reduced input lag, adjustable arc angle ranges, offset placeholders, and pause-state planet trails).
- Fault Tolerance: Automatically disables failing features quietly after game updates without crashing or breaking input/rendering.
Other Changes
- Memory Optimization: Simplified to a single toggle with an optional virtual memory feature (Windows only, moves idle memory to disk).
- Major Performance Boost: Added experimental Decoration Shader Cache and Static Decoration Batching for higher FPS on heavy charts.
- Rewritten Easing Engine: Fixed animation overlaps/freezes, ensured all easings work properly, and resolved leftover white tracks on exit.
- UI Improvements: Reorganized settings panel with collapsible sections and clearer descriptions.
Caution
Disclaimer: Optimization mods are not a silver bullet — do not chase FPS blindly. If issues occur, disable the specific feature and report the bug instead of labeling the entire mod broken.
提交记录 / Commits
| Hash | Message |
|---|---|
4da407e |
chore: bump mod version to 2.0.1 (match release/Info.json) |
bb20c42 |
fix: hide judge text on 3.4.0 when template is empty; register nested hot-path patches |
6509987 |
revert: remove performance overlay (not ready for release) |
eedd7b4 |
docs: libgdiplus install guides; prep 2.0.1_beta1 release |
5ba3a00 |
feat: bring v3 optimizations and features to v2 (2.9.8) |
617af5f |
feat: ADOFAI 3.4.0 support, patch exception guard, split-perfect judge text |
7390d5a |
perf: fix batching activation/mesh-upload bugs, add UGUI perf overlay |
fb57708 |
feat: static decoration batching (M2/M3) + decoration filter cache; bump to snapshot3 |
Please Use the version that fits your ADOFAI version.
2.0.1_snapshot3
2.0.1_snapshot3
更新日志 / Changelog
Note
Iridium supports multiple mod loaders — see README.md for platform-specific installation instructions.
Warning
On Linux/macOS, this mod may require libgdiplus to be installed separately. It is used for UI rendering (icons, buttons, switches) as well as image compression.
Performance
- Decoration hot-path overhaul. Charts driven by thousands of
MoveDecorationsevents (e.g. 90,000+ events in a single chart) no longer pay a per-event LINQ penalty when resolving tagged decorations, and idle decorations no longer rewrite their rotation/scale transforms every frame. This is the biggest script-side win on decoration-heavy charts. - New: Decoration Shader Cache (Rendering section). The game rewrites every visible decoration's material (color, opacity, tiling, scale) every frame even when nothing changed. Decorations without filters/masks now skip that work entirely while static. Combine it with "Optimize FFx Decorations" — they cover different halves of the same problem.
- "Optimize FFx Decorations" rewritten. The old version dropped material/filter updates and hitbox state for many decorations — it was fast but visibly wrong (missing fades, broken hitboxes). It now behaves identically to vanilla while still skipping decorations that are persistently invisible, and it no longer rewrites transforms for decorations that are not moving.
- Custom easing engine rewritten from scratch. Tweens are now tracked by (target, property) and can actually be killed when events overlap (previously they fought each other and were never cleaned up). The full ease table is implemented — Flash, Elastic and Bounce easings previously fell back to OutQuad and animated incorrectly. Scrubbing the timeline, restarting and exiting play now reset tween state exactly like vanilla.
Fixes
- White tracks / stuck "half-play" state after exiting play mode. An exception in the reset path aborted cleanup halfway, leaving tracks white, disappearing animations broken, and the editor in a half-play half-edit state. Fixed.
- Tracks no longer refuse to disappear when the custom easing engine is enabled: the game's Floor Appear/Disappear animations now properly take over from engine tweens instead of fighting them.
- Patch mode "IL Transpiler" no longer silently disables texture scaling compensation. Patches without a transpiler implementation now fall back to prefix/postfix instead of failing — all 121 patches apply in both modes.
- Removed placebo features. The old "memory optimization" switch did nothing; the multithread optimizer, several caches and object pools were never called. Dead switches are gone — everything remaining is real.
Memory
- Memory section reworked. The scattered switches are now one Basic Memory Optimization toggle (GC tuning, scene-switch cleanup, engine tuning). Under Advanced, a new Virtual Memory Optimization moves inactive memory to the system page file (same principle as PCL2's memory optimization) — Windows only, with a mechanical-drive warning. It can run when loading a level and/or when entering the editor.
UI
- Clickable hyperlinks are now a proper component — the General tab shows a direct link to the tutorial (learn.modrift.org/mods/iridium).
- Settings hints for memory features were rewritten to be actually readable, and the memory section now has a clear Basic / Advanced structure.
提交记录 / Commits
| Hash | Message |
|---|---|
83b2845 |
feat: batch static decoration |
Please Use the version that fits your ADOFAI version.
2.0.1_snapshot2
2.0.1_snapshot2
更新日志 / Changelog
Note
Iridium supports multiple mod loaders — see README.md for platform-specific installation instructions.
Warning
On Linux/macOS, this mod may require libgdiplus to be installed separately. It is used for UI rendering (icons, buttons, switches) as well as image compression.
Performance
- Decoration hot-path overhaul. Charts driven by thousands of
MoveDecorationsevents (e.g. 90,000+ events in a single chart) no longer pay a per-event LINQ penalty when resolving tagged decorations, and idle decorations no longer rewrite their rotation/scale transforms every frame. This is the biggest script-side win on decoration-heavy charts. - New: Decoration Shader Cache (Rendering section). The game rewrites every visible decoration's material (color, opacity, tiling, scale) every frame even when nothing changed. Decorations without filters/masks now skip that work entirely while static. Combine it with "Optimize FFx Decorations" — they cover different halves of the same problem.
- "Optimize FFx Decorations" rewritten. The old version dropped material/filter updates and hitbox state for many decorations — it was fast but visibly wrong (missing fades, broken hitboxes). It now behaves identically to vanilla while still skipping decorations that are persistently invisible, and it no longer rewrites transforms for decorations that are not moving.
- Custom easing engine rewritten from scratch. Tweens are now tracked by (target, property) and can actually be killed when events overlap (previously they fought each other and were never cleaned up). The full ease table is implemented — Flash, Elastic and Bounce easings previously fell back to OutQuad and animated incorrectly. Scrubbing the timeline, restarting and exiting play now reset tween state exactly like vanilla.
Fixes
- White tracks / stuck "half-play" state after exiting play mode. An exception in the reset path aborted cleanup halfway, leaving tracks white, disappearing animations broken, and the editor in a half-play half-edit state. Fixed.
- Tracks no longer refuse to disappear when the custom easing engine is enabled: the game's Floor Appear/Disappear animations now properly take over from engine tweens instead of fighting them.
- Patch mode "IL Transpiler" no longer silently disables texture scaling compensation. Patches without a transpiler implementation now fall back to prefix/postfix instead of failing — all 121 patches apply in both modes.
- Removed placebo features. The old "memory optimization" switch did nothing; the multithread optimizer, several caches and object pools were never called. Dead switches are gone — everything remaining is real.
Memory
- Memory section reworked. The scattered switches are now one Basic Memory Optimization toggle (GC tuning, scene-switch cleanup, engine tuning). Under Advanced, a new Virtual Memory Optimization moves inactive memory to the system page file (same principle as PCL2's memory optimization) — Windows only, with a mechanical-drive warning. It can run when loading a level and/or when entering the editor.
UI
- Clickable hyperlinks are now a proper component — the General tab shows a direct link to the tutorial (learn.modrift.org/mods/iridium).
- Settings hints for memory features were rewritten to be actually readable, and the memory section now has a clear Basic / Advanced structure.
提交记录 / Commits
| Hash | Message |
|---|---|
ef9ff08 |
docs: rewrite release changelog for the optimization rework |
d8bff66 |
feat: memory optimization rework, custom easing engine rewrite, decoration hot-path optimizations |
d9c5423 |
fix: ver mismatch |
Please Use the version that fits your ADOFAI version.
2.0.1_snapshot1
2.0.1_snapshot1
更新日志 / Changelog
Note
Iridium supports multiple mod loaders — see README.md for platform-specific installation instructions.
[!WARNING]
On Linux/macOS, this mod may require libgdiplus to be installed separately. It is used for UI rendering (icons, buttons, switches) as well as image compression.
Changes
1.Added memory optimize(like PCL2!)
提交记录 / Commits
| Hash | Message |
|---|---|
b127d7b |
feat: 。。。refactor UI,memory optimize |
c33f44a |
fix: editor shortcuts never triggered; align modifier bits and repair saved keys |
Please Use the version that fits your ADOFAI version.