Block Grep

Highlights every occurrence of a block pattern near you
A village with 2x2 `dirt_path` squares highlighted, as well as carrots-beside-carrots

A village with 2x2 `dirt_path` squares highlighted, as well as carrots-beside-carrots

item image

Description

Highlights every occurrence of a block pattern near you.

Patterns can be 1D, 2D or 3D, and you can search for shapes and groups of different blocks, including wildcard (?)

Usage

The easiest way to configure the mod is using the GUI settings screen. This can be started with the command /blockgrep config, or you can go to Options → Controls → Key Binds → Block Grep and assign "Open pattern settings" a key.

On Fabric, if you have Mod Menu installed, it'll appear in the mod menu list.

In the settings screen you can create new patterns and configure their rendering settings.

Commands

You can configure the mod entirely using commands if you wish.

/blockgrep pattern [symmetry] <spec>   add a shape of any dimensions
/blockgrep box <x> <y> <z> <blocks>    add a uniform box
/blockgrep list                        show the saved patterns
/blockgrep toggle <n>                  turn one on or off
/blockgrep only <n>                    enable one, disable the rest
/blockgrep all on|off                  every pattern at once
/blockgrep name <n> <text>             rename one
/blockgrep remove <n>                  delete one
/blockgrep radius <blocks>             4–128, default 32
/blockgrep limit <count>               default 512
/blockgrep config                      open the settings screen
/blockgrep status
/blockgrep off

Pattern syntax

Patterns are made of cell predicates, each of which tries to match a block:

Form Meaning
mud that block (namespace defaults to minecraft)
mud,dirt Either mud or dirt
mud,dirt,grass_block Either mud or dirt or a grass block
#minecraft:trapdoors any block with that tag, ie. any trapdoor in this example
? any block, including air
!air anything the rest does not match

These are combined into larger patterns using , | and ||. So,

Form Meaning
mud mud Two mud blocks beside each other (east-to-west)
mud \| mud Two mud blocks beside each other (north-to-south)
mud mud \| mud mud Four mud blocks in a 2x2 square
mud,dirt mud,dirt \| mud,dirt mud,dirt Four blocks of mud-or-dirt in a 2x2 square
stone stone \| stone stone \|\| mud mud \| mud mud A 2x2x2 cube with stone on the bottom layer and mud on the top layer

Examples

  • A 2x2 square of mud and/or dirt:

    • /blockgrep box 2 1 2 mud,dirt, or
    • /blockgrep pattern mud,dirt mud,dirt | mud,dirt mud,dirt
  • A grass block above another grass block:

    • /blockgrep pattern grass_block || grass_block
  • A 2x2 of mud, with anything (or nothing) above it:

    • /blockgrep pattern mud mud | mud mud || ? ? | ? ?
  • Any 2x2 of logs, of any wood type:

    • /blockgrep pattern #logs #logs | #logs #logs

Dimensioned form

A pattern can also be given as explicit dimensions followed by x·y·z cells, in x then z then y order:

/blockgrep pattern 2 2 2 mud mud mud mud #logs ? ? #logs

Symmetry

By default a pattern is matched at all four compass orientations. An optional symmetry spec before the pattern changes that. It is up to three axis letters — lowercase to allow rotation about that axis, uppercase or absent to pin it — with h and v to allow horizontal and vertical mirroring.

/blockgrep pattern XYZ   mud ? | ? mud     only as written        (1)
/blockgrep pattern y     mud ? | ? mud     four compass turns     (4, the default)
/blockgrep pattern yh    mud ? | ? mud     ...plus horizontal flips  (8)
/blockgrep pattern yv    mud ? | ? mud     ...plus a top-to-bottom flip (8)
/blockgrep pattern yvh   mud ? | ? mud     both mirror families   (16)
/blockgrep pattern xyz   mud ? | ? mud     all 24 rotations of the cube
/blockgrep pattern xyzvh mud ? | ? mud    all 48, reflections included

Mirror planes can also be named individually after a +, by the axis normal to each: +x is the east-west flip, +y the top-to-bottom one, +z north-south. So yh is exactly y+xz, and yv is y+y.

Three things are worth knowing:

  • Rotations about two different axes generate rotations about the third, so xy, yz, xz and xyz all mean the same 24 orientations.
  • Reflections are not implied by rotations. An L-shape and its mirror image are different shapes however you turn them, which is why h and v exist.
  • Mirrors are only interchangeable because of rotation. With the four turns of y in hand, +x and +z name the same eight orientations; with no rotation at all they are genuinely different flips, and XYZ+xz gives four orientations because composing the two mirrors produces a 180° turn.

Symmetric shapes are deduplicated, so each occurrence is reported once however many orientations were searched.

Performance

The scanner walks chunk sections (16x16x16 blocks) and uses the section palette to reject sections that cannot contain any candidate block, which skips the large majority of them. Scans are cached and re-run only when you move ~8 blocks or every 2 seconds.

Sections are visited nearest-first, so a scan that hits the match limit reports what is around you rather than whatever happened to lie in one corner of the radius. The limit is shared between active patterns, so one very common pattern cannot crowd out the others.

Patterns containing ! cannot use the section palette early-out and so are correspondingly slower — prefer naming blocks explicitly where you can.

Only chunks the client has loaded are searched, so range is capped by render distance regardless of the radius setting.

Cheating

Note: this mod can be used as an ore-finder so it should be considered a bit cheaty. Removing X-ray mode for a "lite" non-cheaty version was considered, but you'd still be able to look for, say, valuable ore below a grass_block or stone, highlighting that less-valuable block, so while removing X-ray mode would limit bulk cheating, it wouldn't make it a fair non-cheaty mod to use.

The Block Grep Team

profile avatar
Owner
  • 5
    Projects
  • 134
    Downloads

More from _gidView all

  • Trade School project image

    Trade School

    A proof-of-concept to demonstrate an idea for an alternative "Villager Trading Rebalance", making villager trading less grindy, and exploration more rewarding

    • 73
    • August 1, 2026
  • No-Fly Zones project image

    No-Fly Zones

    Build a beacon with a No-Fly effect and elytra and happy ghasts stop working inside its range

    • 12
    • July 30, 2026
  • Beacon Obscura project image

    Beacon Obscura

    A small server-side-only mod to enable visual hiding of beacon beams using tinted glass, without requiring client-side mods or configuration

    • 20
    • July 24, 2026
  • Fire Sprinkler project image

    Fire Sprinkler

    Server-side mod to make a button under a water-carrying block extinguish fire, burning mobs and players underneath

    • 17
    • July 24, 2026
  • Trade School project image

    Trade School

    A proof-of-concept to demonstrate an idea for an alternative "Villager Trading Rebalance", making villager trading less grindy, and exploration more rewarding

    • 73
    • August 1, 2026
  • No-Fly Zones project image

    No-Fly Zones

    Build a beacon with a No-Fly effect and elytra and happy ghasts stop working inside its range

    • 12
    • July 30, 2026
  • Beacon Obscura project image

    Beacon Obscura

    A small server-side-only mod to enable visual hiding of beacon beams using tinted glass, without requiring client-side mods or configuration

    • 20
    • July 24, 2026
  • Fire Sprinkler project image

    Fire Sprinkler

    Server-side mod to make a button under a water-carrying block extinguish fire, burning mobs and players underneath

    • 17
    • July 24, 2026