Sei sulla pagina 1di 19

Macros Mod for Minecraft - Readme for version 0.14.

4
---------------------------------------------------
This mod adds key binds to Minecraft, it requires ModLoader which you will find
at
http://www.minecraftforum.net/topic/75440-risugamis-mods/
To install the mod:
1) Download and install ModLoader in your minecraft.jar
2) Create a folder called "mods" under your minecraft folder if it doesn
't already exist and put the .zip file in there.
3) Run minecraft!
To use the mod:
This mod works in both single player and multiplayer, although "Single P
layer Commands" is recommended if using the mod in single player.

Getting started with the mod, configuring your keys


---------------------------------------------------
This mod uses two keys for its functions (besides the keys you bind), th
ese are the <MACRO ACTIVATE> key which is used to bind and play
back macros, and the <MACRO OVERRIDE> key which is used to override a ke
y's normal function to allow you to quickly play a macro.
The very first thing you should do when you install the mod is configure
these keys to your liking. From the minecraft menu open the
"Options" and then "Controls" and you should notice that you now have ex
tra buttons in your "Controls" menu which look like << and >>.
Go to the second page and configure your keys to use the mod.

Getting started with the mod, binding keys:


-------------------------------------------
1) To activate MACRO BIND mode, you should hold down your <SNEAK> key an
d press the <MACRO ACTIVATE> key which defaults to the
apostraphe/grave key. You can change the key in the Minecraft options
.
2) Once you have activated MACRO BIND mode, simply press a key to bind,
or alternatively click a key on the on-screen keyboard.
Keys are displayed on-screen as follows:
Grey keys - are not bound to any function
Red keys - are used for other minecraft functions (they can stil
l be bound)
Yellow keys - are bound to a macro
Orange keys - are minecraft keys which ALSO have a bound macro
Green keys - are global macros (available in all configurations
- see below)
You can also bind the left, right and middle mouse buttons
3) Enter your key bind commands, separate multiple commands/messages wit
h the pipe symbol "|". Press "Options..." to set modifiers
and options for the macro (for example to require <CTRL>, <ALT> or <S
HIFT> to be pressed.
4) When you're done, press <ENTER> or click "Save".

To use a keybind
-----------------
1) Press the <MACRO ACTIVATE> key alone, then press the key.
2) If a key is not bound to another function, you can simply press the k
ey itself to execute the macro.
3) If a key DOES have another function, you can hold the <MACRO OVERRIDE
> key (default is <CTRL>) to temporarily override the key's normal
function and execute the macro instead.

To edit a keybind
------------------
1) Enter MACRO BIND mode as described above.
2) To delete a macro, click "Delete" and click on the key. THIS ACTION C
ANNOT BE UNDONE AND THERE IS NO PROMPT TO CONFIRM THE DELETION.
3) To move a macro, click "Move" then drag from the source key to the de
stination. If the destination key already contains a macro it
will be overwritten.
4) To copy a macro, click "Copy" then drag from the source key to the de
stination. If the destination key already contains a macro it
will be overwritten.
5) To edit a macro, click the key on screen or press the key on your key
board.

Using parameters in your macros


--------------------------------
$$? Is a general parameter, use this anywhere in your macro to
substitute some text at that point.
$$i Is an item parameter, use this to prompt for an item id -
the mod will provide a scrollable list of items when prompting.
$$i:d Is the same as a normal item parameter, but also sends the
damage value of the selected item for mods which support this,
allowing you to for example select coloured wool.
$$f Is a friend parameter, you can maintain a list of friends
which can be inserted in your macros.
$$u Is an online user parameter, provides a list of online use
rs when executing the macro.
$$t Is a town name parameter, you can maintain a list of towns
.
$$h Is a home name parameter, use this to keep a list of your
homes.
$$0 to $$9 Are "preset text list" parameters, you can use up to 10 li
sts of text which can be recalled at any time and can include
parameters within them too. You could use this for any arb
itrary text such as help, advertisements, or other announcements.
$$[name] Replace "name" with any text to prompt for a named paramet
er, this allows a large number of possible parameters in your macros.
$$<file.txt> Enter the name of a text file to include the entire text f
ile in your macro.
$$m Like the previous $$<file.txt> parameter, but prompts for
the file when executing the macro.
$$w Is a warp parameter, use this for warp points
$$s Is a shader parameter, use this to see a list of your shad
ers.

