Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
29ea584
Start of work on porting this to Minecraft 1.16
dshadowwolf Jul 2, 2021
b21df89
A lot of work...
dshadowwolf Jul 3, 2021
81e69d1
Start move from annotation based integration to data based integration
dshadowwolf Jul 4, 2021
abec52b
Abstract a constant and remove now unused code
dshadowwolf Jul 5, 2021
ada1e46
Add a proper blocklist/blacklist for controlling what mods configs ge…
dshadowwolf Jul 5, 2021
53fcae7
Several changes:
dshadowwolf Jul 5, 2021
fb1e191
flesh out some stubs, add some needed functionality
dshadowwolf Jul 5, 2021
d35aa1b
Some work on fleshing out biome and dimension allow/deny lists
dshadowwolf Jul 5, 2021
0b2797d
more completed work
dshadowwolf Jul 7, 2021
e64a71d
Bunch of small changes
dshadowwolf Jul 9, 2021
481d7d0
More Small Changes
dshadowwolf Jul 14, 2021
ef0dbad
More small changes (again)
dshadowwolf Jul 14, 2021
3af3e1b
About halfway towards having data ready for proper resolution steps
dshadowwolf Jul 14, 2021
7a0c43d
Data work just about complete, just a few bits left needed...
dshadowwolf Jul 15, 2021
d869298
Data loading and resolution complete.
dshadowwolf Jul 15, 2021
2edae3b
Stumbling steps forward...
dshadowwolf Jul 16, 2021
e316bf5
Delete most of the latest work
dshadowwolf Jul 16, 2021
1a286e9
Get to work making the various allow/deny list stuff working in a sim…
dshadowwolf Nov 10, 2021
dfec388
Spread the love - the new allow/deny list base class is complete and …
dshadowwolf Nov 10, 2021
ca5463c
Small mistakes in implementation of the generic base fixed... now to …
dshadowwolf Nov 10, 2021
64e075a
Fix an overlooked bit that needed changed... the DefaultFeatureConfig…
dshadowwolf Nov 10, 2021
ff71da5
Skeleton of the actual "default" feature as was done by OreSpawn 1 - …
dshadowwolf Nov 11, 2021
241b4eb
Its getting there... Can actually get into a world !
dshadowwolf Nov 11, 2021
33caf78
...can't seem to get this working :(
dshadowwolf Nov 11, 2021
be98eed
Seems to work, but the feature itself never seems to get used... Do I…
dshadowwolf Nov 11, 2021
9c5fbb7
Lots of tiny changes, nothing major fixed from the last commit.
dshadowwolf Nov 11, 2021
782b954
still not working right, but here is what I thought would make this w…
dshadowwolf Nov 11, 2021
dab50e3
more poking, things still are not working...
dshadowwolf Nov 11, 2021
32d4775
fighting with things to try and make this work... fingers crossed ?
dshadowwolf Nov 11, 2021
5a04fe4
Almost functional... now why are mixins not applying ?
dshadowwolf Nov 11, 2021
e53072b
streamline the build.gradle to make things work with the mixin proces…
dshadowwolf Nov 12, 2021
314b7d9
need to specifically use version 0.8.3 or 0.8.4 of the mixin annotati…
dshadowwolf Nov 12, 2021
d4ed61d
Last commit for this line of progression - mixins and pure datapack s…
dshadowwolf Nov 12, 2021
1c67882
more works, lots of stuff likely to move or disappear at a moments no…
dshadowwolf Feb 7, 2022
fc1bdc7
Lots of churn to get really rolling on making this work properly.
dshadowwolf Sep 15, 2022
2beeef7
actually for 1.20.1, IIRC
dshadowwolf Jul 29, 2025
e92b737
code!
dshadowwolf Jul 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions CHANGELOG.txt

This file was deleted.

506 changes: 18 additions & 488 deletions LICENSE

Large diffs are not rendered by default.

