GemDP 
Python builders for Minecraft data packs and resource packs.
It's in BETA! Please consider reporting any bugs you may find
Features
- Custom items, tools, weapons & armor
- Custom blocks & ores
- Custom mobs
- Fullscreen overlays
- Book systems
- Advanced events system
- Event-driven AI for mobs
- Projectiles & raycasting
- Enchantments
- Dialogs & triggers
- NBT & storage
- Testing with the
mc_siminterpreter
Quick start
Install GemDP, then create a project with this layout:
pip install gemdp
my_pack/
├── first.py
└── assets/
└── ruby.png
ruby.png can be any PNG; use 16×16 for a vanilla-style item texture.
from pathlib import Path
from gemdp import DataPack, ItemComponent, ResourcePack
ROOT = Path(__file__).resolve().parent
ASSETS = ROOT / "assets"
# Use different names: these become the data-pack and resource-pack folders.
dp = DataPack("ruby_dp", "Ruby demo data", "1.21.11")
rp = ResourcePack("ruby_rp", "Ruby demo resources", "1.21.11")
ruby = rp.add_custom_item(
namespace="demo",
item_id="minecraft:clock",
custom_name="ruby",
texture_path=str(ASSETS / "ruby.png"),
datapack=dp,
item_name={"text": "Ruby", "color": "red"},
components=ItemComponent().max_stack_size(64).rarity("uncommon"),
)
print(ruby.get_give_command("@s"))
dp.build(ROOT / "out")
rp.build(ROOT / "out")
Install out/ruby_dp in a world's datapacks/ folder and enable out/ruby_rp from Minecraft's resource-pack screen. Then run /reload and use the printed /give command.
See Getting started for output-folder behavior and the exact install steps.
Examples
Ruby datapack
Full material set: ruby, ore, tools, sword, armor set, recipes.
examples/ruby_family/ruby_family.py
Ore spawns underground in veins.
Steve mob datapack
Segmented display mob, keyframe animations, MobAI with patrol, hit reactions, and goal routing.
examples/steve_mob/steve_mob.py
Rules Card
A datapack item that creates server rules at runtime.
examples/rules_card/rules_card.py
More runnable examples are in examples/.
Docs
Start here
- Getting started — install, first item, output folders, and Minecraft install steps
- API reference — complete class and method lookup
Build pack content
- Custom items — items, components, recipes, tools, weapons, armor, and item events
- Custom blocks — blocks, ores, block hooks, loot, and give commands
- Events —
EventApp, block, inventory, entity, and structure rules - Projectiles — hit hooks and firing from an item event
- Conditions — reusable
execute iffragments and predicates
Advanced systems and tests
- ScreenFX — fullscreen effects
- Custom mobs — display entities and MobAI
- Animations — rigs, keyframes, and playback
mc_sim— run generated data packs in Python tests
Metadata
Release files for gemdp 10.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gemdp-10.0.3.tar.gz | 393.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gemdp-10.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 702.5 kB
Release files / gemdp-10.0.3.tar.gz
| Download URL | gemdp-10.0.3.tar.gz |
|---|---|
| Size | 393.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5435e5c6759d56a157a12b3fa56666fca529c12af79aee68b3df1344bad2f199
|
|
BLAKE2b-256 checksum How to use checksums |
b862663a07ba1962ea896916f5072f18405d3bcd6a1697180bbc092006d7eee1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / gemdp-10.0.3-py3-none-any.whl
| Download URL | gemdp-10.0.3-py3-none-any.whl |
|---|---|
| Size | 308.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
113e9d67f0fc02c6f333bbab71b144a1df6c97be792b4c17a4e37bd350a1f34a
|
|
BLAKE2b-256 checksum How to use checksums |
9969915bc7ba8677babdac6bb6222786b105d7203f3ffd943869883c960d230d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|