Skip to content
Rasa Novum edited this page Jul 26, 2026 · 7 revisions

Welcome to the Rock and Stone wiki!

About

This mod aims to alter the way ore is distributed around the world such that player's have to more intentionally seek out certain resources.

  • Vanilla ore generation is removed (by default) for every ore except Redstone and Diamond.
  • Each removed ore has a .json file (ie. filtered_ore_iron_upper.json) where you can add restrictive (minimum or maximum) values for each Noise Filter condition that Minecraft's world generation uses.
  • This allows for generation of ore in only certain environmental/climate conditions.
  • You can read more about the Climate values for Biome generation here.
  • The values used align with what is seen in the debug (F3) screen.

Commands

Rock and Stone has some debug commands that can be used for checking ore generation

  • scanOreCurrentChunk can be used to scan the current chunk and will display a list of the amount of each ore found in the current chunk the player is in.
  • scanOresChunkRadius can be used to scan a radius (in chunks) and will display a list of the amount of each ore found in the given radius. It takes one argument: radius

NoiseFilterPlacementModifier

The backbone of this mod is taking the values of the Noise Router during chunk generation and checking if these values align with the limits/criteria imposed by the .json filters for each ore.

The placement modifier considers the following Noise Router values:

  • Humidity
  • Temperature
  • Erosion
  • Continentalness
  • Peaks and Valleys (PV, also referred to as Ridges in the Noise Filter)

If a chunk meets a set of conditions, say minPV = 0.2 and minContinentalness = 0.3, any ore that has those listed conditions will be allowed to spawn at the rate/amount set in the .json filter.

Adding your own filters to vanilla or modded ores

You can modify the .json filters that ship with the mod using a Datapack that will simply overwrite the filters that ship with the mod. See the templates directory (found here) in the source code of the mod for an example.

Through this method, you can also add filters to any modded ore that you would like, simply by creating a .json filter file that is named and structured accordingly.

  • Modded ores must include the namespace of the mod they belong to, followed by a double underscore, ie. filtered_namespace__some_ore.json
  • An example using the Create mod's Zinc ore would be to name the file filtered_create__zinc_ore.json
  • You can then populate that file with the information required to filter the ore's generation, as can be seen in the template.

You may also remove the filtering of an ore that is shipped with the mod by simply overwriting the file with a datapack that does not have restrictive values that would prevent the ore from spawning (ie. setting the max and min to past their possible max and min values that the NoiseRouter would generate).

Config

The config of the mod has a couple of options that are available.

  • doRockAndStoneDebug can be enabled for extra debugging features, such as more information readout on the scan ores commands.
  • doOreReplacement is the default state of the mod, where ores will be removed and replaced with the filtered ones. Disable this if you want to generate a world with vanilla ore generation as a reference point for how frequent ore spawns in a given chunk, such that you can then compare to the values of a filtered ore of interest.
  • doSilentAdvancements can be enabled to load an internal datapack that will replace the advancements that ship with the mod to non-displayed versions of them, so they do not pop up on screen and instead are simply a backend piece of data. This is intended for use with Traveller's Handbook (in progress, coming soon!) to provide a more immersive experience when exploring the world.