HomeJavaDatapacksOld Combat Datapack
DatapacksJava

Old Combat Datapack

by AndrewGaming587 · on Modrinth

Restore the old Minecraft combat, or change it to your liking! 1.21.2 to 1.21.11 supported. (1.21.1 experimental)

Which build do you need?

This mod ships a separate file for every mod loader and every version of the game. Pick both, then download — the wrong build installs fine and then does nothing in the game.

Mod loader

Minecraft version

⬇ Download for 1.21.4–1.21.11 · Data pack⬇ Download for 1.21.4–1.21.11 · Fabric⬇ Download for 1.21.4–1.21.11 · Forge⬇ Download for 1.21.4–1.21.11 · NeoForge⬇ Download for 1.21.4–1.21.11 · Quilt
I don't know my version or loader
Open the Minecraft launcher and look at the profile you play on — it names both, like fabric-loader-1.21.4. The version also shows in the bottom-right corner of the game's main menu.
No loader in the profile name? Then it's plain Minecraft, and these mods won't run — you need Fabric or NeoForge installed first.

NOTICE: 1.21.2-1.21.4 is supported and most features are available, but doesn't have sword blocking and is not a priority when it comes to updates and feature compatibility. 1.21.1 isn't supported, though experimental 1.21.1 builds are in the works (available now), and the pack doesn't work on 1.20 and below at all, and will never be supported, for many reasons.

Some features require my mod Andrew's Datapack Utilities to work/function properly, but the pack will still work without it. Without it, some features won't work as well and some don't work at all.

Questions/Issues? Post them in my discord server as they are more likely to get seen there. Find it on the sidebar.

This 1.21.11 datapack aims to restore the pre-combat update mechanics as much as possible using a datapack. The datapack restores sword blocking, removes the attack speed mechanic, restores the old axe damages, disables the offhand, and so much more! Examples of what is possible can be found in the features section below.

Customizability

Each mechanic is togglable. A few settings have other associated settings that allow more customizability of that setting. To access the configuration menu, run:

/function oldcombat:config

Note: when you run the above command, one of 2 different menus may show. The first being the brand-new dialog menu that acts like an actual gui thanks to 1.21.6

the other is the old chat-based menu, which shows when the new menu cannot load for whatever reason, for example on 1.21.5 and older where dialogs didn't exist.

Features

Too many to list here! See them for yourself in-game!

Here are examples of what's possible:

Known issues

Performance sucks. Not much I can do about that as of current, but... (see Future Plans)

Notes

This datapack will likely cause lag and/or break on servers with many players, it is not recommended to use this datapack outside of singleplayer or smaller servers unless the server runs on a NASA computer. For best performance for larger servers,

This pack was created with the help of the MC-Build project. Without the project this pack wouldn't have been as easy to make. You can see the MC-Build Github Repository here: https://github.com/mc-build/mcb 1.21.5 - 1.21.11 is recommended, but 1.21.6+ may be annoying to configure due to the warnings that show when you click buttons. A dialog version of the config menu is being worked on to make configuration easier in 1.21.6+. For now, I have a Fabric clientside mod to remove that warning.

Crashing and Errors

The datapack might occasionally "crash", disabling itself and dropping a long error message to the chat. When this happens, the issue should be posted on my discord server so i can quickly respond to it. If you think it is safe to re-enable the pack, run the following command:

/scoreboard players set Disable OldCombatSettings 0

Datapack crashes are more likely to happen when there is a lot of entities in your world (dropped items, mobs, etc.)

The pack disables itself so that the datapack doesn't cause lag and eventually freeze the server due to the pack not being able to remove temporary stuff used for calculations because minecraft stops the functions early if a limit is hit.

For Modpack creators

You may use this pack in any of your modpacks, but asking me first is always nice.

For Developers

You may depend on, make mods (somehow) for, and help contribute to this project. However, if you wish to publish this project elsewhere/post a fork of this project, I would like if you asked me for permission beforehand.

For Content Creators/Streamers

I am completely fine with, and even encourage, creating of content with this project. If you do, please credit this project and maybe link to this page if you use this in your content/stream.

Why?

1.21.5 snapshot 25w04a (Which added the blocks_attacks item component that can be added to an item, including swords, to make it block like a shield, and has a lot of settings) gave me an idea. What if you could fit almost the entire 1.8 combat system into a datapack? 25w04a gave me the rest of the tools to do this (blocks_attacks), so I decided to work on it. It also gave me a chance to try out an alternate datapack language called MC-Build (see above) that compiles into a normal datapack, and I don't regret that decision, as it's been extremely helpful. A while later, I created my Fabric (and sometimes NeoForge, soon to be a Paper Plugin too) mod Andrew's Datapack Utilities which gave me the rest of the tools I needed (player data modification and entity velocity manipulation) to recreate the 1.8 combat system nearly 1:1.

What's special about this datapack is that it's a datapack which means you can use it without a mod, (mostly, Andrew's Datapack Utilities is required for some parts of the pack) and it doesn't require anything at ALL on the client, only the server/singleplayer world, (though the fabric/forge/neoforge/quilt version of the pack is available for easier access).

Future Plans

As many of you that use this datapack know, it has some severe performance issues. I plan to partially heal that in the future, by running certain code only when necessary, for example, item-disabling code running only upon inventory change. Currently, most functions run every tick, which is inefficient.

Quick facts

Install steps are the general flow for this file type — see the MC Java Mods guides for the full walkthrough.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more