Skip to content

Menus Overview

DaisyCore menus keep the external usage compact while moving the runtime complexity into the library.

The menu definition is the static description of what a menu should look like. The menu session is the per-player runtime state that exists after a player opens it.

val menu =
menu("Skyblock", rows = 3) {
slot(13) {
item(Material.GRASS_BLOCK) {
name = "Your Island"
}
}
}
player.openMenu(menu)
  • immutable menu definitions
  • per-player sessions
  • targeted invalidation
  • pagination and template helpers
  • runtime safety around top-inventory interactions

Menus are owned by the DaisyCore platform runtime. That means menu sessions are cleaned up with the platform instead of being left as isolated global state inside your plugin.