HomeJavaModsCM's ALL
CM's ALL
ModsJava

CM's ALL

by G_Vael · on Modrinth

Chain-harvest ores, trees, and terrain — MineAll, CutAll, and DigAll in one mod — without ever breaking your own builds. Player-placed blocks are skipped…

⬇ Download on Modrinth
CM's ALL — screenshot 1CM's ALL — screenshot 2CM's ALL — screenshot 3CM's ALL — screenshot 4CM's ALL — screenshot 5CM's ALL — screenshot 6

CM'sALL

A customizable chain-harvesting mod featuring built-in block protection to safeguard your builds.

CM'sALL integrates three essential chain-harvesting functions into a single mod while addressing a common issue: accidental destruction of player structures. By tracking player-placed blocks, it ensures that your wooden cabins, stone walls, and custom pathways remain untouched during bulk harvesting.


Supported Versions

Minecraft Loaders Architectury API
1.21.1 NeoForge, Fabric 13.0.8
1.21 NeoForge, Fabric 13.0.8
1.20.1 Forge, Fabric 9.2.14
1.16.5 Forge, Fabric 1.32.68
1.12.2 Forge — (standalone, not required)

Each Minecraft version and loader ships as its own jar (e.g. cmsall-forge-1.0.0+1.20.1.jar, cmsall-fabric-1.0.0+1.20.1.jar). Install only the single jar that matches your Minecraft version and loader.

Dependencies


Features


Configuration

CM'sALL can be configured entirely in-game — no config files to edit by hand.

From the pause menu (anywhere):

  1. Press Esc to open the pause menu.
  2. Click the iron pickaxe icon located next to the Advancements button.
  3. Adjust your activation mode, toggles, or server-wide limits (OP only) instantly.

From the mod list (title screen):

Key Bindings & Utilities


Technical Specifications & Performance


Commands

All functions can also be managed via the /cmsall command structure.

For All Players

For Operators (requires permission level ≥ editPermissionLevel, default 3)

Note: Resource IDs entered without a namespace default to minecraft:.


Known Limitations (Forge / NeoForge)

To ensure strict compatibility with protection, claim, and logging mods, CM'sALL fires a standard BlockEvent.BreakEvent for every single block destroyed in a chain under the Forge/NeoForge environment. Consequently, other mods tracking break events (such as quest lines, anti-cheats, or tool-XP mods) will process individual events per block. Fabric handles this via its harvest query API and does not emit duplicate events.


For Developers (API)

CM'sALL exposes a small, loader-agnostic API so other mods that move blocks (custom pistons, conveyors, and similar block-moving mods) can keep CM'sALL's player-placed protection following those blocks. Vanilla pistons are handled automatically — this is only for custom, non-piston movers. Call it on the server thread.

Class: cmsall.api.CmsAllTracking

Recommended pattern — bracket the move, then relocate only the blocks that actually landed, after moving. If the move fails partway, the un-moved source blocks keep their protection:

import cmsall.api.CmsAllTracking;

CmsAllTracking.beginMove();
try {
    // ... your mod performs its actual setBlock moves here ...
    CmsAllTracking.relocate(level, landedFromTo); // only blocks that landed; Map<BlockPos, BlockPos>: source -> destination
} finally {
    CmsAllTracking.endMove();
}

The bracket is re-entrant — nesting beginMove()/endMove() (e.g. helpers that each bracket a move) is safe. You may skip the bracket and relocate before clearing the source only if the move is a single step that cannot fail.

Available on every version and loader. (On 1.12.2 the API works for custom movers, but vanilla pistons are not auto-hooked.)

Partial failures. Relocating first and then failing leaves the still-present source block protected by nothing: CM'sALL's orphan sweep removes the now-bogus destination record (its stored block id no longer matches the block there), but it cannot re-create a record for an unrecorded source block. So relocate-after-landing is the fail-safe order; relocate-first is safe only when the move cannot fail.

Soft dependency. Referencing these methods when CM'sALL is not installed risks NoClassDefFoundError. The robust idiom is to isolate every CM'sALL reference in one dedicated integration class and touch it only when CM'sALL is present — class linking/verification can load referenced types before your guard line runs (e.g. when a type appears in a method signature or field), so "this code path doesn't execute" is not always enough. A presence check around an isolated reference, or a compileOnly dependency, both work.


Supported Languages

CM'sALL's in-game GUI, configuration menu, and command feedback automatically follow your Minecraft client's language setting — no extra setup required. Please note that there may be mistranslations.

39 languages supported:


License

This project is licensed under the MIT License — © 2026 G.Vael.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more