
Achievements Optimizer
Improved achievement performance
Автор: bigenergy1,3 млн189обновлён 8 июн. 2026 г.
ОптимизацияУтилиты
Описание
Achievements Optimizer is a lightweight performance mod that optimizes how item-based achievements and advancements are processed — reducing unnecessary inventory scans and improving overall tick efficiency.
It doesn’t change any gameplay mechanics or logic — only makes achievement checks faster and cleaner under the hood.
⚙️** Key Optimizations**
- Early tick skipping — heavy slot calculations (empty/occupied/full) are skipped early, preventing extra work per event.
- Instant empty stack discard — with ignoreEmptyStacks enabled, empty stacks are removed immediately without scanning the entire inventory.
- Fast multi-item matching — single-pass inventory check using boolean[] flags with early exit. No allocations, noticeably faster on large inventories or long condition lists.
- Early slot filtering — slots.matches(full, empty, occupied) is evaluated first, avoiding deeper checks when slots don’t match.
- Preserved fast path for single targets — when items.size() == 1, the comparison is done directly on the changed slot without a full inventory pass.
🚀 Result
Fewer redundant checks, less memory churn, and faster responses to inventory events. Particularly beneficial for servers or modpacks with many players and complex advancement triggers.
**From version 2.0.0 required Forge Config API Port (only for fabric version). ** Feel free to write about all problems and suggestions on my github! Good luck!
Последние версии
Все версии →release
Achievements Optimizer 2.1.2
2.1.28 июн. 2026 г.922Minecraft: 26.1.2neoforge
Что нового
26.1.2 support
release
Achievements Optimizer 2.1.2
2.1.28 июн. 2026 г.3,3 тыс.Minecraft: 26.1.2fabric
Что нового
26.1.2 support
release
Achievements Optimizer 2.1.2
2.1.210 янв. 2026 г.892Minecraft: 1.21.11neoforge
Что нового
1.21.11 port
release
Achievements Optimizer 2.1.2
2.1.210 янв. 2026 г.43,8 тыс.Minecraft: 1.21.11fabric
Что нового
1.21.11 port
release
Achievements Optimizer 2.1.1
2.1.118 окт. 2025 г.14,5 тыс.Minecraft: 1.21.10fabric
Что нового
1.21.100000 port
release
Achievements Optimizer 2.1.1
2.1.118 окт. 2025 г.421Minecraft: 1.21.10neoforge
Что нового
1.21.100000000000 PORT
release
Achievements Optimizer 2.1.0
2.1.08 окт. 2025 г.1,1 тыс.Minecraft: 1.21.9fabric
Что нового
- Ported 1.21.9
- required Architectury API
release
Achievements Optimizer 2.1.0
2.1.08 окт. 2025 г.160Minecraft: 1.21.9neoforge
Что нового
- Ported 1.21.9
- required Architectury API
release
Achievements Optimizer 2.1.0
2.1.017 авг. 2025 г.166,4 тыс.Minecraft: 1.21.1fabric
Что нового
- Skipping ticks is done before the heavy calculation of occupied/empty/full slots — less extra work on each event.
- With ignoreEmptyStacks enabled, empty stacks are discarded immediately, without causing an inventory scan.
- Fast matching of many items (one pass through the inventory with boolean[] flags and early exit — without allocations, noticeably faster on large inventories and long lists of conditions).
- Early filtering by slots (slots.matches(full, empty, occupied) is performed first, excluding further calculations in case of a mismatch.).
- Preserved fast path for one target (with items.size() == 1, the check is done on changed without a full scan — the behavior is left, but surrounded by earlier cutoffs.).
release
Achievements Optimizer 2.1.0
2.1.017 авг. 2025 г.122,8 тыс.Minecraft: 1.21.1neoforge
Что нового
- Skipping ticks is done before the heavy calculation of occupied/empty/full slots — less extra work on each event.
- With ignoreEmptyStacks enabled, empty stacks are discarded immediately, without causing an inventory scan.
- Fast matching of many items (one pass through the inventory with boolean[] flags and early exit — without allocations, noticeably faster on large inventories and long lists of conditions).
- Early filtering by slots (slots.matches(full, empty, occupied) is performed first, excluding further calculations in case of a mismatch.).
- Preserved fast path for one target (with items.size() == 1, the check is done on changed without a full scan — the behavior is left, but surrounded by earlier cutoffs.).