$$p Is a "place" parameter, this stores X, Y and Z coordinates


and inserts them in your macro.
You can also use instead $$p:
$$px Insert the X coordinate of a "place" parameter
$$py Insert the Y coordinate of a "place" parameter
$$pz Insert the Z coordinate of a "place" parameter
$$pn Insert the name of a "place" parameter

Directives in your macros:


--------------------------
Currently the macro processor only supports one directive. Including $$!
at the end of your macro instructs the macro processor to terminate
but to pump the contents of the last message into the chat buffer. For e
xample, using the following macro
/say this is a test|/say this is another $$!
Will send the first command "/say this is a test" to the server, and the
n put the remaining text "/say this is another " into the chat buffer
for you to complete.
Note that macro processing always terminates at $$! and any instructions
after the directive are ignored.
Multiple configurations and global keys:
----------------------------------------
From version 0.5, the mod supports multiple configurations allowing you
to have different macro keys on different servers or in single player
versus multiplayer. The number of allowed configurations is unlimited, a
nd when you start you will be using a configuration called "Default
Configuration", this configuration can not be deleted or renamed.
Configurations can be set up to automatically switch by naming them the
same as the server's dns hostname, this can be easily found by clicking
the "Use current server address" button when creating a new configuratio
n.
To access the configuration selection screen:
1) Either press <SNEAK> + <MACRO ACTIVATE> twice, or press it once and t
hen click the label which indicates the current configuration name at
the top of the screen.
As well as choosing existing configurations and creating new ones, you c
an also alter some of the mod settings through this screen.
To create a new configuration:
1) Click the "<Add Configuration>" entry at the bottom of the configurat
ions list
2) Enter a name for the new configuration or click the "Use current serv
er address" button to detect the hostname of the current server (note that
this may be different to the address you connected to).
3) To copy all of the keys from the currently active configuration, chec
k the option.
Obviously whilst you may wish for some of your keys to vary between serv
ers, you may wish some keys to always have the same function. Rather than
copying these keys to all configurations, you can choose to make the bin
ding "global" which makes its behaviour persist regardless of the currently
selected configuration.
To make a key "global":
1) Edit the key macro as normal.
2) Click "Options..."
3) Check the option "Apply to all configurations" or click the "Config:"
heading at the top of the screen
NOTE: Making a key global will apply the macro in the currently active configu
ration to ALL configurations, this essentially means that macros on that key
in other configurations will be DELETED.

Binding events
--------------
Events are bound exactly like binding keys but instead of being triggere
d by a key press they are triggered when the specified event occurs, for this
reason it is necessary to be careful how you use events to ensure that m
acros don't fire too often.

Eventname: Event specific Variables: Useful for this


Event: Extra information:
onJoinGame
onChat CHAT, CHATCLEAN
fires when a chat message is added to the display buffer
DO NOT UNDER ANY CIRCUMSTANCES USE LOG IN THISEVENT AS IT WILL CREATE AN INIFINT
E LOOP!
onHealthChange HEALTH
onFoodChange HUNGER
onArmourChange ARMOUR
onWorldChange DIMENSION
Fires when changing world but not when changing server
onModeChange MODE
onInventorySlotChange OLDINVSLOT INVSLOT
Note that scrolling quickly may "skip" inventory slots
onOxygenChange OXYGEN
This happens between entering water and beginning to drown
onXPChange XP
onLevelChange LEVEL
onItemDurabilityChange DURABILITY
Only fires when the currently held item's durability changes
onWeatherChange RAIN
onPickupItem PICKUPID, PICKUPDATA,
PICKUPITEM, PICKUPAMOUNT
onPlayerJoined JOINEDPLAYER
onShowGui GUI
onArmourDurabilityChange HELMDURABILITY,
CHESTPLATEDURABILITY,
LEGGINGSDURABILI
TY, BOOTSDURABILITY
onAutoCraftingComplete REASON
onConfigChange CONFIG
onSendChatMessage CHAT
onFilterableChat CHAT

Using scripts in your macros:


