Fast Minecraft Java Edition seed finder with .ezsf criteria language and GUI
Project description
EZ Seed Finder
Fast, GUI-based Minecraft Java Edition seed finder with an extensive .ezsf criteria language.
Powered by cubiomes via a vendored cubiomespi-fork build for accurate structure and biome generation.
Features
- GUI — set version, structure distances, stronghold options, and spawn filters
.ezsffiles — expressive criteria syntax for complex multi-dimension searches- Multi-threaded — uses all CPU cores for fast random/sequential scanning
- Structures — villages, temples, mansions, monuments, ruined portals, ancient cities, trial chambers, and more
- Dimensions — overworld, nether, and end criteria in one search
- Strongholds — nearest distance, under-spawn, ring selection, full stronghold (best-effort)
- Biomes — point checks, region percentages, spawn biome
- Bastions — variant filtering (treasure, housing, stables, bridge)
- Distance rules — e.g. village and ruined portal within 200 blocks of each other
- Terrain / mobs / loot — terrain heuristics, mob biome proxies, loot structure checks
Quick Start
Install from PyPI
pip install ezseedfinder
ezsf -gui # graphical interface (requires tkinter)
ezsf -f criteria.ezsf # headless CLI search
ezsf --village 500 -n 10 # quick village filter
GUI requires tkinter. On Debian/Ubuntu: sudo apt install python3-tk
Windows: pip builds a native cubiomes library during install (requires Microsoft C++ Build Tools with the “Desktop development with C++” workload). If pip selects a wheel built for another OS, it falls back to the source package and compiles locally.
Development
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
ezsf -gui
ezsf -f examples/speedrun.ezsf -n 5
GUI Usage
- Pick a Minecraft version (1.12.2 – 26.2, default 26.2)
- Set structure distances in blocks (0 = ignore)
- Enable stronghold options if needed
- Optionally edit the
.ezsfpanel for advanced criteria - Click Start Search — results appear in the table (double-click to copy seed)
.ezsf Syntax Reference
version 26.2
threads 8
max_results 10
random # or: sequential
seed_range start 0 end 1000000
spawn within 2000 of origin
spawn biome plains | forest
stronghold nearest within 1500 of spawn
stronghold under spawn
stronghold full
stronghold ring 1
dimension overworld {
biome at 0, 64, 0 plains | meadow
biome region -512, -512 to 512, 512 y 64 contains desert >= 10%
structure village within 500 of spawn viable
structure between village and desert_pyramid within 800 of spawn viable
ruined_portal within 300 of spawn viable giant false top_missing 1 chest item obsidian min 1 chest item flint_and_steel min 1
terrain at 0, 0 flat radius 128
}
dimension nether {
structure fortress within 400 of 0,0 viable
bastion variant treasure within 600 of spawn viable
}
dimension end {
structure end_city within 1000 of 0,0 viable
}
distance village ruined_portal <= 200 in overworld
mob witch within 200 of spawn in overworld biome swamp
loot at ruined_portal item obsidian min 1 within 500 of spawn in overworld
Structure variants
Ruined portals support cubiomes variant flags plus frame/loot simulation (1.16.1+):
giant true|false— giant portal templateunderground true|false,airpocket true|false,template 3— placement varianttop_missing N— obsidian holes on the top row of the portal frame (after crying-obsidian RNG)frame_missing N— total frame holes (optional; templates usually need 3+ blocks to complete)chest item <name> min N— ruined portal chest loot (obsidian, flint_and_steel, gold_ingot, etc.)
Bastions: bastion variant treasure|housing|stables|bridge within 600 of spawn
Point references
spawn— world spawnoriginor0,0— world originx, z— explicit coordinates
Structures
village, desert_pyramid, jungle_temple, swamp_hut, igloo, ocean_ruin, shipwreck, monument, mansion, outpost, ruined_portal, ancient_city, treasure, mineshaft, fortress, bastion, end_city, trail_ruin, trial_chambers, and more.
Notes
- Full stronghold — cubiomes does not simulate portal room layout; EZSF uses a ring-1 proximity heuristic.
- Chest loot — ruined portal chests use the real 1.16.1 loot table (best-effort RNG). Other structures verify placement only.
- Ruined portal frame — uses extracted vanilla structure templates; crying-obsidian replacement is simulated at ~15% per block.
- Mob rules — use biome suitability as a proxy for spawn conditions.
Examples
See bundled examples (ezseedfinder/examples/ after install, or examples/ in the repo):
ruined_portal_speedrun.ezsf— 1.16.1 portal_6 frame + chest loot speedrunspeedrun.ezsf— 1.16.1 village + portal + stronghold + netheradvanced.ezsf— biomes, terrain, mobs, all dimensions
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ezseedfinder-0.4.1.tar.gz.
File metadata
- Download URL: ezseedfinder-0.4.1.tar.gz
- Upload date:
- Size: 393.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5dc6ddf16ceb49e75944882bee474714aef0f02d5bd8e73ae93ed54f983e0d4
|
|
| MD5 |
d39758cba3a23adbaf9dcc324c32326a
|
|
| BLAKE2b-256 |
159ca54c2a5b9baeff7c3c4f2a4ff37aea782eb15a477ee9039d850a08f24e2b
|
Provenance
The following attestation bundles were made for ezseedfinder-0.4.1.tar.gz:
Publisher:
publish.yml on codingsushi79/ezseedfinder
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ezseedfinder-0.4.1.tar.gz -
Subject digest:
e5dc6ddf16ceb49e75944882bee474714aef0f02d5bd8e73ae93ed54f983e0d4 - Sigstore transparency entry: 2111727314
- Sigstore integration time:
-
Permalink:
codingsushi79/ezseedfinder@02a87f4fb310a815c1a94c37ef7b3e900de89a20 -
Branch / Tag:
refs/tags/v0.4.1 - Owner: https://github.com/codingsushi79
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@02a87f4fb310a815c1a94c37ef7b3e900de89a20 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ezseedfinder-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: ezseedfinder-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32c707146a2adb7f3147fbae8b4d9f852447802a50f21ff854102930708037eb
|
|
| MD5 |
17c195dd5ea683bfd0016950aa0f2a43
|
|
| BLAKE2b-256 |
65ff19b2dfe14a9411dcf0238a8039921533a307a561bac13b022c61cafb60a5
|
Provenance
The following attestation bundles were made for ezseedfinder-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl:
Publisher:
publish.yml on codingsushi79/ezseedfinder
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ezseedfinder-0.4.1-cp312-cp312-manylinux_2_34_x86_64.whl -
Subject digest:
32c707146a2adb7f3147fbae8b4d9f852447802a50f21ff854102930708037eb - Sigstore transparency entry: 2111727688
- Sigstore integration time:
-
Permalink:
codingsushi79/ezseedfinder@02a87f4fb310a815c1a94c37ef7b3e900de89a20 -
Branch / Tag:
refs/tags/v0.4.1 - Owner: https://github.com/codingsushi79
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@02a87f4fb310a815c1a94c37ef7b3e900de89a20 -
Trigger Event:
push
-
Statement type: