Blood Magic [Unofficial Port]

This release is an unofficial community port of Blood Magic from Minecraft 1.20.1 to Minecraft 1.21.1 using NeoForge. This is not an official Blood Magic release and is not affiliated with or officially supported by the original Blood Magic developers.

Blood Magic 3.4.0-46-alpha

Unofficial Minecraft 1.21.1 Port

⚠️ UNOFFICIAL PORT — ALPHA / WORK IN PROGRESS

This release is an unofficial community port of Blood Magic from Minecraft 1.20.1 to Minecraft 1.21.1 using NeoForge.

License & Attribution

This project is an unofficial port of Blood Magic to Minecraft 1.21.1.

The original Blood Magic project was created by WayofTime and the Blood Magic contributors.

Original project:
https://github.com/WayofTime/BloodMagic

This port is based on and modifies the original Blood Magic source code.

Blood Magic is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) license, and this port is distributed under the same license.

This project is not an official release and is not affiliated with or officially supported by the original Blood Magic developers.

Changes made in this port include adaptations required for Minecraft 1.21.1 and NeoForge, API migrations, compatibility fixes, recipe/datagen changes, networking changes, Data Component migration, and various gameplay fixes.

License:
https://creativecommons.org/licenses/by/4.0/

The port has reached a playable and much more stable state, but it is still under development. Some features, integrations and edge cases still require additional testing and fixes.


Major Porting Changes

Minecraft 1.21.1 / NeoForge migration

  • Ported the Blood Magic 1.20.1 codebase to Minecraft 1.21.1

  • Migrated the project to the modern NeoForge 1.21.1 APIs

  • Updated registry handling for the new NeoForge system

  • Updated deprecated Forge-era code and removed several obsolete compatibility layers

  • Migrated multiple systems to the Minecraft 1.21 Data Components architecture

  • Updated item, block, recipe, enchantment, loot and registry APIs

  • Cleaned up the mod metadata and NeoForge dependency declarations


Networking

  • Replaced the old networking implementation with a proper NeoForge payload-based networking system

  • Updated client/server packet registration

  • Reworked network compatibility code for Minecraft 1.21.1

  • Validated payload loading on both dedicated server and client


Anointments

The Anointment system received a significant amount of work.

  • Migrated Anointment item attribute handling to DataComponents.ATTRIBUTE_MODIFIERS

  • Existing item modifiers are now preserved when an Anointment is applied

  • Anointment modifiers can be correctly removed again when required

  • Reworked harvest-related Anointment handling

  • Updated Anointment durability consumption timing

  • Restored XP modification through the modern NeoForge BlockDropsEvent

  • Improved compatibility with the Minecraft 1.21 harvesting pipeline

Loot-related Anointments

Restored and adapted:

  • Fortune

  • Silk Touch

  • Looting

  • Smelting

  • Voiding

Fortune, Silk Touch and Looting now use the Minecraft 1.21 enchantment/registry systems instead of the removed 1.20.1 behaviour.

Anti-recursion protection was also preserved when Blood Magic regenerates loot tables internally.


Blood Orb Ingredient

The custom Blood Orb recipe ingredient has been fully migrated.

  • IngredientBloodOrb now uses NeoForge's modern ICustomIngredient system

  • Added proper IngredientType registration

  • Blood Orb tier matching behaviour has been preserved

  • Generic IBloodOrb support has been retained for compatibility with additional Blood Orb implementations

  • The ingredient is now included in the runtime build again


Recipes & Recipe Serialization

Large parts of Blood Magic's custom recipe infrastructure were migrated to Minecraft 1.21.1.

  • Updated custom Blood Magic recipe builders

  • Migrated recipe providers to the new RecipeOutput API

  • Updated ingredient serialization to use the modern Ingredient.CODEC

  • Reworked legacy Blood Magic recipe serializers

  • Added runtime decoding support to the compatibility recipe codec

  • Updated recipe generation for the new 1.21.1 datapack format

  • Fixed generated recipes using outdated paths or formats

  • Fixed recipe synchronization compatibility between server and client

Recent fix

Fixed:

Failed to encode packet 'clientbound/minecraft:update_recipes'