177 changes: 35 additions & 142 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,152 +1,45 @@
[![](https://img.shields.io/badge/Discord-MMD-green.svg?style=flat&logo=Discord)](https://discord.mcmoddev.com)
[![](http://cf.way2muchnoise.eu/full_mmd-orespawn_downloads.svg)](https://www.curseforge.com/minecraft/mc-mods/mmd-orespawn)
[![](http://cf.way2muchnoise.eu/versions/Minecraft_mmd-orespawn_all.svg)](https://www.curseforge.com/minecraft/mc-mods/mmd-orespawn)
[![Build Status](https://ci.mcmoddev.com/job/OreSpawn/job/OreSpawn%201.12/badge/icon)](https://ci.mcmoddev.com/job/OreSpawn/job/OreSpawn%201.12/)
# MMD OreSpawn 4.x
A re-imagining of an old MMD Mod for modern Minecraft. Now we just provide the feature placers and let the existing
datapack infrastruture handle the rest.

# OreSpawn
Minecraft library mod that provides better control over the spawning of ores in Minecraft.
If you're looking for a place to report bugs for the mod that adds extra mobs, the "DangerZone", etc... go [to the site for that mod](http://www.orespawn.com/) as this is not it.
Work Started: 19-AUG-2024 D. Hazelton <dshadowwolf@gmail.com>
Beta Work Completed: 29-JUL-2025 D. Hazelton <dshadowwolf@gmail.com>

## How it works
Ore Spawn parses all of the .json files found in `orespawn` and adds ore generators to the game based on those files. The JSON structure looks like this:

This version of MMD OreSpawn adds a set of generators that can be used similar to the vanilla ones. In fact you use
them exactly the same, by putting the right ID in the right JSON file in a data pack. The following example replaced
the standard coal spawn as part of testing the code and uses the `vein` feature generator:
```json
[
{
"dimension": -1,
"ores": [
{
"block": "minecraft:quartz_ore",
"size": 15,
"variation": 4,
"frequency": 7,
"min_height": 0,
"max_height": 128
}
]
},
{
"ores": [
{
"block": "minecraft:coal_ore",
"size": 25,
"variation": 12,
"frequency": 20,
"min_height": 0,
"max_height": 128
},
{
"block": "minecraft:iron_ore",
"size": 8,
"variation": 4,
"frequency": 20,
"min_height": 0,
"max_height": 64
},
{
"block": "minecraft:gold_ore",
"size": 8,
"variation": 2,
"frequency": 2,
"min_height": 0,
"max_height": 32
},
{
"block": "minecraft:diamond_ore",
"size": 6,
"variation": 3,
"frequency": 8,
"min_height": 0,
"max_height": 16
},
{
"block": "minecraft:lapis_ore",
"size": 5,
"variation": 2,
"frequency": 1,
"min_height": 0,
"max_height": 32
},
{
"block": "minecraft:emerald_ore",
"size": 1,
"variation": 0,
"frequency": 8,
"min_height": 4,
"max_height": 32,
"biomes": [
"minecraft:extreme_hills",
"minecraft:smaller_extreme_hills"
]
},
{
"block": "minecraft:dirt",
"size": 112,
"variation": 50,
"frequency": 10,
"min_height": 0,
"max_height": 255
},
{
"block": "minecraft:gravel",
"size": 112,
"variation": 50,
"frequency": 8,
"min_height": 0,
"max_height": 255
},
{
"block": "minecraft:stone",
"state": "variant=granite",
"size": 112,
"variation": 50,
"frequency": 10,
"min_height": 0,
"max_height": 255
},
{
"block": "minecraft:stone",
"state": "variant=diorite",
"size": 112,
"variation": 50,
"frequency": 10,
"min_height": 0,
"max_height": 255
},
{
"block": "minecraft:stone",
"state": "variant=andesite",
"size": 112,
"variation": 50,
"frequency": 10,
"min_height": 0,
"max_height": 255
{
"type": "mmdorespawn:mmdos4_vein",
"config": {
"discard_chance_on_air_exposure": 0.5,
"size": 17,
"min_length": 100,
"max_length": 200,
"frequency": 1.0,
"targets": [
{
"state": {
"Name": "minecraft:coal_ore"
},
"target": {
"predicate_type": "minecraft:tag_match",
"tag": "minecraft:stone_ore_replaceables"
}
},
{
"state": {
"Name": "minecraft:deepslate_coal_ore"
},
"target": {
"predicate_type": "minecraft:tag_match",
"tag": "minecraft:deepslate_ore_replaceables"
}
}
]
}
]
}
```

### dimension
The number ID of a dimension. Don't specify any dimension to target all dimensions *that are not already specified*.
### ores
Array of JSON objects specifying ore generators for this dimension
### block
Text ID of a block (the same you would use in the /give command)
### state
The state of a block (typically used for colored blocks)
### size
The number of blocks to spawn. Unlike the default Minecraft world settings JSON, this is the actually number of blocks that will spawn.
### variation
How much to randomly vary the number of blocks spawned (I recommend making this value 50% of the *size* value)
### frequency
How often, per chunk, to attempt to spawn this ore block. This value can be a fraction less than 1. If this value is between 0 and 1, then not every chunk will have a spawn in it. For example, a frequency of 0.1 means that there will be one attempt to spawn the ore per 10 chunks.
### min_height
The lowest Y-coordinate that the ore is allowed to spawn at
### max_height
The highest Y-coordinate that the ore is allowed to spawn at
### biomes
If this array is not empty, then the biomes in which the ore will spawn is restricted to those specified by ID in this array.

# API
Adding OreSpawn support to your mod is not hard. Look at `VanillaOreSpawn.java` for an example.
Loading