Api Links

Languages

To use scripting you need to download one of the libraries below and put them in your mods folder.

  • ECMAScript(more commenly know as javascript): You need java 8 or higher and go to your java/jre/lib/ext folder and copy the nashorn.jar to the mods folder
  • Python: Download the standalone jar from the Jython website and put it in the mods folder.
  • Lua: Download the luaj.zip from the Luaj website and put the lib/luaj-jse.jar into the mods folder.
  • Ruby: Download the jruby.zip from the JRuby website and put the lib/jruby.jar into the mods folder.

There are probably more scripting languages available. These are just some examples. You can usually find them by googling: java scriptengine <your language name>

API

If there is any extra functionality you would like feel free to ask for it on the forums or join us on discord
Simple script example

Hooks

FunctionEventDescription
initNpcEvent.InitEventCalled when the npc spawns or respawns
tickNpcEvent.UpdateEventCalled as update tick (once every 10 ticks)
interactNpcEvent.InteractEventCalled when a player interacts with the npc
dialogDialogEvent.OpenEventCalled when a player opens a dialog from the npc
dialogOptionDialogEvent.OptionEventCalled when a player selects a dialog option
dialogCloseDialogEvent.CloseEventCalled when a player closes a dialog
damagedNpcEvent.DamagedEventCalled when an npc gets attacked. Can be cancelled
diedNpcEvent.DiedEventCalled when an npc gets killed
meleeAttackNpcEvent.MeleeAttackEventCalled when an npc is going to attack
rangedLaunchedNpcEvent.RangedLaunchedEventCalled when an npc fires a projectile
targetNpcEvent.TargetEventCalled when an npc targets something
targetLostNpcEvent.TargetLostEventCalled when an npc looses his target
killNpcEvent.KilledEntityEventCalled when an npc kills something
roleRoleEvent.*Called by some roles
collideNpcEvent.CollideEventCalled when an npc collides with an entity
timerNpcEvent.TimerEventCalled when a timer finishes
trigger WorldEvent.TriggerEvent Called when /noppes script trigger is used or ICustomNpc.trigger

ScriptBlock/ScriptedBlockDoor events:

FunctionEventDescription
initBlockEvent.InitEventCalled when the block is created or loaded
tickBlockEvent.UpdateEventCalled as update tick (once every 10 ticks)
interactBlockEvent.InteractEventCalled when a player interacts with the block
redstoneBlockEvent.RedstoneEventCalled when the block receives a new redstone signal
fallenUponBlockEvent.EntityFallenUponEventCalled when an entity falls upon this block
doorToggleBlockEvent.DoorToggleEventCalled when the scripteddoor gets opened/closed
brokenBlockEvent.BreakEventCalled when the block is broken
explodedBlockEvent.ExplodedEventCalled when the block was blown up
rainFilledBlockEvent.RainFillEventCalled when it rains sometimes
neighborChangedBlockEvent.NeighborChangedEventCalled when a neighboring block is changed
clickedBlockEvent.ClickedEventCalled when the block is clicked
harvestedBlockEvent.HarvestedEventCalled when a block is destroyed by a player
collideBlockEvent.CollidedEventCalled when an entity collides with the block
timerBlockEvent.TimerEventCalled when a timer finishes
triggerWorldEvent.TriggerEvent Called when /noppes script trigger is used or IBlockScripted.trigger

Player events:

FunctionEventDescription
initPlayerEvent.InitEventCalled when the player is created or loaded
tickPlayerEvent.UpdateEventCalled as update tick (once every 10 ticks)
interactPlayerEvent.InteractEventCalled when a player interacts with the block
brokenPlayerEvent.BreakEventCalled when a block is broken
tossPlayerEvent.TossEventCalled when a player tosses an item on the ground
pickUpPlayerEvent.PickUpEventCalled when a player picks up an item
containerOpenPlayerEvent.ContainerOpenCalled when a player opens a container
containerClosedPlayerEvent.ContainerClosedCalled when a player closes a container
diedPlayerEvent.DiedEventCalled when a player dies
attackPlayerEvent.AttackEventCalled when a player left clicks
killPlayerEvent.KilledEntityEventCalled when a player kills an entity
damagedPlayerEvent.DamagedEventCalled when a player gets damaged
damagedEntityPlayerEvent.DamagedEntityEventCalled when a player damages an entity
rangedLaunchedPlayerEvent.RangedLaunchedEventCalled when a player shoots an arrow
timerPlayerEvent.TimerEventCalled when a timer finishes
loginPlayerEvent.LoginEventCalled when a player logs in
logoutPlayerEvent.LogoutEventCalled when a player logs out
chatPlayerEvent.ChatEventCalled when a player says something
factionUpdatePlayerEvent.FactionUpdateEventCalled when a players faction points change
dialogDialogEvent.OpenEventCalled when a player opens a dialog from the npc
dialogOptionDialogEvent.OptionEventCalled when a player selects a dialog option
dialogCloseDialogEvent.CloseEventCalled when a player closes a dialog
questStartQuestEvent.QuestStartEventCalled when a player starts a quest
questCompletedQuestEvent.QuestCompletedEventCalled when a player finishes all objectives of a quest
questTurnInQuestEvent.QuestTurnedInEventCalled when a player turns in a quest to get the rewards
triggerWorldEvent.TriggerEventCalled when /noppes script trigger is used or IPlayer.trigger

ScriptedItem events:

FunctionEventDescription
initItemEvent.InitEventCalled when the item is created or loaded
tickItemEvent.UpdateEventCalled as update tick (once every 10 ticks) when item is in the inventory
interactItemEvent.InteractEventCalled when a player interacts with the block/entity or air
attackItemEvent.AttackEventCalled when a player left click on a block/entity or air
tossItemEvent.TossEventCalled when a player tosses the item on the ground
spawnItemEvent.SpawnEventCalled when a scripted item spawns into the world
pickedUpItemEvent.PickedUpEventCalled when a player picks up a scripted item

Projectile events:

FunctionEventDescription
projectileTickProjectileEvent.UpdateEventCalled as update tick (once every 10 ticks)
projectileImpactProjectileEvent.ImpactEventCalled when the projectile impacts an entity or block

CustomGuis events:

FunctionEventDescription
customGuiClosedCustomGuiEvent.CloseEventCalled when the custom gui gets closed
customGuiButtonCustomGuiEvent.ButtonEventCalled when a custom gui button is pressed
customGuiSlotCustomGuiEvent.SlotEventCalled when a custom gui slot is pressed
customGuiScrollCustomGuiEvent.ScrollEventCalled when a custom gui scroll list is pressed
Ad: