
Modrinth · Minecraft mod
Advanced Macro Engine
A high-performance scripting and macro execution framework for Minecraft Java Edition datapacks. Provides fiber scheduling, modular APIs, and multi-version overlay support out of the box.
Quick answer
Which Advanced Macro Engine release matches 24w46a Forge?
Advanced Macro Engine v5.1.0-updated6+mod targets 1.20.3, 1.20.4, 23w51a with Fabric, Forge, NeoForge. Installation on the client is optional. Installation on the dedicated server is optional. No extra mods listed for this file.
Where it goes
Is Advanced Macro Engine required on the client, server, or both?
Installation on the client is optional. Installation on the dedicated server is optional.
The source marks this as usable on both the client and server.
What else does Advanced Macro Engine v5.1.0-updated6+mod need?
v5.1.0-updated6+mod on 24w46a Forge. Every mod below is checked against that same setup.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add Advanced Macro Engine without breaking your instance.
Built for Advanced Macro Engine v5.1.0-updated6+mod on 24w46a Forge. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use v5.1.0-updated6+mod. It targets 1.20.3, 1.20.4, 23w51a with Fabric, Forge, NeoForge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
Installation on the client is optional. Installation on the dedicated server is optional.
- 04
Pick the file you checked
Use the “Get this file” button beside v5.1.0-updated6+mod. It opens that exact file at the source.
About this project
What does Advanced Macro Engine add?
🔧 macroEngine
Minecraft Java Edition 26.2 | Multiplayer-Safe | Pure Datapack
Current version: v6.1.0
This datapack was considered safe to use as of its last release, but it no longer receives security improvements, bug fixes, or new features. There is no "up to date" version to move to.
Do not copy
macroengine:inputormacroengine:engineinto your own datapack. It is an internal implementation detail and may change without notice between releases.
⚠️ Do not use v5.1.1. That version bound
_rt_origin.mcfunctionto the load tag, causing it to run automatically on every load with no safe removal path. Fixed in later versions — always use the latest release.
⚠️ A
/reloadis still required after installation or after adding the load hook below. Automatic first-join initialization is not implemented in this version — do not rely on this until verified in-game with repeated reloads.
🛡️ This is a Minecraft Datapack — it contains no executables or scripts outside of
.mcfunctionfiles.
Some antivirus software may flag.mcfunctionfiles as suspicious due to macro-like syntax. This is a false positive. The pack has been scanned on VirusTotal and returned clean.
Only download from this official repository. Do not trust redistributed or repackaged versions from third-party sources.
📦 Installation
Download the latest release from the Modrinth versions page and place the
.zipinto<world>/datapacks/.Add the following logic to your datapack's
loadtag. Replace<namespace>with your own datapack's namespace (e.g.mypack) — this applies only to the function names, never tomacroengine:engine, which is MacroEngine's own fixed storage and must not be changed:
#> <namespace>:load
execute unless data storage macroengine:engine {global:{loaded:1b}} run function <namespace>:load_macroengine
#> <namespace>:load_macroengine
# Guard checks the SAME storage/path the trigger condition checks (macroengine:engine global.loaded).
execute if data storage macroengine:engine {global:{loaded:1b}} run return 0
function macroengine:setup
data modify storage macroengine:engine global.loaded set value 1b
v6.1.0 change: macroEngine no longer auto-starts via
minecraft:load. The
oldfunction macroengine_load:mainentry point (and the LanternMCload:
tag chain it depended on) is gone. Consuming packs must callfunction macroengine:setupexplicitly — either from their own manual<namespace>:load_macroengineguard (as above) or once by an admin.
Fixed bug: duplicate load trigger (click to expand)
An earlier version checked macroengine:engine {global:{loaded:1b}} in the trigger but set <namespace>:engine loaded_macroengine in the guard — two different storages, two different paths. The set never satisfied the trigger's condition, so load_macroengine re-ran every time the load tag fired. This doesn't crash anything, but it silently re-triggers dl_load:load/yes and fork_no on every reload, which can accumulate side effects depending on what those functions do.
Both the check and the set must target macroengine:engine global.loaded. If you're updating from an older copy of this README, verify by reloading multiple times and confirming load_macroengine does NOT re-run after the first load.
🏗️ Storage Architecture
macroengine:engine (persistent data)
├── global
│ ├── version: "v6.1.0"
│ ├── loaded: 1b
│ └── tick: <int>
├── players
│ └── Steve { coins:150, level:5, xp:2300, online:1b, ... }
├── queue
│ └── [{func:"mypack:event/end", delay:100}]
├── cooldowns
│ └── Steve { fireball: 2460, dash: 1870 } ← expiry ticks
└── events
└── on_join: [{func:"mypack:welcome"}, {func:"mypack:xp_bonus"}]
macroengine:input (sending data to a function)
macroengine:output (receiving results from a function)
Note: All MacroEngine-owned state lives under the macroengine: namespace only. Never mix a consuming pack's own namespace into MacroEngine's load-flag logic — that mismatch was the source of the bug above.
📦 Dependencies
Lantern Load — removed in v6.1.0
Repository: https://github.com/LanternMC/load
License: BSD 0-Clause (public domain)
Previously provided deterministic load order, version tracking, and pre/load/post-load hooks via the load: namespace tag chain. As of v6.1.0 this dependency is gone entirely — macroEngine starts via a manual function macroengine:setup call instead (see the Load Guard section above). data/load/ no longer exists in this pack.
# Check if MacroEngine is loaded
execute if score #MacroEngine load.status matches 1.. run say MacroEngine is loaded
# Get version (major*100 + minor*10 + patch → v6.1.0 = 610)
scoreboard players get #MacroEngine load.status
StringLib
Repository: https://github.com/CMDred/StringLib
License: MIT
Bundled under the stringlib namespace. Exposed via macroengine:core/lib/string/*.
| Function | Description |
|---|---|
lib/string/concat |
Join a string array |
lib/string/find |
Find substring index |
lib/string/replace |
Replace substring |
lib/string/split |
Split by separator |
lib/string/insert |
Insert at index |
lib/string/to_lowercase |
Lowercase (A–Z, fast) |
lib/string/to_uppercase |
Uppercase (a–z, fast) |
lib/string/to_number |
String → numeric NBT |
lib/string/to_string |
Value → string |
All functions read from macroengine:input and write to macroengine:output string.result.
data modify storage macroengine:input string set value "Hello World"
data modify storage macroengine:input find set value "World"
data modify storage macroengine:input replace set value "Everyone"
function macroengine:core/lib/string/replace
# macroengine:output string.result → "Hello Everyone"
💬 Support
This project is archived. Issues and pull requests are not monitored and will not be actioned.
MacroEngine v6.1.0 | MC Java 26.2 | Pure Datapack
Project description from Modrinth.
Pick your setup
Advanced Macro Engine by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
24w45a
5 loader builds24w44a
5 loader builds24w40a
5 loader builds24w39a
5 loader builds24w38a
5 loader builds24w37a
5 loader builds24w36a
5 loader builds24w35a
5 loader builds24w34a
5 loader builds24w33a
5 loader builds24w21b
5 loader buildsShowing the newest 12 of 62 game versions. Older files are in the list below.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Advanced Macro Engine versions and loaders
v5.1.0-updated6+mod
advanced-macro-engine-v5.1.0-updated6.jar
9 May 2026
v5.1.0-updated5+mod
advanced-macro-engine-v5.1.0-updated5.jar
9 May 2026
v5.1.0-updated4+mod
advanced-macro-engine-v5.1.0-updated4.jar
9 May 2026
v5.1.0-updated3+mod
advanced-macro-engine-v5.1.0-updated3.jar
5 May 2026
v5.1.0-fix1+mod
advanced-macro-engine-v5.1.0-fix1.jar
3 May 2026
v5.1.0+mod
advanced-macro-engine-v5.1.0.jar
3 May 2026
5.0.0-fix3+mod
advanced-macro-engine-5.0.0-fix3.jar
3 May 2026
5.0.0-fix2+mod
advanced-macro-engine-5.0.0-fix2.jar
3 May 2026
v5.0.0-fixed+mod
advanced-macro-engine-v5.0.0-fixed.jar
3 May 2026
v5.0.0+mod
advanced-macro-engine-v5.0.0.jar
3 May 2026
4.0.5+mod
advanced-macro-engine-4.0.5.jar
1 May 2026
v4.0.5-pre1+mod
advanced-macro-engine-v4.0.5-pre1.jar
1 May 2026
Looking for an older file? The official Modrinth project page is in Resources.