|
1 | | -# Base Metals 3.0.0 |
| 1 | +[](https://discord.moddev.zone) |
| 2 | +[](https://www.curseforge.com/minecraft/mc-mods/base-metals) |
| 3 | +[](https://www.curseforge.com/minecraft/mc-mods/base-metals) |
| 4 | +[](https://github.com/MinecraftModDevelopmentMods/BaseMetals/actions/workflows/ci.yml?query=branch%3Amaster-1.18) |
2 | 5 |
|
3 | | -Base Metals 3.0.0 is the Minecraft 1.18.2/Forge 40 port of Base Metals. It adds |
4 | | -22 metals and alloys, their blocks and equipment, molten fluids, the Crack |
5 | | -Hammer, scythes, material shields, bows, bolt-launching crossbows, trades, |
| 6 | +# Base Metals |
| 7 | + |
| 8 | +Base Metals adds historically common metals, useful alloys, and fantasy metals |
| 9 | +to Minecraft. Depending on the material, these are available as ores, storage |
| 10 | +and decorative blocks, molten fluids, crafting components, tools, armour, |
| 11 | +shields, bows, crossbows, arrows, and bolts. The mod also includes Crack |
| 12 | +Hammers, scythes, metal anvils, the human detector, villager trades, |
6 | 13 | advancements, and structure loot. |
7 | 14 |
|
8 | | -This branch is a native Java 17 mod. It does not contain or require MMDLib, |
9 | | -Additional Loot Tables, Mineralogy, or a legacy ore generator. |
| 15 | +The Minecraft 1.18.2 line is a native Forge/Java 17 port. Its current version is |
| 16 | +`3.0.1.118021`: functional version `3.0.1`, built for the `118021` target |
| 17 | +(Minecraft 1.18.2, Forge). It preserves the historical `basemetals` registry |
| 18 | +IDs while replacing MMDLib, Additional Loot Tables, and the old Base Metals |
| 19 | +world generator with modern Forge and data-pack systems. |
10 | 20 |
|
11 | 21 | ## Requirements |
12 | 22 |
|
13 | | -- Minecraft 1.18.2 |
14 | | -- Forge 40.3.0 or newer in the Forge 40 line |
15 | | -- OreSpawn 4.0.1 or newer, but lower than 5.0.0 |
| 23 | +- Minecraft `1.18.2` |
| 24 | +- Forge `40.3.0` or newer in the Minecraft 1.18.2 Forge 40 line |
| 25 | +- Java 17 |
| 26 | +- OreSpawn `[4.0.1,5.0.0)` on both client and server |
| 27 | + |
| 28 | +This version is built and qualified against OreSpawn `4.0.16.118021`. Put |
| 29 | +`BaseMetals-3.0.1.118021.jar` and a compatible OreSpawn JAR in the `mods` |
| 30 | +directory. MMDLib and Additional Loot Tables must not be carried forward from |
| 31 | +an older installation. Mineralogy is optional. |
| 32 | + |
| 33 | +## Materials and gameplay |
| 34 | + |
| 35 | +Base Metals provides 22 materials: |
| 36 | + |
| 37 | +- Natural and industrial metals: Antimony, Bismuth, Copper, Lead, Mercury, |
| 38 | + Nickel, Platinum, Silver, Tin, and Zinc. |
| 39 | +- Alloys: Brass, Bronze, Cupronickel, Electrum, Invar, Pewter, and Steel. |
| 40 | +- Fantasy materials: Adamantine, Aquarium, Cold Iron, Mithril, and Starsteel. |
| 41 | + |
| 42 | +The available forms intentionally vary by material to preserve the established |
| 43 | +Base Metals content. Forge tags are used throughout recipes, so compatible |
| 44 | +ores, ingots, powders, plates, rods, gears, and other components from different |
| 45 | +mods can interoperate without a Java API dependency. |
| 46 | + |
| 47 | +Notable mechanics include: |
| 48 | + |
| 49 | +- Crack Hammers crush supported mined blocks through the data-driven |
| 50 | + `basemetals:crushing` recipe type. They can also crush dropped items by using |
| 51 | + the hammer on the block beneath them; sneaking processes as much of a stack |
| 52 | + as the hammer's remaining durability allows. |
| 53 | +- Supported ore powders can be smelted into ingots, and alloy blends provide the |
| 54 | + historical furnace-based alloying route. |
| 55 | +- Scythes harvest a horizontal 3x3 area while respecting normal Forge block |
| 56 | + break and protection events, drops, enchantments, and durability. |
| 57 | +- Material shields can be upgraded at an anvil with one strictly harder tagged |
| 58 | + plate while retaining their enchantments. |
| 59 | +- Base Metals bows fire its material arrows. Its legacy-style crossbows are |
| 60 | + draw-and-release weapons which fire material bolts. |
| 61 | +- Configurable armour and melee effects give Adamantine, Aquarium, Cold Iron, |
| 62 | + Lead, Mithril, and Starsteel their distinctive behaviour. Held Starsteel |
| 63 | + equipment repairs by one durability every 200 server ticks; Starsteel armour |
| 64 | + does not regenerate. |
| 65 | +- Molten-metal buckets place and collect the corresponding fluid blocks. These |
| 66 | + fluids are world blocks and compatibility resources rather than a second |
| 67 | + Base Metals processing system. |
| 68 | + |
| 69 | +The common configuration deliberately contains only four default-enabled |
| 70 | +switches: special equipment effects, Starsteel regeneration, mercury immersion |
| 71 | +effects, and villager trades. Registries, materials, recipes, and world |
| 72 | +generation are stable data contracts and cannot be disabled individually by |
| 73 | +the common configuration. |
| 74 | + |
| 75 | +## Ore generation |
| 76 | + |
| 77 | +[OreSpawn](https://www.curseforge.com/minecraft/mc-mods/mmd-orespawn) is the |
| 78 | +only ore-placement engine used by this port. Base Metals contains no native or |
| 79 | +fallback world generator. |
| 80 | + |
| 81 | +Fresh installations enable ten ore rules. Cold Iron and Adamantine generate in |
| 82 | +the Nether, Starsteel generates in the End, and the remaining enabled ores use |
| 83 | +explicit 1.18 height ranges in ordinary dimensions other than the Nether and |
| 84 | +End. Vanilla copper generation remains enabled. The Base Metals Copper, |
| 85 | +Antimony, and Bismuth ore blocks remain registered for compatibility and data |
| 86 | +packs, but do not generate by default. |
| 87 | + |
| 88 | +Base Metals does not add rock strata. If Mineralogy is installed, OreSpawn uses |
| 89 | +the same Base Metals rules and its declared rock-family host tags, avoiding a |
| 90 | +second copy of each ore. |
| 91 | + |
| 92 | +See [World generation](docs/WORLDGEN.md) for the complete provider contract, |
| 93 | +default distributions, and data-pack override guidance. |
| 94 | + |
| 95 | +## Updating an old world |
| 96 | + |
| 97 | +The port supports direct upgrades from Base Metals 1.10 and 1.12, including the |
| 98 | +original Cyano 2.4 line and the later MMD 2.5 line. The first 1.18 launch makes |
| 99 | +world-local backups before converting legacy numeric chunks, registry aliases, |
| 100 | +inventories, equipment, block entities, fluids, and OreSpawn 3 configuration. |
| 101 | +Migration stops instead of guessing when required legacy registry information |
| 102 | +is unavailable. |
| 103 | + |
| 104 | +Always perform the first upgrade on a copy of the world and keep the untouched |
| 105 | +original. Read [Migration](docs/MIGRATION.md) before starting an upgraded world. |
| 106 | + |
| 107 | +## Mod and data-pack compatibility |
| 108 | + |
| 109 | +Forge item, block, and fluid tags are Base Metals' public compatibility API. |
| 110 | +Conditional data is included for: |
16 | 111 |
|
17 | | -Put `BaseMetals-1.18.2-3.0.0.jar` and a compatible OreSpawn JAR in the `mods` |
18 | | -directory on both client and server. |
| 112 | +- Mekanism 10.2 |
| 113 | +- Thermal Expansion 9 |
| 114 | +- Tinkers' Construct 3.7 |
| 115 | +- Ender IO 6 alpha |
19 | 116 |
|
20 | | -## World generation |
| 117 | +See [Compatibility](docs/COMPATIBILITY.md) for the supported processing chains, |
| 118 | +tag aliases, copper rules, and intentionally retired legacy integrations. See |
| 119 | +[Supported versions](docs/VERSIONS.md) for the exact dependency and Maven |
| 120 | +contracts. |
21 | 121 |
|
22 | | -OreSpawn is Base Metals' only ore-placement engine. Fresh installations leave |
23 | | -vanilla copper generation enabled and do not generate Base Metals copper, |
24 | | -antimony, or bismuth ore. The other ten configured ores use explicit 1.18 |
25 | | -height ranges and dimension selectors. Base Metals provides no rock strata; |
26 | | -Mineralogy is optional and its rock-family tags are used automatically when it |
27 | | -is installed. |
| 122 | +## Building and contributing |
28 | 123 |
|
29 | | -See [docs/WORLDGEN.md](docs/WORLDGEN.md) for the complete provider contract and |
30 | | -[docs/MIGRATION.md](docs/MIGRATION.md) before upgrading an existing world. |
| 124 | +Base Metals uses ForgeGradle `7.0.34`, Gradle `9.6.1`, official Minecraft |
| 125 | +mappings, and the Java 17 toolchain. A normal command-line build resolves the |
| 126 | +qualified OreSpawn release from CurseMaven: |
31 | 127 |
|
32 | | -Direct Base Metals 1.12 worlds are pre-flattened before Forge loads their |
33 | | -chunks. Original region files are retained in a world-local backup, and the |
34 | | -migrator fails closed if it encounters an unknown third-party numeric block |
35 | | -ID. Always perform the first start on a copy. |
| 128 | +```text |
| 129 | +./gradlew clean check build javadoc |
| 130 | +``` |
36 | 131 |
|
37 | | -## Gameplay |
| 132 | +Generate and verify Eclipse launches with: |
38 | 133 |
|
39 | | -- Crack Hammers apply `basemetals:crushing` recipes to mined blocks. Right-click |
40 | | - below dropped items to crush one item, or sneak to crush as much of the stack |
41 | | - as the hammer's remaining durability permits. |
42 | | -- Scythes harvest a server-authoritative horizontal 3x3 area and route every |
43 | | - neighbour through Forge's normal block-break and protection events. |
44 | | -- A material shield can be upgraded in an anvil with one strictly harder plate. |
45 | | -- Base Metals bows accept Base Metals arrows; the legacy-style crossbows draw |
46 | | - and release Base Metals bolts. |
47 | | -- Held Starsteel equipment repairs by one durability every 200 server ticks. |
48 | | - Starsteel armour intentionally does not regenerate. |
| 134 | +```text |
| 135 | +./gradlew genEclipseRuns eclipse isolateEclipseProductionRuns verifyEclipseProductionClasspath |
| 136 | +``` |
49 | 137 |
|
50 | | -The common configuration contains only four default-true switches: special |
51 | | -equipment effects, Starsteel regeneration, mercury immersion effects, and |
52 | | -villager trades. Registries, recipes, materials, and world generation are |
53 | | -data-pack contracts and are not configuration-gated. |
| 138 | +The CI workflow also runs all required GameTests, generated-data drift checks, |
| 139 | +packaged client and dedicated-server smokes, release-JAR audits, dependency |
| 140 | +identity checks, and a second clean build to prove byte-identical release |
| 141 | +artifacts. GameTests, smoke probes, migration fixtures, and reference sources |
| 142 | +are isolated from the published JAR. |
54 | 143 |
|
55 | | -## Data-pack compatibility |
| 144 | +Release artifacts use Maven coordinate |
| 145 | +`zone.moddev.mc.basemetals:BaseMetals:3.0.1.118021`. |
56 | 146 |
|
57 | | -Forge item, block, and fluid tags are the public compatibility API. Conditional |
58 | | -data is included for Mekanism 10.2, Thermal Expansion 9, Tinkers' Construct 3.7, |
59 | | -and Ender IO 6 alpha. See [docs/COMPATIBILITY.md](docs/COMPATIBILITY.md). |
| 147 | +Report defects and compatibility problems through the |
| 148 | +[Base Metals issue tracker](https://github.com/MinecraftModDevelopmentMods/BaseMetals/issues). |
60 | 149 |
|
61 | | -Base Metals is licensed under LGPL-2.1. |
| 150 | +Base Metals is licensed under [LGPL-2.1](LICENSE). Bundled or derived third-party |
| 151 | +art is covered by the accompanying attribution and licence files. |
0 commit comments