Gameplay API v0.2
Preferred entrypoint for current gameplay development with handle-first APIs and v0.2 links.
In this section
Related section pages:
Overview
This is the preferred gameplay reference for new plugin development. Use ctx.Gameplay().Players(), Worlds(), Entities(), Sessions(), PlayerData(), and WorldTemplates().
- Handle-first gameplay mutations should use collection handles from Gameplay(), not raw object mutation.
- Request-style methods on
plugin.Gameplayremain for compatibility. - Cross-links below cover events, content behaviors, entities, containers, and player data/template APIs.
gameplay-v0.2.go
gameplay := ctx.Gameplay()worldHandle, ok := gameplay.Worlds().ByName("Hub")if !ok { return fmt.Errorf("world not found")}playerHandle, ok := gameplay.Players().ByName("Steve")if !ok { return fmt.Errorf("player not found")}inv := playerHandle.Inventory()if _, err := inv.Give(item.New("pulse:ruby").Count(4).Stack()); err != nil { return err}if err := worldHandle.SetBlock(world.Pos{X: 10, Y: 64, Z: 10}, block.New("minecraft:stone").Block()); err != nil { return err}if _, err := gameplay.RegisterBlock(content.DefineBlock("pulse:glow_cube"). Protocol(748, content.ProtocolOverride{Components: map[string]any{"minecraft:custom_components": "pulse:glow_cube"}}). Spec()); err != nil { return err}