# Helpers Utilities

> Overview of helper-focused utilities in Kore - renderers, displays, interactions, inventories, mannequins, math, NBT paths, raycasts, scheduling, and state.

Updated 2026-10-24. Canonical: https://kore.ayfri.com/docs/helpers/utilities

The `helpers` module contains utility-style features that build on top of Kore and, when needed, the OOP abstractions.
These helpers are not centered around long-lived object models, so they now live outside the `oop` module.

## Why use `helpers`

Use `helpers` when you want higher-level building blocks without introducing gameplay objects such as teams, timers, or
entity wrappers.

- **Rendering helpers** convert human-friendly text formats into Minecraft text components.
- **Display and entity helpers** cover display entities, interactions, mannequins, and other world-facing utility
  objects.
- **Math, scheduling, and geometry helpers** pre-generate command logic for raycasts, particle shapes, spatial zones,
  delayed execution, or fixed-point math.
- **State helpers** let you write concise Kotlin that still compiles to vanilla-friendly scoreboard and storage
  commands.

The module is designed to stay composable: you can use it with plain Kore functions or mix it with the
[`oop` module](https://kore.ayfri.com/docs/oop/oop-utilities.md) when a system grows beyond a few stateless helpers.

## Install this module

Add the `helpers` artifact when you want renderer, display, interaction, inventory, mannequin, math, raycast, scheduler,
delegate, or particle utilities on top of Kore.

```kotlin
dependencies {
  implementation("io.github.ayfri.kore:helpers:2.28.0-26.3")
}
```

## Typical workflow

Most helper APIs follow the same pattern:

1. **Register or build** a helper once (`registerMath()`, `raycast { ... }`, `drawCircle(...)`, etc.).
2. **Call it from functions** wherever you need the generated commands.
3. **Combine it with core Kore or OOP** if you need selectors, scoreboards, teams, timers, or reusable gameplay
   objects.

That makes helpers a good fit for packs that start simple and progressively adopt more structure only where needed.

## All Features

- **[ANSI Renderer](https://kore.ayfri.com/docs/helpers/ansi-renderer.md)** - Convert ANSI SGR escape sequences into Minecraft text components
  when your source text already contains terminal-style formatting.
- **[Area](https://kore.ayfri.com/docs/helpers/area.md)** - Work with axis-aligned 3D regions for containment checks, intersections, unions,
  and coordinate transforms.
- **[Block IDs](https://kore.ayfri.com/docs/helpers/block-ids.md)** - Read the block at any position as an integer score with one
  `compute block` command and a generated context int provider.
- **[Conversations](https://kore.ayfri.com/docs/helpers/conversations.md)** - Script per-player NPC dialogue with timed lines, click pauses, and
  dialog or chat choices.
- **[Display Entities](https://kore.ayfri.com/docs/helpers/display-entities.md)** - Configure block, item, and text display entities with shared
  transformations, billboards, brightness, and interpolation settings.
- **[Interactions](https://kore.ayfri.com/docs/helpers/interactions.md)** - Make clickable hitboxes and clickable mannequin NPCs with right and
  left click callbacks, generated as advancements and functions with no tick function.
- **[Inventory Manager](https://kore.ayfri.com/docs/helpers/inventory-manager.md)** - Register slot listeners and container policies for player,
  entity, or block inventories.
- **[Mannequins](https://kore.ayfri.com/docs/helpers/mannequins.md)** - Build mannequin entities with profiles, hidden layers, poses, and hand
  selection.
- **[Markdown Renderer](https://kore.ayfri.com/docs/helpers/markdown-renderer.md)** - Turn Markdown snippets into rich Minecraft text for chat,
  titles, signs, or boss bars.
- **[Menus](https://kore.ayfri.com/docs/helpers/menus.md)** - Build dialog-based GUIs whose buttons run functions for any player, with
  sub-pages, links, and pause screen or Smithed menu entries.
- **[MiniMessage Renderer](https://kore.ayfri.com/docs/helpers/minimessage-renderer.md)** - Parse Adventure MiniMessage tags into Minecraft
  text components while keeping authoring ergonomic.
- **[NBT Paths](https://kore.ayfri.com/docs/helpers/nbt-paths.md)** - Build typed NBT paths and resolve trees that mix literal values with
  runtime scores.
- **[Raycasts](https://kore.ayfri.com/docs/helpers/raycasts.md)** - Generate recursive step-based raycasts with callbacks for hits, misses, and
  per-step side effects.
- **[Scheduler](https://kore.ayfri.com/docs/helpers/scheduler.md)** - Schedule delayed or repeating functions with load-time registration and
  cancelation helpers.
- **[Score Vectors](https://kore.ayfri.com/docs/helpers/score-vectors.md)** - Runtime 3D vectors for look directions, dashes, knockback,
  exact lengths, teleports, and motion.
- **[Scoreboard Math](https://kore.ayfri.com/docs/helpers/scoreboard-math.md)** - Fixed-point sine, cosine, atan2, and exact integer
  square root.
- **[Sidebars](https://kore.ayfri.com/docs/helpers/sidebars.md)** - Show up to 15 custom lines on the sidebar, with right-aligned values, live
  scores, and conditional lines.
- **[State Delegates](https://kore.ayfri.com/docs/helpers/state-delegates.md)** - Map scoreboard objectives or NBT storage paths to Kotlin
  properties for terser command-generation code.
- **[VFX Particles](https://kore.ayfri.com/docs/helpers/vfx-particles.md)** - Generate circles, spheres, spirals, helixes, and lines as
  reusable particle functions.

## Helpers vs OOP

Choose the `helpers` module when you mainly need:

- data conversion and rendering,
- world-facing utility objects such as displays, interactions, mannequins, and inventory controllers,
- geometry or math utilities,
- scheduling helpers,
- lightweight compile-time sugar over vanilla commands.

Choose the [`oop` module](https://kore.ayfri.com/docs/oop/oop-utilities.md) when you need named gameplay objects such as players, teams,
scoreboards, timers, spawners, or state machines.

If you need entities, teams, scoreboards, items, timers, or other object-oriented gameplay abstractions, see the
[OOP Utilities](https://kore.ayfri.com/docs/oop/oop-utilities.md) page.
