Back to mods
Excavated Variants project artwork

CurseForge · Minecraft mod

Excavated Variants

Automatically generated stone variants of ores

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which Excavated Variants release should I use?

Updated 1 year ago
Latest stable file Excavated Variants [NeoForge] v4.3.1
Game version 1.21.1
Loader NeoForge

Excavated Variants [NeoForge] v4.3.1 targets 1.21.1 with NeoForge. The project page does not say whether it belongs on the client. The project page does not say whether it belongs on the dedicated server. All 1 required mods have matching files.

Where it goes

Is Excavated Variants required on the client, server, or both?

The project page does not say whether it belongs on the client. The project page does not say whether it belongs on the dedicated server.

Client Source doesn’t say
Dedicated server Source doesn’t say
Loader for this release NeoForge
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

The source does not explicitly classify this release as client-only or server-only.

What else does Excavated Variants [NeoForge] v4.3.1 need?

Excavated Variants [NeoForge] v4.3.1. Change the file and its required mods may change too.

All 1 required mods have matching files

Install Dynamic Asset Generator first. We found matching files for this game-version and loader setup.

Dynamic Asset Generator Needed by Excavated Variants [NeoForge] v4.3.1
required
Matching file found Matched file: Dynamic Asset Generator [NeoForge] v6.1.2

We only count dependency files that match this setup. A file for another loader does not fill the gap.

Before you install it

Add Excavated Variants without breaking your instance.

Built for Excavated Variants [NeoForge] v4.3.1. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use Excavated Variants [NeoForge] v4.3.1. It targets 1.21.1 with NeoForge; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    Install Dynamic Asset Generator first. We found matching files for this game-version and loader setup.

  3. 03

    Put it on the correct side

    The project page does not say whether it belongs on the client. The project page does not say whether it belongs on the dedicated server.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside Excavated Variants [NeoForge] v4.3.1. It opens that exact file at the source.

About this project

What does Excavated Variants add?

Excavated Variants

NeoForge version requires: Dynamic Asset Generator

Fabric/Quilt version requires: Dynamic Asset Generator and Fabric API/Quilted Fabric API
 

Adds automatically generated variants of ores based on various stones.

Details:

Many mods add new stones or new ores. Excavated Variants automatically adds new ores for each combination of ore and stone variant. Additionally, Excavated Variants attempts to set up world gen for these ore variants. The variants added can be changed in the config file; some mods are built in to the default configuration; others will have to be manually added. See Images tab of Curseforge page for examples of generated ores.

Troubleshooting:

Running into issues? Start here!

  • If world or game loading times are slow, try turning on stronger asset and/or data caching in the config for Dynamic Asset Generator.
  • Is the game crashing on launch? Do ore textures turn magenta and black? Something may be wrong with your config. Try removing and resetting it.
  • Are you missing compatibility for a mod listed below? Delete your configs to reset them to the default.

Compatibility:

Excavated Variants comes with default configs that include ore variants for the following mods, in addition to vanilla stones and ores:

  • Quark
  • Create
  • Oh The Biomes You'll Go
  • Tech Reborn
  • Immersive Engineering
  • Blockus
  • Better End
  • Better Nether
  • Promenade
  • Twigs
  • Unearthed
  • Bewitchment
  • Mekanism
  • Mystical Agriculture
  • And more!

Config Format

The main config file, config/excavated_variants.json, contains several options:

  • attempt_worldgen_replacement: Toggles ore-gen changes; without this, ores won't be replaced during world gen.
  • add_conversion_recipes: Toggles whether to add recipes to convert variants back to the base ore.

All other configuration is loaded through the globalresources folder. You may add new config files there directly, but if you want to extract the built-in
configs in order to edit them, open the defaultresources.json config file. It should look something like as follows:

{
  "extract": {
    "excavated_variants": "unextracted"
  }
}

Change unextracted to extract and load the game once. Now, the default configs will be available to edit in the globalresources folder.

Note: If you just want to add more configs, you do not need to (and should not) do this. You can add new config files without extracting existing ones.

Configs define four main data types:

  • Ground Types: Ground types represent classes of ores and stones. They are used to determine which new ore/stone combinations (variants) should be created. For example: excavated_variants:overworld is a category shared by normal minecraft stone, deepslate, and overworld ores.
  • Ores: Ores are types of blocks which can exist in any number of different stones. During worldgen, they are replaced with variants matching neighboring stones. For example: excavated_variants:minecraft/iron_ore represents both normal and deepslate iron ore, as well as any other variants generated.
  • Stones: Stones are blocks which ores generate within. For example: excavated_variants:minecraft/granite represents granite, and contains information about which new variants to generate based off of granite.
  • Modifiers: Modifiers are used to modify the properties of variants. They can be used to add tags, change block properties, prevent variant creation, and more.

