Support script module events

An event is bound to a certain condition. If this condition is met, the event is triggered and the code in the handler function is executed. Different events are associated with different conditions and therefore fulfill different tasks. A general overview of how to use events can be found here. This document lists all available events and their purpose.

The general syntax of an event handler is as follows:

module.on(eventName, function(eventData) {

});

Available events

The following events can be used by script modules.

Event Name Has event data? Description
enable No Called when the module is enabled.
disable No Called when the module is disabled.
update No Called every tick (~20 times/s) if the player exists.
motion Yes Called when the player receives motion.
render2D Yes Called when the client renders 2D elements.
render3D Yes Called when the client renders 3D elements.
packet Yes Called every time a packet is processed.
jump Yes Called when the player jumps.
attack Yes Called when the player attacks an entity.
key Yes Called when a key is pressed.
move Yes Called when the player moves.
step Yes Called when step tries to step up a block.
stepConfirm No Called when step successfully stepped up a block.
world Yes Called when the world is changed.
session No Called when the session is changed.
clickBlock Yes Called when a block is clicked.
strafe Yes Called when the player strafes.
slowDown Yes Called when the player is slowed down.

Event data

Many events, when they are triggered, pass some information to the handler function that is relevant to the event. This information is documented below.

Motion event

Method Description Type
eventData.getEventState() State of this event. EventState

EventState can be one of the following:

  • PRE
  • POST

Render2D event

Method Description Type
eventData.getPartialTicks() Returns the time passed between the last and the current frame. Can be used to execute animations at the same speed regardless of FPS count. float

Render3D event

Method Description Type
eventData.getPartialTicks() Returns the time passed between the last and the current frame. Can be used to execute animations at the same speed regardless of FPS count. float

Packet event

Method Description Type
eventData.getPacket() Returns the packet which triggered this event. Packet
event.cancelEvent() Cancels the event. void

Example:

var C00Handshake = Java.type("net.minecraft.network.handshake.client.C00Handshake");

...

module.on("packet", function(eventData) {
    var packet = eventData.getPacket();

    if (packet instanceof C00Handshake) {
        Chat.print("Cancelling handshake.");
        eventData.cancelEvent();
    }
});

Jump event

Method Description Type
eventData.getMotion() Returns the y-motion used for jumping. float
eventData.cancelEvent() Cancels the event. void

Attack event

Method Description Type
eventData.getTargetEntity() Returns the attacked entity. Entity

Key event

Method Description Type
eventData.getKey() Returns the ID of the pressed key. int

Example:

module.on("key", function(eventData) {
    var key = eventData.getKey();

    if (key == 28) {
        Chat.print("Pressed enter key!");
    }
});

Move event

Method Description Type
eventData.getX() Returns the x-position the player moved to. int
eventData.getY() Returns the y-position the player moved to. int
eventData.getZ() Returns the z-position the player moved to. int
eventData.zero() Sets x, y and z position of the event to 0. void
eventData.zeroXZ() Sets x and z position of the event to 0. void
eventData.cancelEvent() Cancels the event. void

Step event

Method Description Type
eventData.getStepHeight() Returns the height in blocks the client is trying to step up. float

World event

Method Description Type
eventData.getWorldClient() Returns the new world client. WorldClient

ClickBlock event

Method Description Type
eventData.getClickedBlock() Returns the BlockPos of the clicked block. BlockPos
eventData.getEnumFacing() Returns the facing state used when clicking the block. EnumFacing

Strafe event

Method Description Type
eventData.getStrafe() Returns the amount by which the player strafed. float
eventData.getForward() Returns the amount by which the player moved forwards. float
eventData.getFriction() Returns the friction present when strafing (eg. caused by block below player). float
eventData.cancelEvent() Cancels the event. void

SlowDown event

Method Description Type
eventData.getStrafe() Returns the applied strafe slowdown. float
eventData.getForward() Returns the applied forwards slowdown. float