Skip to main content
Most event callbacks run on Minecraft’s client thread. Keep those callbacks short. Packet callbacks can run during networking dispatch. They are marked non-blocking: client-thread APIs that would have to wait are rejected from those scopes.
Use Script.thread or Async.run for blocking waits:
Direct raw Java calls through Java.mc(), Java.type(...), or Reflect do not automatically marshal back to the client thread. Prefer the high-level APIs when possible.