Except when changed by modifiers, variants are generated for all ore/stone combinations that share a ground type and do not already have a variant.

Ground Types

Placed in globalresources/[folder/pack]/globaldata/[namespace]/excavated_variants/ground_type. They are JSON files with the following structure:

  • (nothing): these don't actually hold any data yet! Just use an empty JSON file: {}.

Ores

Placed in globalresources/[folder/pack]/globaldata/[namespace]/excavated_variants/ore. They are JSON files with the following structure:

  • types: a list of ground types that this ore can generate in. For example: ["excavated_variants:overworld"].
  • translations: an object with locales as keys (such as en_us) and translated names of the ore as values. Translations will be prepended by the stone name, unless the translation contains %s, in which case the stone name will be inserted at that location.
  • tags: a list of tags that variants of this ore will be added to, as both block and item tags.
  • blocks: a map representing pairings of variants of this ore with stones. Each key is the identifier of a block representing an ore variant. Values take one of two forms:
    • a string representing the identifier of a stone. For example: "excavated_variants:minecraft/granite". This variant will be assumed to exist if the mod who's mod ID is the namespace of the block ID is present.
    • an object with the following fields:
      • stone: a string representing the identifier of a stone. For example: "excavated_variants:minecraft/granite".
      • required_mods: a list of mod IDs that must be present for this variant to be generated. For example: ["spelunkery", "create"].
      • generating: (optional, defaults to true) whether this variant can be used as a parent for new, generated variants.

Stones

Placed in globalresources/[folder/pack]/globaldata/[namespace]/excavated_variants/stone. They are JSON files with the following structure:

  • types: a list of ground types that this stone can generate in. For example: ["excavated_variants:overworld"].
  • translations: an object with locales as keys (such as en_us) and translated names of the stone as values.
  • block: the identifier of the block corresponding to this stone. For example: "minecraft:granite".
  • ore_tags: a list of tags that ore variants for this stone will be added to, as both block and item tags.

Modifiers

Placed in globalresources/[folder/pack]/globaldata/[namespace]/excavated_variants/modifier. They are JSON files with the following structure:

  • tags: (optional) a list of tags that variants matching the filter will be added to. Can be either block or item tags, in the format "namespace:[blocks/items]/path".
  • flags: (optional) a list of flags from the following set that will be applied to matching variants:
    • "original_without_silk": the variant should drop whatever its original block would drop, unless silk touch is used. Note that this flag is irrelevant for any ore blocks that have the behaviour of dropping "raw ore chunks" or the like, and is only relevant for when the original block drops itself.
    • "original_always": the variant should always drop whatever its original block would drop, even if silk touch is used.
    • "disable": the variant should not be generated or recognized by the mod.
    • "non_generating": the variant should not be used as a parent for new variants, but the mod is still aware of it.
  • properties: (optional) an object with the following fields, that modifies the properties of generated blocks:
    • destroy_time: the time it takes to break the block.
    • explosion_resistance: the resistance of the block to explosions.
    • xp: the amount of experience dropped by the block. Can take the same sort of integer range as seen in vanilla datapacks.
  • filter: describes which variants this modifier applies to.

Filters

Modifier filters can take the form of either a string or an object. As an object, they have at least one field, type,
which describes the type of filter. The available types are:

  • all matches everything.
  • empty matches nothing.
  • not matches everything not matched by its "filter" field.
  • and matches everything matched by all members of its "filters" field.
  • or matches everything matched by at least one member of its "filters" field.

As a string, they take one of the following forms:

  • *: matches everything.
  • ~: matches nothing.
  • ~[filter]: matches everything not matched by [filter].
  • ground_type@[namespace]:[path]: matches all variants with the given ground type.
  • stone@[namespace]:[path]: matches all variants with the given stone.
  • ore@[namespace]:[path]: matches all variants with the given ore.
  • mod@[mod_id]: matches everything, but only if a mod with the given ID is present.
  • generated: matches all variants that are generated by the mod.
  • block@[namespace]:[path]: matches all variants with the given block ID. The namespace and path provided here can use * as a wildcard to match one or more characters.

Project description from CurseForge.

Pick your setup

Excavated Variants by Minecraft version and loader

Choose the version and loader you play, then open the matching release.

32 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

Excavated Variants versions and loaders

102 of 102 releases match

Looking for an older file? The official CurseForge project page is in Resources.