If you're a server admin, a player on a server with lots of plugins, or just love automating every aspect of your minecraft experience, you will honestly wonder how you lived without this mod...
Note: if you're looking for LiteLoader it now has its own shiny new thread!
- Easy to use GUI. Just activate the mod then just press the key you want to bind. No need to memorize key codes or names!
- Bind keys which are already used for something else! Want to put a macro on the number keys, mouse buttons or WASD? Using the override function you can use these keys for both their normal function or as macros when you need them.
- Edit keybinds quickly. Change your binds whenever you want. You can even copy and move macros from key to key with drag 'n drop.
- Multiple configurations. Different binds in different servers? No problem! It even switches automatically.
- In-game text editor. Want to make a complex macro? No need to alt-tab to notepad, create and edit text files inside minecraft.
- Lots of easy-to-use parameters. Lists of friends, automatic responses, warp points, towns, you name it.
- Scripting! Build custom auto-announcers, time-delay messages, or create your own auto-walk, toggleable-sneak or sprint keys.
- Custom GUIs! Create your own custom GUI and hook up your macros for instant in-game menus
- Permissions System Server admins can lock down chosen features of the mod using the easy-to-setup Client Permissions plugin, allowing seamless integration with the server's existing rank system.
- Install LiteLoader
- Download the .litemod file for your version of minecraft here and save it into your "mods" folder (create the "mods" folder if it does not already exist) NOTE: Some browsers will change the file extension to .zip when downloading, if this happens be sure to change it back to .litemod or LiteLoader will not find the mod!
- Run the Minecraft client
- Check the Controls screen in the Minecraft configuration to make sure there are no conflicts with other keys you use. This mod adds pages to the Controls screen for enhanced configuration of any mods which add custom keys
This update will break things! Yes, ID's are going for good in 1.8 and so in preparation for that everything in the mod which previously used numeric IDs now uses the new identifiers. This means you need to change any scripts which use IDs to use identifiers.. See the changelog for the convenience functions. These commands will only be available during 1.7 and will be removed in 1.8, so use them to update your scripts but don't rely on them. You have been warned!
Expand for more images:
To bind keys:
- In-game, simply press [SNEAK KEY]+GRAVE (change the key in the options if this doesn't work for you) and you will be prompted to press a key.
- Press the key you would like to bind or click it on the on-screen keyboard
- Enter the chat command (including the / at the start), separate multiple commands with pipe "|"
- Press ENTER to save the keybind, press ESC to cancel it. To edit a keybind repeat the same process.
- If the key doesn't have any other function (eg. it is not bound to any other built-in command or function) then just press the key
- If the key is bound to another function (such as the WASD keys or T,I etc) press your [MACRO ACTIVATE] key (as you set in the options) followed by the key.
- Alternatively if the key is bound to another function press [MACRO OVERRIDE]+[KEY] (again, you can set this in the Controls screen)
You can find out a lot of useful information about the mod via my tutorials on YouTube.
To get started using the mod, you can find an list of commands and keycodes and guide to the other features in the mod in the readme.txt
As of version 0.8.5 language packs are no longer required as the supported languages are directly integrated into the main download and will automatically switch based on the chosen Minecraft language. If you would like to provide a language pack for your language please contact me via PM.
Current language packs in the mod:
- German Language pack by AJFire and Gorlem
- French Language pack by Chokapix
- Polish Language pack by kamild1996
- Dutch Language pack by Dyon123
- Spanish Language pack by agubelu
- Ukrainian Language pack by eXtendedZero
Changes for 0.10.04
- Updated to Minecraft 1.7.2 (seriously, recoding it from scratch might have been easier)
- Fixed label text being messed up with some formatting code arrangements
- Fixed amount and ID in the onPickupItem event
- Fixed mismatch between XPOS, YPOS, ZPOS vars and the position reported in the $$p menu
- Added documentation entries for undocumented script commands
- Fixed key state macros not working correctly when set to always override
- Added descriptive message to uncollapsed stack error, eg. "DO expects LOOP, WHILE or UNTIL"
- Optional capturing subgroups now return empty string instead of throwing an error
- Hooked outbound messages to Forge ClientCommandHandler if present to support client commands in Forge mods
- Fixed broken help display in conditional event macros
- Fixed broken help display in "simple gui" mode
- Outgoing chat splitter now trims leading and trailing whitespace on partial messages
- UCASE and LCASE commands returns string converted to upper and lower case respectively
- No more custom controls GUI, plug in to the new 1.7 controls GUI and consolidate some options ("direct mode" setting now accessible via controls list)
- Added abiility to support environment variables that are arrays, used for RESOURCEPACKS and SHADERGROUPS
- Removed TEXTUREPACK and RESOURCEPACK
- Added RESOURCEPACKS command which takes comma-separated list of pack identifiers
- Addded RESOURCEPACKS environment variable which contains comma-separated list of current resource packs
- Addded RESOURCEPACKS array environment variable which contains active resource packs as an array
- Added SHADERGROUPS array environment variable containing the names of all available shader groups
- Added SHADERGROUP environment variable containing the name of the currently selected shader group
- Added SHADERGROUP command to select a specific shader group, accepts the group name, file name or full path:
SHADERGROUP(+); // Select next shader
- Added RECORDVOLUME, WEATHERVOLUME, BLOCKVOLUME, HOSTILEVOLUME, NEUTRALVOLUME, PLAYERVOLUME, AMBIENTVOLUME environment variables containing current volume settings
- VOLUME command now accepts second parameter to specify the sound category eg. VOLUME(50,"WEATHER")
- FOG command can now accept a numeric argument which is the chunk distance to select (also still supports "far", "tiny" etc.)
- Chat filter now built in and uses different scripting context to the main scripting engine to prevent use of potentially fatal commands
- onSendChatMessage event added
- GETID supports minecraft-style relative locations by prepending tilde to coords
- KEY supports "screenshot" and "smoothcamera"
- KEYUP, KEYDOWN and TOGGLEKEY support "playerlist" and "sprint"
- All numeric item and block IDs removed
- Item and block IDs and commands which require them will now require item names instead
- Added ITEMID and TILEID commands to get legacy IDs of items and tiles respectively from their names. Note that these commands are temporary to allow a smoother transition to the 1.7 system and will be removed in 1.8 when numeric ID's are completely removed from the game
Example usage: #oldid = ITEMID("golden_sword");
- Added ITEMNAME and TILENAME commands to get the new name identifiers for items and tiles respectively from their legacy IDs.
- Label controls can now accept a fully-expandable value for their "binding" instead of just a single var name
- SERVERNAME now contains the save name in single player
- Macros config screen accessible via the liteloader config panel as well
- CONTAINERSLOTS environment variable containing the number of slots in the currently open container
- Added CHUNKSUPDATED environment variable
- Updated to Minecraft 1.6.4 and tweak system 1.8
- Large internal overhaul of the events system, might be bugs please let me know.
- API Version to 13, now supports modules providing custom events.
- Added experimental filterablechat gui and corresponding event, for science. Disabled by default.
- All script actions that logically ought to return a value now return a value.
- Added return value info to the command reference screen
- Fixed issue with using expansion operator as an array index not working as expected
- Fixed durability change event on shears
- Updated for Minecraft 1.6.2, and believe me this was no picnic
- Kick/disconnect now properly triggers onJoinGame when rejoining
- Improvements to macro enqueue/dequeue which should prevent CoModificationException when calling STOP inside an EXEC'd task
- Fixed ECHO not working inside UNSAFE when flood protection is enabled (still prevented when flood protection is off)
- Improved escaping for | inside script actions, \| should now work as expected in regex and ECHO
- Fixed issue with array iterator position var
- Improved SETRES to work more reliably than the old version
- Added RESOURCEPACK command as an alias of TEXTUREPACK, both versions work for compatibility purposes
- Added environment var iterator "env" with iterator variable VARNAME
- API Version bump to 12
- Online player list $$u is now sorted again
- Fixed issue with numpad enter not being recognised on Macs
- Use fixed custom font in binding screen to avoid display being messed up
- INDEXOF now takes a fourth parameter which when set to TRUE will perform a case-sensitive lookup (default is case-insensitive)
- Added ENCODE and DECODE which perform base64 encode and decode, you're welcome Bagline
- Added SQRT function with signature SQRT(input,#outvar); Only works on integers
- Added CALCYAWTO (calc yaw to) function which provides functionality of old POLARXZ. This function returns the YAW value (in minecraft degrees, 0 points SOUTH) that points to the specified X/Z coordinate pair
- File include limit is now configurable (previously hard-coded limit was 10 includes)
- Added SPLIT and JOIN which can explode and implode arrays:
- Updated Russian translation by boroda_ua
- Updated Ukranian translation by eXtendedZero
- Updated to Minecraft 1.5.2
- Added UNSAFE blocks which disable the execution rate limit normally applied to macros
- Added GUI for assigning custom GUI's to available "slots" such as ingame, inchat, etc.
- Added "scoreboard" and "indebug" slots for ingame GUI's
- Added SHOWGUI command for displaying arbitrary custom GUI's: SHOWGUI("somecustomgui");
- Added BINDGUI command for assigning GUI's to slots via script: BINDGUI("ingame","somecustomgui");
- Added armour item max damage vars: BOOTSDAMAGE, LEGGINGSDAMAGE, CHESTPLATEDAMAGE, HELMDAMAGE containing the total damage the armour item can take
- Added armour item name vars: BOOTSNAME, LEGGINGSNAME, CHESTPLATENAME, HELMNAME containing the name of the armour item equipped
- Added CHATVISIBLE, CHATOPACITY, CHATSCALE, CHATWIDTH, CHATHEIGHT, CHATHEIGHTFOCUSED commands for setting chat options
- Added vertical style to progress bar control
- Added support for using expressions in progressbar min and max fields
- Fixed auto-craft for recipes with wildcard block types in the recipe
- Modified auto-crafting status GUI to display failure reasons when auto-crafting fails
- Auto-crafting now returns NORECIPE if a recipe is not found (previously returned NOTSTARTED). NOTSTARTED now indicates a recipe was found but sufficient items to craft the recipe were not.
- Added SERVERMOTD, SERVERNAME, MAXPLAYERS, ONLINEPLAYERS, HITPROGRESS, DISPLAYWIDTH, DISPLAYHEIGHT, CANFLY and FLYING environment variables
- Added HITPROGRESS variable (block breaking progress (range 0-9)
- Added SCREEN environment variable containing currently displayed custom GUI
- Allowed sorting of parameter lists using CTRL+S
- API revisions, API version now 10
- GETSLOT, GETSLOTITEM and SLOTCLICK now act upon the hotbar if no container is currently open using virtual slot ID's 1-9
- Added command reference screen to in-game text editor
- Added SETPROPERTY command for setting GUI control properties via script: SETPROPERTY(controlname,propertyname,value)
- Added "visible" property to all controls, only settable using SETPROPERTY currently
- To uninstall the mod, just delete the .liteloader file from your "mods" folder
- All mod configuration information is stored in a folder macros inside your minecraft mods folder, you can save and restore this folder if you want to copy your macros to another computer
- This mod shouldn't create conflicts with other mods using modloader or forge, but to be certain it is worth avoiding binding keys used by other mods. If in doubt delete the .macros.txt file and ensure other mods run as normal.
If you would like to show your support for the mod by including a clickable banner in your sig, click the spoiler next to one of the banners below and copy the code into your forum signature:
I have spent a lot of time developing this mod and some people have asked if they can donate but I believe in making mods for fun and do not wish to make money from it. However if you really would like to make a donation then I recommend making a donation to Vexx32, who will use it to buy minecraft gift codes for people! This way your good will can go towards helping someone to play the game.
Click the donate button to donate to Vexx32's minecraft gift code account:
- The Macro / Keybind Mod is Copyright © 2011-2014 Mumfrey
- LiteLoader is Copyright © 2012-2014 Mumfrey
- You may include this mod in compilation packs or mod collections provided it is unmodified
- You may redistribute LiteLoader binaries, and/or use the source code to make your own LiteMods
- You may redistribute the mod, provided it is umodified
- If you redistribute the mod, I would appreciate it if you provide appropriate attribution where possible and include the above copright message, but this is not a requirement
- You may decompile the mod for personal use but you may not redistribute modified or recompiled versions
Thanks to the MCP team and everyone who's given suggestions and feedback. Special thanks to AJFire for making the original mod logo and providing the german translation. Thanks also to Chokapix for the french translation, kamild1996 for the Polish translation, Dyon123 for the dutch translation, agubelu for the spanish translation, eXtendZero for the Ukrainian translation, and Gorlem for updating the german translation for 1.4!
Enjoy! Please post feedback, comments, abuse here.