Minecraft World Inference Engine is a research-oriented system for analyzing Minecraft worlds through probabilistic inference, not packet exploits or illegal client behavior.
Instead of "reading the answer directly", the engine tries to infer:
- seed candidates, when feasible
- likely base locations
- important structures
using only chunk data that a legitimate client can already observe.
If a human can infer a base from patterns, the process can be modeled as a search + scoring problem.
The project treats world analysis as an inference pipeline:
State: observed world data and extracted chunk featuresTransition: new evidence added as the player moves and loads more chunksScore: probability that a candidate chunk, path, structure, or seed is meaningful
Score(x) = w1 * heuristic(x) + w2 * ML(x)
Where:
heuristic(x)captures interpretable signals such as entropy, block density, light level, and unnatural placement patternsML(x)is a lightweight classifier, such as logistic regression, that predicts whether a chunk is valid, active, or meaningful
[Minecraft Mod (Java)]
|
v
[Chunk Data]
|
v
[IPC / Local API]
|
v
[Core Engine (C)]
|
v
[Scoring + Inference + DB]
|
v
[Result -> Mod Overlay]
Responsible for client-side observation and visualization:
- scans already-loaded chunks
- extracts lightweight features from visible world state
- forwards structured signals to the core engine
- renders overlays such as heatmaps and highlights
Example feature inputs:
- block placement patterns
- container presence such as chests or furnaces
- light and activity signals
- bedrock pattern information
The core engine is the main inference layer, responsible for:
- base detection
- optional seed inference
- structure prediction
- probabilistic ranking and search
- local state management and caching
Possible techniques:
- scoring systems
- beam search
- candidate ranking
- incremental evidence fusion
The database stores compact signals, not raw world dumps.
Example schema:
chunk_xchunk_zactivity_scoreblock_densitycontainer_countbedrock_thicknessconfidence
The system does not rely on direct remote chest scanning. Instead, it scores chunks using signals that often correlate with player activity.
Score(chunk) = sum(wi * featurei)
Candidate features:
- player-placed blocks
- torch or light density
- container presence
- unnatural local patterns
The engine can detect and follow traversal evidence such as:
- roads
- nether highways
- portal activity
These trails can be used to rank nearby chunks as possible base targets.
Visual output may include:
- high-probability base zones
- medium-confidence activity areas
- regions worth rescanning after new evidence arrives
Once enough observations accumulate, the engine can attempt to predict likely locations of:
- strongholds
- fortresses
- bastions
Advanced mode:
- input: partial world observations
- output: top-K seed candidates
Possible methods:
- probabilistic scoring
- beam search
- candidate pruning
The system is designed to stay lightweight on the client side:
- only scans chunks that are already loaded
- keeps feature extraction cheap
- moves heavier computation into the C core
- uses caching and state deduplication
- updates the database incrementally
This project explicitly does not aim to:
- x-ray or read hidden containers remotely
- exploit packets
- bypass anti-cheat
- brute-force the entire world blindly
The design goal is inference from legitimate observations, not unauthorized access.
The world is treated as a search-and-scoring problem rather than a direct extraction problem.
This leads to a hybrid approach:
- interpretable heuristics for fast reasoning
- lightweight ML for ranking and validation
- incremental search as more evidence becomes available
Conceptually, it is closer to an inference engine than a cheat client.
- build the CLI core engine in C
- implement basic scoring
- support first-pass base detection
- build the Minecraft mod in Java
- add chunk scanning
- add overlay rendering
- connect mod and core via IPC or local API
- add local database and history tracking
- support incremental session analysis
- add ML-based scoring
- add seed inference
- add adaptive beam search
Build a system that can reason effectively about Minecraft worlds without hacks or exploits by turning world interpretation into an inference problem.
In short:
- not hacking
- not packet exploitation
- not raw world dumping
- yes to search, scoring, ranking, and probabilistic reasoning
This repository now includes a working Phase 1 foundation:
- a C CLI core engine
- CSV-based chunk signal ingestion
- stdin/live batch ingestion for external clients
- heuristic scoring for base, trail, activity, and structure ranking
- append-only local snapshot persistence
- a Java bridge scaffold for future Minecraft client integration
- a Fabric client mod skeleton that can trigger scans in-game
- sample data for smoke testing
Current repository layout:
core/
include/infercraft/
src/
data/
java-bridge/
fabric-mod/
samples/
build.ps1
The Phase 1 CLI reads chunk observations from CSV.
Required columns:
dimension,chunk_x,chunk_z,player_placed_ratio,light_density,container_count,
unnatural_pattern_score,trail_score,bedrock_signal,activity_noise
Example:
overworld,14,-8,0.87,0.71,5,0.81,0.18,0.05,0.08
nether,2,40,0.22,0.36,0,0.48,0.90,0.62,0.09Build:
./build.ps1If PowerShell blocks script execution on Windows:
powershell -ExecutionPolicy Bypass -File .\build.ps1Analyze sample data:
./infercraft.exe --input samples/base_signals.csv --top 5Analyze via stdin:
cmd /c "type samples\base_signals.csv | infercraft.exe --input - --no-persist"Rank by another signal:
./infercraft.exe --input samples/base_signals.csv --rank-by trail --top 3Disable persistence:
./infercraft.exe --input samples/base_signals.csv --no-persistAvailable CLI options:
--input <path>: source CSV of chunk observations--db <path>: append-only local snapshot file--top <count>: number of top-ranked chunks to print--rank-by <base|activity|trail|structure>: ranking mode--no-persist: skip writing snapshot output
Build requirements:
clang,gcc, orclavailable onPATHbuild.ps1also checks commonmsys64compiler locations on Windows
The CLI produces:
- best base candidate
- best trail candidate
- best structure candidate
- top-N ranked chunks for the selected metric
- optional snapshot rows appended to
data/chunk_signals.csv
The java-bridge/ directory contains a plain Java transport layer for feeding chunk signals into the core engine over stdin.
This gives the project a clean integration seam:
- Minecraft client or mod collects chunk features
- Java bridge serializes them to the core CSV schema
- the C engine ranks candidates and returns text output
Because the current machine has a Java runtime but no javac on PATH, the bridge source was scaffolded but not compiled here.
The fabric-mod/ directory contains a separate Fabric client project that reuses the Java bridge source and is designed to call infercraft.exe from inside Minecraft.
Current skeleton features:
- Fabric client entrypoint
Ikeybind for manual scans- lightweight HUD status overlay
- simple local config bootstrap
- chunk signal collection around the player
- process bridge into the C core
Runtime flow:
- build
infercraft.exein the repository root - launch the Fabric client project
- press
Iin-game - inspect the returned best-candidate summary in the HUD
Environment note:
- the Fabric project targets Java 17
- this workspace currently does not have Gradle or a Java 17 JDK, so the Fabric scaffold was created but not compiled here
Phase 1 intentionally uses a simple CSV snapshot store instead of SQLite so the project can stay portable and dependency-light while the inference model is still evolving.
The next natural step is to add:
- richer feature extraction
- chunk clustering across nearby coordinates
- IPC between the C engine and a Java mod
- stronger structure and seed inference pipelines