Create and share macros
Mint supports two macro runtimes: a single JavaScript file or a visual Node graph. Choose the runtime and Minecraft family when creating the macro; both are fixed after creation because their stored payload and API are runtime/version-specific. You can still update the name, description, visibility, and complete source/graph in place.
Create and edit
- Open Macros in Mint Studio or the Mint web panel and choose New macro.
- Enter a name and description, choose JavaScript or Nodes, choose the Minecraft family, and choose visibility.
- Start with an example or an empty editor. JavaScript is one file; Node macros are edited on the canvas and never require editing JSON.
- Use API in the editor for the selected version’s declarations, packet types, block descriptions, ports, and options.
- Save. Each save replaces that macro’s editable metadata and payload in the existing database row. The payload limit is 64 KiB.
Visibility and importing
- Private macros can only be opened by their owner and cannot be imported by ID.
- Unlisted macros do not appear in a public list, but anyone with the ID can import them.
- Importing creates a new private macro containing a copy of the current source or graph. It has a new ID and no ongoing link to the original.
Load and run in Mint Client
Open Macros after Plugins, select the macro, then Load and Enable it. Loading compiles/prepares it; enabling registers its listeners and lets it run. The details panel shows the ID, description, JavaScript/Nodes runtime, load and enabled state, last error, and runtime log. console.log, warnings, errors, rejected fire-and-forget async functions, and Node Log blocks appear in that per-macro log.
Unload or disable a macro before editing behavior that holds movement keys. Mint releases owned input and stops a path when its macro is disabled or unloaded.
Version rules
There is no fake cross-version Minecraft API. The convenient names are similar, but the Java objects, packet classes, packet fields, sound IDs, particle IDs, and some available behavior come from the selected Minecraft version. Create another macro when targeting another Minecraft family and use that version’s editor API reference.
Troubleshooting
- A save that exceeds 64 KiB is rejected.
- A macro with a syntax or graph validation error cannot load; read Last error and the runtime log.
- Packet field names are mapping/version-specific. Select a concrete packet in the editor instead of copying a name from another version.
- Cancellation is synchronous. Calling
cancel()afterawaitor placing Wait before packet cancellation is too late for that packet. - A Promise does not create a background thread. Use
Workers.runfor CPU-heavy JavaScript and explicitly useMainThread.run/MainThread.awaitbefore touching Minecraft from an asynchronous continuation.