MCA Selector Filters: The Chunk Filter & Query Guide

Selecting chunks by hand works for a village. It does not work for “every chunk this world generated before 1.20” across a 40,000-chunk world. That is what the chunk filter is for: you describe the chunks you want with conditions — DataVersion, InhabitedTime, biome, entities and more — and MCA Selector builds the selection (or deletion) for you.

Back up your world first: MCA Selector writes deletions and NBT changes straight to disk the moment you confirm them — there is no undo and no File → Save step to catch a mistake. Close Minecraft (and stop your server, if the world is on one), then copy the whole world folder somewhere safe before you edit.

What the filter can match

The filter dialog combines conditions on the fields MCA Selector reads from each chunk, including:

FieldTypical use
DataVersionFind chunks generated by a specific Minecraft version range — for example everything older than your current version, before a prune. The DataVersion list gives the numbers per version.
InhabitedTimeHow long players have spent in the chunk, in game ticks (72,000 = one hour). Low values = fly-over terrain; the basis of safe chunk resets.
xPos / yPos / zPosThe chunk’s own coordinates — limit an operation to a boxed area of the world.
BiomeChunks containing (or set to) a given biome.
PaletteChunks containing a given block — find every chunk that has a particular block in it.
StatusHow far the chunk progressed through generation — useful for finding partially generated chunks at world borders.
Entities / #EntitiesChunks containing a named entity type, or more than a chosen number of entities — a first stop for entity-lag hunts.
StructuresChunks holding a structure reference.
PlayerLocationChunks near where players are (or were) located.
Timestamp / LastUpdateWhen the chunk was last written/updated.
Circle / BorderGeometric conditions — a radius around a point, or chunks at the edge of the generated area.

Combining conditions: groups and NOT

Conditions can be stacked, and the filter offers Group and Not Group to structure them: a group bundles several conditions so they are evaluated together, and negating a group excludes everything inside it. In practice that lets you express the queries that matter, such as:

  • “DataVersion below the current version’s range and InhabitedTime under 36,000″ — old, barely visited chunks: prime reset/prune candidates.
  • “Not (inside the rectangle around spawn and the bases)” — build a protected zone as a group, negate it, and every other condition only applies outside it.
  • “Palette contains minecraft:diamond_ore“ — a novelty query that also demonstrates the Palette field reads real block data, not just metadata.
  • “#Entities above 500” — find entity-crammed chunks before they become a performance ticket.

What the filter does with the matches

A filter run has two kinds of outcome. It can build a selection — including adding matches to an existing selection (Add Selection) or cutting matches out of it (Subtraction mode) — so you can review the highlighted chunks on the map before deciding anything. Or, in its delete mode, it can delete every matching chunk directly. The official documentation’s wording for that mode deserves quoting: all chunks matching the filter are deleted in the original files, and “this operation is instant and there is no going back.” Prefer the selection outcome on a first pass; delete only after you have seen what matched.

The second tab: Groovy script filters

Next to the condition builder, the filter dialog has a tab for a Groovy script filter: a script that is evaluated per chunk and decides with full logic — comparisons across fields, string matching, arithmetic — what the condition list cannot express. Scripts are also the engine behind the custom changes in the NBT Changer. Treat scripts like code, because they are: develop them on a copy of the world, log what they match, and only then run them on the real save.

A repeatable workflow for big cleanups

  1. Back up the world; work on the real save only after a rehearsal on the copy.
  2. Start with a narrow query (one condition) and apply it as a selection. Does the highlight match what you expected?
  3. Tighten with a second condition or a Not Group protecting your bases.
  4. Export the final selection as CSV (Selection → Export selection) so the exact cleanup is archived.
  5. Run the destructive step — deletion, or hand the selection to the pruning workflow in prune a world for an update — then verify in game.

Download MCA Selector 2.9

Everything in this guide works with the current release. Get the Windows installer, the cross-platform .jar, the macOS .dmg or the Linux .deb/.rpm from the MCA Selector download page — every button there points at the official GitHub release files and lists the SHA-256 checksum, with a clearly labelled site mirror as a fallback.

One last backup reminder: keep the copy of your world you made before editing until you have loaded the edited world in Minecraft and confirmed it looks right. Deletions and NBT changes in MCA Selector are permanent once applied.

Related guides

Similar Posts