promotional bannermobile promotional banner

chemek

Chemek turns Alchemistry machines into Mekanism-style tiered factories with upgrades, side configuration, recipe selection, locking, JEI integration, and four tiers.
Back to Files

chemek-1.1.4.jar

File namechemek-1.1.4.jar
Uploader
yuuka0desuyuuka0desu
Uploaded
Sep 15, 2026
Downloads
14
Size
127.2 KB
Mod Loaders
Forge
File ID
8884287
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:chemek-1691288:8884287")

Learn more about Curse Maven

What's new

Added

Shared catalyst slot (Dissolver / Combiner factories): a single shared catalyst slot now sits directly below the energy bar.

The slot only accepts catalyst items; when a recipe is locked, only that recipe's catalyst is accepted.

Dissolver: catalyst-requiring dissolve recipes only run when the shared slot holds the correct catalyst.

Combiner: catalyst-requiring combine recipes are only matched and crafted when the shared slot holds the correct catalyst (recipe JSON supports an optional catalyst field).

Auto-Sort tab: every factory now has the Mekanism-style auto-sort tab (same texture, position, on/off label and tooltip).

Compactor: same-item stacks are evenly spread across all unit input slots; empty units are targeted only when they can produce output.

Dissolver: main inputs are spread and balanced across all units.

Combiner: inputs are packed into as many complete recipe sets as possible; the layout is simulated first and only written back after a full count check, so no items can be lost.

Energy tab: all factories regained the Mekanism energy tab (lightning + FE icon, switches with the configured energy unit; hover shows usage/needed).

One-click start/pause button: all factories now have the chemistry-mod-style pause/resume button (same texture and localized labels), synced and persisted.

Product preview follows actual output: the preview shows the real items in the output slots first (shared outputs for the dissolver), then the currently matched recipe's product, and only falls back to the selected recipe when the machine is idle.
Fixed

Crash fix (introduced in 1.1.3): the forSideWithConfig slot holder rejects "sided" registration and threw Holder does not know how to add slots on specific sides, crashing block-entity construction (triggered when an adjacent cable refreshed its connections). Registration now uses plain addSlot(slot); the per-side lists are derived from the side config automatically, so "an Output side only exposes output slots" still holds.

Infinite duplication from the shared output slots (root cause): the log showed the logistics "predicted" one slot's content while the actual extraction landed on a different slot (e.g. predicted oxygen, extracted water) — the side-config slot list and the slot index space exposed to pipes were not the same list. Mekanism's logistics ships its predicted stack, so every cycle materialised a full stack out of nowhere. Fix: pipes and the side config now share the same source (Mekanism's native forSideWithConfig); all slots were also restored to Mekanism's original predicates at the owner's request (no slot protections; output slots keep Mekanism's internal-write-only convention).

Extraction from shared output slots did not debit them (duplicated output): extraction from output slots (including the dissolver's shared outputs) now copies the stack out and explicitly shrinks the slot.

Catalyst loss during old-save migration: per-unit catalysts are now merged into a single stack (previously only the first was kept).

Dissolver "first main slot has items but nothing is output": pending outputs were only flushed after the next dissolve, while starting a dissolve required the pending list to be empty — once the output slots filled up, the unit stalled forever. Outputs are now retried every tick and recover automatically when backpressure clears.

Occasional "catalyst swallowed" and abnormal output amounts: production re-verifies the input before consuming; empty inputs are never matched; output merging writes copies instead of mutating slot stacks in place.

Recipe selector crash: fixed the missing-class crash when opening the recipe selector screen.

Recipe selector missing input slots: all input slots are now always drawn — filled ones show the actual machine items, empty ones show the required-input ghosts.

Progress arrows not updating: progress/preview/energy sync now reads container-side caches on the client, so arrows update in real time.

Tier upgrade transfer: content migration between factory tiers now maps per slot section, fixing shared-output/catalyst misalignment across tiers.
Changed

Side-config-linked slots (Mekanism's native forSideWithConfig): the slots exposed on each side are now derived from the same source as the side config. A side set to "Output" only exposes the output slots and can no longer touch input or catalyst slots; input and catalyst sides likewise expose only their own slots. Side-config changes apply immediately.

The dissolver's per-unit catalyst slots were removed: each unit keeps a single main input slot, and catalysts go into the shared slot.

The catalyst slot only restricts insertion: only catalysts are accepted (and only the locked recipe's catalyst once locked); extraction keeps normal Mekanism automation behavior, and input slots are not automation-restricted.

Output slots no longer render ghost product previews on any factory (input requirement ghosts are kept).

Old saves are migrated automatically (slot layout v2): per-unit catalysts are merged into the shared slot and shared-output indices are shifted correctly — catalysts and products are preserved.
Dependencies & Compatibility

Requires the matching Alchemistry patch shipped with this batch: dissolver catalyst semantics + combiner catalyst field support (including network sync).

Example catalyst-enabled combiner recipe (KubeJS):
js
event.custom({
    type: 'alchemistry:combiner',
    group: 'alchemistry:combiner',
    input: [
        { count: 2, ingredient: { item: 'chemlib:nitrogen' } },
        { count: 4, ingredient: { item: 'chemlib:hydrogen' } }
    ],
    catalyst: { count: 1, ingredient: { tag: 'forge:ingots/iridium' } },
    result: { item: 'kubejs:hydrazine' }
}).id('alchemistry:combiner/hydrazine_with_catalyst');

This mod has no additional files