The problem originated from RecipeAnointmentApply, where the JSON codec and network codec were not using compatible recipe instances.

This has been corrected in the current build.


Loot System

Blood Magic's custom loot infrastructure has been re-enabled and migrated.

Custom Loot Functions

Ported to the Minecraft 1.21 MapCodec system:

  • set_will_range

  • set_will_fraction

  • set_living_upgrade

Custom Loot Entry

  • Migrated bloodmagic:loot_table

  • Restored resolution of external/vanilla loot tables

  • Updated loot table references to use modern ResourceKey<LootTable> handling

  • Re-enabled the previously excluded Blood Magic loot package

  • Updated random handling to Minecraft's RandomSource

Global Loot Modifiers

  • Migrated Global Loot Modifier data to:

data/neoforge/loot_modifiers

  • Removed obsolete legacy paths

  • Validated Global Loot Modifier loading on the server


Datagen

The Blood Magic datagen system received a major migration and cleanup.

  • Re-enabled the previously disabled datagen source

  • Migrated providers to Minecraft 1.21.1 APIs

  • Updated block/item tags

  • Updated recipe providers

  • Updated loot table providers

  • Updated sprite source generation

  • Updated enchantment registry lookups

  • Updated potion/effect handling

  • Updated DeferredHolder generics

  • Updated loot tables to use ResourceKeys

  • Updated conditional recipes to the modern NeoForge condition format

  • Updated generated datapack folder structure

Datapack path migration

Legacy paths were migrated to the Minecraft 1.21 format, including:

data/bloodmagic/recipes/

data/bloodmagic/recipe/

and the corresponding modern paths for:

  • recipes

  • advancements

  • loot tables

  • tags

Common tags

Legacy Forge tags were migrated toward the modern c: common tag namespace where appropriate.

Current status

runData now completes successfully.


NBT / Data Components

Several old Blood Magic systems still expected mutable ItemStack NBT directly.

These have been adapted to Minecraft 1.21's Data Components system.

  • Improved Blood Magic NBTHelper

  • Added safer CustomData handling

  • Fixed cases where empty NBT compounds could disappear

  • Restored behaviour expected by Living Armor / Living Container code

  • Reduced possible NullPointerExceptions caused by old getTag().put(...) assumptions


Demon Will

  • Restored the client-side will_type item property

  • Added detection for:

    • Corrosive

    • Destructive

    • Vengeful

    • Steadfast

This restores behaviour expected by Demon Will-related models and items.


Frost Sigil

The Frost Sigil has been restored.

The old direct FrostWalkerEnchantment call no longer exists in Minecraft 1.21, so the Sigil has been adapted to the modern enchantment effect system.

It now triggers the modern Frost Walker location effect while the Sigil is active.


Bleeding Edge Music Disc

The Bleeding Edge record has been migrated to Minecraft 1.21's new jukebox system.

  • Added a proper jukebox_song registry entry

  • Added the modern jukebox playable item component

  • Preserved the original audio

  • Preserved the original comparator output

  • Preserved the original track duration


Alchemical Reaction Chamber

Improved the Alchemical Reaction Chamber port.

  • Restored custom names from renamed placed items

  • Added custom name saving/loading

  • Migrated custom name storage to the Minecraft 1.21 component/NBT APIs

  • Custom names are now used by the block's menu/display name


Modopedia

The old Patchouli dependency has been replaced with Modopedia for the 1.21.1 port.

  • Added basic Modopedia compatibility

  • Added a Blood Magic book entry

  • Added required text formatters

  • Updated the guide book recipe

  • Updated mod metadata to depend on Modopedia instead of Patchouli

  • Removed the obsolete Patchouli dependency from the distributed jar

Important

The complete original Patchouli book has not yet been fully converted.

The current Modopedia integration provides the foundation for the guide, but additional book content/templates may still need to be migrated.


Metadata & Packaging

  • Fixed outdated Forge metadata remaining in the port

  • Migrated the project to neoforge.mods.toml

  • Fixed NeoForge version range declarations

  • Added the correct Modopedia dependency

  • Removed an obsolete mods.toml Forge file that was being accidentally packaged

  • Fixed Gradle resource placeholder expansion

  • Cleaned legacy datapack/resource paths from the final jar


