Skip to content

Use DaisySeries with DaisyCore

Guide

Keep runtime ownership in DaisyCore and keep parser-safe value handling in DaisySeries.

1

Use DaisySeries when config values need normalization

Config-heavy Paper values should not be normalized in runtime files with plugin-local helpers.

2

Parse values before they reach runtime UI code

val icon = DaisyMaterials.parse(config.icon)
val clickSound = DaisySounds.parse(config.sound)
val enchantment = DaisyEnchantments.parse(config.enchantment)
val effect = DaisyPotions.parse(config.effect)
3

Let DaisyCore own commands, menus, sidebars, and tablists

Requires DaisyCore

player.openMenu("Profile", rows = 3) {
background(Material.GRAY_STAINED_GLASS_PANE) {
name(" ")
}
}

Adopt incrementally

You can start with DaisySeries plus DaisyCore only. Add DaisyConfig later when those same parsed values need typed YAML, managed lifecycle, or module bundles.

You’ve separated parsing from runtime ownership

Next read Build a Plugin Flow for the runtime side, use Build the Normal Stack for the full suite path, or open the dictionary pages when you need actual canonical values.