Minecraft Version Upgrade Procedure
Prerequisites
Before starting, gather the following information for the new MC version:
- •
minecraft_version - •
pack_format(check Minecraft Wiki: Pack format) - •
java_version - •
fabric_loader_version - •
neoforge_version(orforge_versionfor 1.20.x) - •
architectury_api_version - •
fabric_api_version - •Base version to copy from (usually the latest existing version)
Investigate Version-Specific Changes
Check for breaking changes between the base version and the target version:
- •Java API changes: renamed/removed methods, new required method calls
- •Resource format changes: new required resource files, changed JSON schemas
- •Mixin compatibility: verify mixin targets still exist
- •Build tooling: Architectury Loom, Fabric Loom compatibility
Past examples of version-specific changes:
- •1.21.2+:
registryOrThrow()→lookupOrThrow(),Item.Propertiesrequires.setId(ResourceKey) - •1.21.4:
assets/<namespace>/items/<id>.jsonitem model definitions required
File Creation Checklist
1. props/<version>.properties
Create from base version, update all version fields.
2. common-<version>/ module
Copy from base version's common module:
code
cp -R common-<base> common-<version>
- •Remove
.DS_Storefiles:find common-<version> -name '.DS_Store' -delete - •Apply any version-specific Java code changes
- •Apply any version-specific resource changes (new resource types, format changes)
- •
build.gradle: Usually no changes needed (references are self-contained)
3. fabric-<version>/ module
Copy from base version:
code
cp -R fabric-<base> fabric-<version>
Update these files:
- •
build.gradle: ChangecommonModulevariable to':common-<version>' - •
src/main/resources/fabric.mod.json: Updatedependssection:- •
architectury:>=<new_architectury_version> - •
minecraft:~<new_mc_version>
- •
4. neoforge-<version>/ module (or forge-<version>/ for 1.20.x)
Copy from base version:
code
cp -R neoforge-<base> neoforge-<version>
Update these files:
- •
build.gradle: ChangecommonModulevariable to':common-<version>' - •
src/main/resources/META-INF/neoforge.mods.toml: Update 3 dependency entries:- •
neoforgeversionRange:[<major>.<minor>.0,) - •
minecraftversionRange:[<new_mc_version>] - •
architecturyversionRange:[<new_architectury_version>,)
- •
- •
gradle.properties: Must containloom.platform=neoforge
Configuration & Documentation Update Checklist
5. gradle.properties (root)
- •Update
target_mc_versionto the new version
6. Documentation (all 4 files below)
| File | Sections to update |
|---|---|
CLAUDE.md | Overview (target list), Module Structure table, add MC Notes section, Build & Test commands |
README.md | Requirements, Building commands, Project Structure table |
docs/curseforge_description.md | Multi-Loader Support list, Requirements section (add new version block), footer version list |
docs/modrinth_description.md | Same as curseforge_description.md |
Build Verification
sh
./gradlew build -Ptarget_mc_version=<version>
Check for:
- •Build success
- •Deprecation warnings (note in CLAUDE.md if significant)
- •No errors in mixin application
Notes
- •
settings.gradledoes NOT need modification — it dynamically readsprops/<version>.propertiesand resolves modules - •The
enabled_platformsfield in props file controls which platform modules are included - •For NeoForge,
gradle.propertieswithloom.platform=neoforgeis critical — without it, theneoForgedependency configuration won't be created