Current Validation Status

The current port has passed the following development tests:

  • compileJavaOK

  • runDataOK

  • Datagen — 2685 files processed

  • Dedicated server startup — OK

  • 2079 recipes loaded

  • 1693 advancements loaded

  • Server reaches Done

  • Client mod loading — OK

  • Client resource reload — OK

  • Texture atlases — OK

  • NeoForge payload loading — OK

  • Clean Gradle build — OK

Current development jar:

bloodmagic-3.4.0-46-alpha.jar


Known Issues / Remaining Work

This port is NOT considered finished.

Even though compilation, datagen, server startup and client resource loading are working, Blood Magic is a large mod and not every mechanic has received complete in-game regression testing yet.

Remaining areas include:

  • Full gameplay testing of all Blood Magic systems

  • Additional testing of rituals and complex multiblock behaviour

  • Additional testing of Living Armor and upgrade interactions

  • Additional testing of all Anointments in real gameplay

  • Additional testing of custom recipes and recipe synchronization

  • Additional multiplayer/client-server testing

  • Full conversion of the original Patchouli documentation to Modopedia

  • Optional mod integrations still requiring verification or additional work

  • Agricraft-related compatibility

  • Mystical Agriculture-related compatibility

  • Other third-party compatibility modules that have not yet been fully validated

  • Possible visual, rendering or behaviour differences compared with the original 1.20.1 version

The recent recipe synchronization fix also requires additional real-world testing when entering worlds and connecting clients to servers.

Some non-blocking development warnings may still appear from Modopedia, Curios, NeoForge, vanilla rendering or shaders.


Important Notice

This is an experimental, unofficial port.

Back up your worlds before using it.

Do not assume complete compatibility with existing Blood Magic worlds, addons or modpacks yet.

Bug reports are useful, especially when accompanied by:

  • latest.log

  • crash reports

  • NeoForge version

  • installed mod list

  • steps to reproduce the issue

The objective of this port is to restore as much of the original Blood Magic 1.20.1 behaviour as possible on Minecraft 1.21.1, while progressively replacing obsolete Forge/Minecraft systems with their modern NeoForge equivalents.

More fixes, compatibility work and gameplay testing are still required before this port can be considered fully stable.

The Blood Magic [Unofficial Port] Team

profile avatar
  • 1
    Followers
  • 4
    Projects
  • 1.0K
    Downloads

More from Olexandre

  • Iron's Spell Aventure project image

    Iron's Spell Aventure

    A magic-focused adventure modpack built for multiplayer. Explore dangerous lands, discover powerful spells and gear, fight challenging enemies and bosses, and progress together with friends in a heavily modded Minecraft world.

    • 253
    • September 8, 2026
  • Arcane School Skill Trees project image

    Arcane School Skill Trees

    Adds custom Puffish Skills trees for multiple Iron’s Spells magic schools, giving each school its own RPG-style progression, bonuses, and visual identity.

    • 467
    • September 3, 2026
  • Extended Silence: Reforged project image

    Extended Silence: Reforged

    An unofficial community continuation of Extended Silence, expanding Silent Gear with mythical materials, resources, and Forge 1.20.1 compatibility fixes.

    • 323
    • July 11, 2026
  • Iron's Spell Aventure project image

    Iron's Spell Aventure

    A magic-focused adventure modpack built for multiplayer. Explore dangerous lands, discover powerful spells and gear, fight challenging enemies and bosses, and progress together with friends in a heavily modded Minecraft world.

    • 253
    • September 8, 2026
  • Arcane School Skill Trees project image

    Arcane School Skill Trees

    Adds custom Puffish Skills trees for multiple Iron’s Spells magic schools, giving each school its own RPG-style progression, bonuses, and visual identity.

    • 467
    • September 3, 2026
  • Extended Silence: Reforged project image

    Extended Silence: Reforged

    An unofficial community continuation of Extended Silence, expanding Silent Gear with mythical materials, resources, and Forge 1.20.1 compatibility fixes.

    • 323
    • July 11, 2026