-----------------------------
Command Name: Descript
ion:
Return Value:
CRAFT(<item[:damage]>,[amount],[throw],[verbose]) Queues a
n auto-crafting request
CRAFTANDWAIT(<item[:id]>,[amount],[throw],[verbose]) Queues a
n auto-crafting request and waits for it to complete
CLEARCRAFTING Cancels
the current crafting job and any queued crafting jobs
DISCONNECT() Disconne
cts from the current game or server
GETID(<x>,<y>,<z>,<#idvar>,[#datavar]) Gets the
ID and optionally the data value of the block at the specified coordinates in t
he world ID of the block at the specified position
GETIDREL(<xoffset>,<yoffset>,<zoffset>,<#idvar>,[#datavar]) Gets the
ID and optionally the data value of the block at the specified coordinates rela
tive to the player ID of the block at the specified position
GETITEMINFO(<item[:damage]>,[&namevar],[#maxstacksize],[&type],[#dropid]
) Gets the name and other info for the specified item id, returns "None" i
f the item is not valid Name of the item
GETSLOT(<item[:damage]>,<#idvar>,[startfromslotid]) Gets the
id of the slot containing an item matching the specified item id, returns -1 if
item not found Slot ID containing a matching item
GETSLOTITEM(<slotid>,<#idvar>,[#stacksizevar],[#datavar]) Gets inf
ormation about the item in the specified slot
Item ID of the item in the slot
INVENTORYDOWN([amount]) Scrolls
the specified number of slots down through the hotbar
INVENTORYUP([amount]) Scrolls
the specified number of slots up through the hotbar
ITEMID(<item>) Gets the
legacy (numeric) ID for the specified item
Legacy ID for the item
ITEMNAME(<id>) Get the
item descriptor for a legacy (numeric) item ID
Item descriptor for the specified item id
LOOK(<yaw>,[pitch],[time]) Faces th
e player in the specified direction, prefix angles with + or - for relative move
s.
LOOKS(<yaw>,[pitch],[time]) Smoothly
turnes the player to the specified direction, prefix angles with + or - for rel
ative moves
PICK(<item[:damage]>,[item[:damage]],...) Selects
the specified item id if it is on the hotbar, specify multiple items to pick in
order of preference Item ID of the item which was picked or -1 if no
t picked
PLACESIGN([line1],[line2],[line3],[line4],[showgui]) Places a
sign in the world with the specified text (if you have one)
PLAYSOUND(<sound>) Plays a
sound
RESPAWN() Respawns
the player if you are dead
SETSLOTITEM([item[:damage]],[slot],[amount]) Creative
mode only, set the contents of a hot bar slot
SLOT(<slot>) Selects
the specified slot on the hot bar
SLOTCLICK(<slot>,[button],[shift]) Simulate
s clicking on the specified slot in the current GUI, optionally using RMB and sh
iftkey
SPRINT() Sets the
player state to sprinting if sufficient stamina (food)
TILEID(<item>) Gets the
legacy (numeric) ID for the specified tile
Legacy ID for the tile
TILENAME(<id>) Get the
descriptor for a legacy (numeric) tile ID
Tile descriptor for the specified tile id
UNSPRINT() Sets the
player state to not sprinting
KEY(<bind>) Activate
s the specified key binding for 1 tick
KEYDOWN(<bind>) Sets the
specified key binding state to pressed, only works with pressable bindings
KEYUP(<bind>) Sets the
specified key binding state to unpressed, only works with pressable bindings
TOGGLEKEY(<bind>) Toggles
the pressed state of the specified key binding, only works with pressable bindin
gs
PRESS(<lwjgl_name>) Injects
the specified key event directly into the keyboard buffer for 1 tick
TYPE(<text>) Injects
the specified key sequence directly into the keyboard buffer at a rate of 1 key
per tick
BREAK Interrup
ts exection of the innermost loop
CALCYAWTO(<xpos>,<zpos>,[#yaw],[#distance]) Calculat
es the absolute yaw angle to the specified coordinates
Yaw value to coordinates
DEC(<#var>,[amount]) Decremen
ts the specified counter by 1 or by the specified amount
DECODE(<input>,[&output]) base64_d
ecode
Decoded string
DO([count]) Begins a
loop, specify a number of loops to limit the loop count
ECHO(<text>) Sends th
e specified message as a chat packet
ENCODE(<input>,[&output]) base64_e
ncode
Encoded string
ELSE ELSE cla
use
ELSEIF(<condition>) ELSEIF c
lause
ENDIF ENDIF cl
ause
ENDUNSAFE Ends an
active UNSAFE block
EXEC(<file.txt>,[taskname],[params],...) Creates
a task by running the specified script file
FOR(<#var>,<start>,<end>) Begins a
FOR->NEXT loop using the specified var as a loop counter, #var can be used insi
de the loop
FOREACH(<iterator>) Runs a l
oop over the specified iterator
IF(<condition>) IF claus
e
IFBEGINSWITH(<haystack>,<needle>) IFBEGINS
WITH clause
IFCONTAINS(<haystack>,<needle>) IFCONTAI
NS clause
IFENDSWITH(<haystack>,<needle>) IFENDSWI
TH clause
IFMATCHES(<subject>,<pattern>,[&target],[group]) IFMATCHE
S clause
IIF(<condition>,<truetext>,[falsetext]) Inline I
F statement, sends truetext as a chat message if condition succeeds, or sends fa
lsetext if not
INC(<#var>,[amount]) Incremen
ts the specified counter by 1 or by the specified amount
JOIN(<glue>,<arrayname>,[&output]) Implodes
the specified array to a delimited string
Joined array parts
LCASE(<input>,[&output]) Converts
the input string to lower case and stores it in output
Input as lowercase
LOG(<text>) Outputs
the specified text into the local chat stream. You can include colour codes in t
he format &0
LOGTO(<target>,<text>) Outputs
the specified text into the specified target, target can be a text file name or
the name of a textarea
LOOP Ends a l
oop that was started with DO
MATCH(<subject>,<pattern>,[&target],[group],[default]) Runs a r
egular expression match on the subject and puts the result in &target
The matched subpatterns
NEXT Complete
s a FOR->NEXT loop
PROMPT(<&target>,<paramstring>,[prompt],[override],[default]) Displays
a prompt (or prompts) by parsing the params in paramstring
The supplied value
RANDOM(<#target>,[max],[min]) Assigns
a random number between min and max to target
Random value
REPLACE(<&subject>,<search>,[replace]) Replace
all occurrences of search with replace in &subject
Candidate with replaced values, does not alter source string if returned
SET(<target>,[value]) Sets the
value of target to value (or TRUE if value is omitted)
SETLABEL(<labelname>,<text>,[binding]) Sets the
text (and optionally binding) of the specified label
SETPROPERTY(<control>,<property>,<value>) Sets the
value of the specified property on the specified GUI control
SPLIT(<delimiter>,<source>,[output]) Explode
the supplied source string to an array
Array containing the split parts
SQRT(<value>,[#outvar]) Calculat
e the square root of value and store it in #outvar
The square root as an integer
STOP([id]) Stops th
e current macro, or macros matching the specified ID
STRIP(<&target>,<text>) Strips a
ll formatting codes from the specified text and assigns the result to &target
Stripped text
TOGGLE([flag]) Toggles
the specified boolean flag's value
UCASE(<input>,[&output]) Converts
the input string to upper case and stores it in output
Input as uppercase
UNSAFE(<executions>) Begins a
n UNSAFE block with max. executions set to <executions>
UNSET(<flag>) Un-sets
the specified variable
UNTIL(<condition>) Complete
s a loop started with DO but exits the loop if condition is met
WAIT(<time>) Pauses t
he script for the time specified, suffix "ms" for a wait in milliseconds or "t"
to wait in ticks
WHILE(<condition>) Complete
s a loop started with DO but exits the loop if condition is not met
ARRAYSIZE(<array>,[#outvar]) Stores t
he size of the specified array in outvar
Size of the array
INDEXOF(<array>,<#outvar>,<searchfor>) Gets the
first index of searchfor in array and stores it in outvar, returns -1 on failur
e Index of searchfor
POP(<array>,<outvar>) Removes
the last entry from the tail of array and stores it in outvar
PUSH(<array>,<value>) Appends
value to the end of array
PUT(<array>,<value>) Inserts
value at the first empty point in array
CONFIG(<configname>) Switch t
o the specified configuration
IMPORT(<configname>) Overlay
the specified configuration
UNIMPORT() Remove t
he specified configuration overlay if active
BIND(<bind>,<keycode>) Set the
specified key binding to the specified key code
CHATHEIGHT(<value>,[time]) Set heig
ht of the Minecraft chat whilst ingame 20-180
CHATHEIGHTFOCUSED(<value>,[time]) Set heig
ht of the Minecraft chat whilst in the chat GUI 20-180
CHATOPACITY(<value>,[time]) Set opac
ity of the Minecraft chat 0-100
CHATSCALE(<value>,[time]) Set scal
e of the Minecraft chat 0-100
CHATVISIBLE(<value>) Set visi
bility of minecraft chat
CHATWIDTH(<value>,[time]) Set widt
h of the Minecraft chat 40-320
FOG([value]) Toggles
render distance, or optionally specify render distance
FOV(<value>,[time]) Sets the
FOV angle in degrees, specifying time causes the value to change smoothly
GAMMA(<value>,[time]) Sets the
brightness value (percent), specifying time causes the value to change smoothly
MUSIC(<value>,[time]) Sets the
music volume, specifying time causes the value to change smoothly
RESOURCEPACKS([pattern],[pattern...]) Sets the
resource pack stack to the order matching the specified patterns
SENSITIVITY(<value>,[time]) Sets the
mouse sensitivity (between 0 and 200), specifying time causes the value to chan
ge smoothly
SHADERGROUP([path]) Sets the
active shader group to the shader matching path, use "+" to select next group
SETRES(<width>,<height>) Sets the
size of the minecraft game window
VOLUME(<value>,[time]) Sets the
sound volume, specifying time causes the value to change smoothly
ACHIEVEMENTGET(<text>,[itemid[:damage]]) Displays
the "achievment get" popup with a custom message
BINDGUI(<slot>,<screen>) Binds th
e specified custom screen to the slot specified
CLEARCHAT() Clears t
he current chat stream
GUI([name]) Show (or
hide) a gui screen
SHOWGUI(<screen>,[esc_screen]) Show a c
ustom gui screen
STORE(<type>,[name]) Store a
value into a list using the current environment
STOREOVER(<type>,[name]) Store a
value into a list using the current environment and overwrite it if exists
TIME(<&target>,[format]) Stores t
he current time and date into &target, optionally using format specified
Time as a string
CHATFILTER(<enabled>) Enable o
r disable the chat filter
FILTER Indicate
that this chat meesage should be filtered and terminate
MODIFY(<newmessage>) Set new
content for this chat message
PASS Indicate
that this chat meesage should PASS the filter and terminate
TITLE([title],[subtitle],[inticks],[showticks],[outticks]) Display
Minecraft titles
POPUPMESSAGE(<message>,[animate]) Display
a message in the action bar area
CAMERA([mode]) set the
current camera mode, call with no arguments to toggle modes
RELOADRESOURCES reload r
esources, equivalant to F3+T
LOGRAW(<JSON>) Simular
to the minecraft tellraw command

Some commands needs some extra explanation:


GUI(screen) Displays the specified GUI. The available values for "sc
reen" are:
chat
menu
inventory
options
video
controls
macrobind
macroconfig
CONFIG(name) Selects the specified config, specify "" to select the d
efault config or enter a config name.
IMPORT(name) Imports the specified config. The config will be overlai
d on the current config, replacing only keys which are defined in the
imported configuration. For example, if you are using a
server config and have a worldedit config which defines only the numpad
keys, you can IMPORT the worldedit config and only the n
umpad keys will be altered, the rest of the keys will remain using the
active config. Calling IMPORT again with the same config
will UNIMPORT the config (it is a toggle).
UNIMPORT() Removes the active overlaid config if one is active.
KEY(key) Simulate pressing the specified key once. The available
values for "key" are:
inventory
drop
chat
attack
use
pick
If you want to activate a keybind for a different key, y
ou may also use the LWJGL key code for the key bind to activate. To pump
actual simulated keypresses into the keyboard buffer, us
e the TYPE and PRESS commands instead.
KEYDOWN(key) Simulates a key down event for the specified key, use th
e KEYUP command to release the key. Available values for "key" are:
forward
back
left
right
jump
sneak
<keycode> Insert the LWJGL key code to send a k
ey event
NOTE: If you wish to send a KEYDOWN followed by a KEYUP
you *must* insert a WAIT between the two commands, otherwise Minecraft
will not register the key event. For example, use
the following script to simulate pressing the forward key for half a second:
KEYDOWN(forward);WAIT(500ms);KEYUP(forward)
KEYUP(key) Simulates a key up event, the available keys are the sam
e as for the KEYDOWN command.
TOGGLEKEY(key) Toggles the key/up down state of the specified key. The
available keys are the same as for the KEYUP and KEYDOWN commands. For
example to create a simple auto-walk macro, use the foll
owing script:
TOGGLEKEY(forward)
EXEC(filename) Executes a file as a script, the script executes as a se
parate task, allowing you to "spin off" a separate macro which runs
concurrently with other macros.
Use EXEC(filename,taskname) if you wish to be able to st
op the task at a later time using STOP, specifying the taskname allows
you to stop the task by specifying the name:
EXEC("script.txt","mytask");
...
STOP("mytask");
Following the task name you can also specify a variable
number of parameters which will be passed to the target script as both
numbered parameters and numbered variables:
EXEC("script.txt","mytask","param1","anotherparam");
Will allow you to use the specified parameters in your t
arget script as $$[1] $$[2] $$[3] and so on as parameters or alternatively
var1, var2, var3 as variables:
IF(var1 = "param1");
// do something
ELSE;
ECHO("Param 2 is $$[2]");
ENDIF;
The difference between parameters and variables is that
parameters are replaced into the script *before* it is executed whereas
variables are only checked when the script is executed,
this allows you to use a parameter like this:
$$<$$[1]>
to include a file specified at invoke-time. Using variab
les for other values is "safer" because the variable value is never
inserted into the script and therefore cannot corrupt th
e macro if invalid values are passed in.

Control-Flow Commands in Scripts:


---------------------------------
Most of the standard boolean operators are supported, such as < > = != >
= <= && || and can be used to compare variables to literal strings or
numeric values. A simple example might be:
IF(HUNGER < 12);
LOG("You should eat food to stay healthy");
ENDIF;
IF((HUNGER < 12) && (HEALTH < 10));
LOG("You should REALLY eat some food to stay healthy!!");
ENDIF;
Using your own flags is also possible, this allows you to create simple toggles
or modifiers:
IF(someflag);
LOG("The flag is true, setting it to false");
UNSET(someflag);
ELSE;
LOG("The flag is false, now setting it to true");
SET(someflag);
ENDIF;
You can also use TOGGLE(flagname) to toggle a flag to the opposite state
.

The following GLOBAL VARIABLES are available:


---------------------------------
NAME: EXAMPLE VALUE: Extra information:
AMBIENTVOLUME 100
ARMOUR 8 0 to 20 - each icon is 2 armour
points
ATTACKPOWER 8 0 to 100 scale of current weapon
power based on attack cooldown
ATTACKSPEED 3 0 to 20480 representation of ent
ity attack rate (ticks)
BIOME Roofed Forest
BLOCKVOLUME 100
BOOTSDAMAGE 0
BOOTSDURABILITY 0
BOOTSID
BOOTSNAME None
CANFLY False
CHESTPLATEDAMAGE 528
CHESTPLATEDURABILITY 294
CHESTPLATEID diamond_chestplate
CHESTPLATENAME Diamond Chestplate
CHUNKUPDATES 0
CONFIG Default Configuration Currently active configuration n
ame - case sensitive
CONTAINERSLOTS 0
COOLDOWN 5
DATE 2014-02-28
DATETIME 2014-02-28 20:21:25
DAYTICKS 3247
DAYTIME 03:14
DIMENSION SURFACE
DIRECTION N
DISPLAYHEIGHT 706
DISPLAYWIDTH 1366
DURABILITY 1071
FLYING False
FOV 80
FPS 40
GAMMA 100
GUI NONE
HEALTH 20 0 to 20 - each heart is 2 health
points
HELMDAMAGE 0
HELMDURABILITY 0
HELMID
HELMNAME None
HIT NONE
HITDATA 0
HITID air
HITNAME None
HITPROGRESS 0
HITSIDE ?
HITX 0
HITY 0
HITZ 0
HOSTILEVOLUME 100
HUNGER 20 0 to 20 - each icon is 2 food po
ints
ISRUNNING true
INVSLOT 4
ITEM diamond_axe
ITEMCODE item.hatchetDiamond
ITEMDAMAGE 1561
ITEMIDDMG diamond_axe:0
ITEMNAME Diamond Axe
KEYID 19 LWJGL key code of the key which
triggered this macro
KEYNAME R LWJGL key name of the key which
triggered the macro
LEGGINGSDAMAGE 0
LEGGINGSDURABILITY 0
LEGGINGSID
LEGGINGSNAME None
LEVEL 29
LIGHT 13 only valid underground
MAXPLAYERS 60
MODE 0
GAMEMODE creative
MUSIC 0
NEUTRALVOLUME 100
OFFHANDCOOLDOWN 5
OFFHANDDURABILITY 1071
OFFHANDITEM diamond_axe
OFFHANDITEMCODE item.hatchetDiamond
OFFHANDITEMDAMAGE 1561
OFFHANDITEMIDDMG diamond_axe:0
OFFHANDITEMNAME Diamond Axe
ONLINEPLAYERS 47
OXYGEN 300
PITCH 3
PLAYER Gorlem
PLAYERVOLUME 100
RAIN 0 0 to 100
RECORDVOLUME 100
RESOURCEPACKS
SATURATION 13
SCREEN
SCREENNAME Default
SEED 0
SENSITIVITY 100
SERVER s.minebench.de
SERVERMOTD Pinging...
SERVERNAME Minebench
SHADERGROUP
SOUND 52
STACKSIZE 1
TICKS 21301
TIME 20:21:28
TOTALTICKS 4197
TOTALXP 767
VEHICLE NONE
VEHICLEHEALTH 0
WEATHERVOLUME 0
XP 0
All input variables can be prefixed with ~ to get the state when the macro
was invoked, for example use ~CTRL to get the state of
the ctrl key when the macro wastriggered.
KEYNAME:
ALT
CTRL
LMOUSE
MIDDLEMOUSE
RMOUSE
SHIFT
KEY_0
KEY_1
KEY_2
KEY_3
KEY_4
KEY_5
KEY_6
KEY_7
KEY_8
KEY_9
KEY_A
KEY_ADD
KEY_APOSTROPHE
KEY_APPS
KEY_AT
KEY_AX
KEY_B
KEY_BACK
KEY_BACKSLASH
KEY_C
KEY_CAPITAL
KEY_CIRCUMFLEX
KEY_CLEAR
KEY_COLON
KEY_COMMA
KEY_CONVERT
KEY_D
KEY_DECIMAL
KEY_DELETE
KEY_DIVIDE
KEY_DOWN
KEY_E
KEY_END
KEY_EQUALS
KEY_ESCAPE
KEY_F
KEY_F1
KEY_F10
KEY_F11
KEY_F12
KEY_F13
KEY_F14
KEY_F15
KEY_F16
KEY_F17
KEY_F18
KEY_F19
KEY_F2
KEY_F3
KEY_F4
KEY_F5
KEY_F6
KEY_F7
KEY_F8
KEY_F9
KEY_FUNCTION
KEY_G
KEY_GRAVE
KEY_H
KEY_HOME
KEY_I
KEY_INSERT
KEY_J
KEY_K
KEY_KANA
KEY_KANJI
KEY_L
KEY_LBRACKET
KEY_LCONTROL
KEY_LEFT
KEY_LMENU
KEY_LMETA
KEY_LSHIFT
KEY_M
KEY_MINUS
KEY_MOUSE3
KEY_MOUSE4
KEY_MULTIPLY
KEY_N
KEY_NEXT
KEY_NOCONVERT
KEY_NONE
KEY_NUMLOCK
KEY_NUMPAD0
KEY_NUMPAD1
KEY_NUMPAD2
KEY_NUMPAD3
KEY_NUMPAD4
KEY_NUMPAD5
KEY_NUMPAD6
KEY_NUMPAD7
KEY_NUMPAD8
KEY_NUMPAD9
KEY_NUMPADCOMMA
KEY_NUMPADENTER
KEY_NUMPADEQUALS
KEY_O
KEY_P
KEY_PAUSE
KEY_PERIOD
KEY_POWER
KEY_PRIOR
KEY_Q
KEY_R
KEY_RBRACKET
KEY_RCONTROL
KEY_RETURN
KEY_RIGHT
KEY_RMENU
KEY_RMETA
KEY_RSHIFT
KEY_S
KEY_SCROLL
KEY_SECTION
KEY_SEMICOLON
KEY_SLASH
KEY_SLEEP
KEY_SPACE
KEY_STOP
KEY_SUBTRACT
KEY_SYSRQ
KEY_T
KEY_TAB
KEY_U
KEY_UNDERLINE
KEY_UNLABELED
KEY_UP
KEY_V
KEY_W
KEY_X
KEY_Y
KEY_YEN
KEY_Z

Working with flags, counters and global variables


-------------------------------------------------
As mentioned above, global variables are always UPPERCASE and user-defined flags
and counters are lowercase.
Normally flags and counters are local in scope and are only available wi
thin the context of the macro itself, this allows you to use
the same script on multiple keys without having the flags interfere with
one another. However sometimes you may wish to access a
counter or flag from another macro, to do this you should prefix the fla
g or counter name with @
@global is global
flag is a flag
#counter is a counter
&text is some text
You can also include variable values in LOG and ECHO messages by surrounding the
m with % signs. This can be helpful when debugging your macros:
LOG("Your health is %HEALTH%");
LOG("My counter is equal to %#mycounter%");
LOG("The state of the global flag is %@someflag%");

Expressions
-------------------------------------------------
This macro mod supports the following expressions.
Use: Discription:
abc Specific letters
123 Specific digits
\d Any Digit
\D Any Non-digit character
. Any Character
\. Period
[abc] Only a, b, or c
[^abc] Not a, b, nor c
[a-z] Characters a to z
[0-9] Numbers 0 to 9
\w Any Alphanumeric character
\W Any Non-alphanumeric character
{m} m Repetitions
{m,n} m to n Repetitions
* Zero or more repetitions
+ One or more repetitions
? Optional character
\s Any Whitespace
\S Any Non-whitespace character
^ $ Starts and ends
( ) Capture Group
(a(bc)) Capture Sub-group
(.*) Capture all
(abc|def) Matches abc or def

Advanced Settings
-----------------
Customising the Keyboard Layout
The default keyboard layout is a UK keyboard layout although most keys s
hould be correctly positioned for US keyboards as
well (with a couple of exceptions). Should you wish to customise the key
board layout you can enable keyboard layout editing
in the settings menu.
Returning to MACRO BIND mode will now have an additional button "Edit" w
hich will allow keyboard keys to be moved around on
the screen.
To delete a key from the display press [DEL].
To add a key which is not displayed press the key (pressing a key which
is
already present will highlight the key).
When you are finished click the "Edit" button again.
Utilising fallback mode (compatibility mode)
Version 0.7 includes a new keyboard input layer designed to improve comp
atibility with other mods, this is achieved by directly
manipulating the LWJGL keyboard buffer. However if this new input layer
causes issues, you can use fallback mode to use the old
(less versatile) behaviour.
To enable fallback mode, choose "Compatible mode" from the options scree
n and then restart Minecraft.

Notices
-------------------------------------------------
Minecraft and related resources are Copyright Mojang AB.
This mod and related resources are Copyright 2011 Adam Mummery-Smith
You MAY include this mod in compilation packs or mod collections
You MAY redistribute the mod
You MAY use this mod or any of the constituent classes as the basis for other
mods
provided that you credit any of my work to me.
You MAY have fun with the mod and make suggestions for new features in the MCF
thread.
You MAY NOT donate money to me, if you like this mod then please donate to thi
s
worthy cause instead:
http://www.minecraftforum.net/topic/632211-buying-minecraft-gift-codes-for-oth
ers/

Sources
-------------------------------------------------
Commands, variables, events:
http://mkb-wiki.herokuapp.com
Expressions:
https://regexone.com
Forum:
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/
1275039-macro-keybind-mod-1-11-2-version-available
-------------------------------------------------
By martijnpu May 2017