Alpha StealABlockv1.0.0

Configuration

config.yml itself is nearly empty — almost everything that matters lives in its own dedicated file instead.

File layout

plugins/StealABlock/
  config.yml # just starting-balance — everything else lives below
  messages.yml # every player-facing message, prefix, accent gradient
  blocks.yml # the full block table — material, rarity, income, sell-value
  milestones.yml # per-rarity collection milestones
  sounds.yml # every plugin sound effect, individually toggleable
  scoreboard.yml # sidebar scoreboard + TAB header/footer layout
  arenas.yml # runtime — written by /asb create/setup, not hand-edited
  data.yml # runtime — per-player balance/rebirth/prestige/credits data
  schematics/ # WorldEdit .schem files pasted on Prestige

Core config.yml

starting-balance: 50.0

That's the entire file. Everything else — arenas, blocks, milestones, sounds, scoreboard, messages — is deliberately split into its own dedicated file rather than nested under one giant config.

Theme & accent color

Unlike the config-driven theme: block in AlphaStudio's other plugins, StealABlock's accent gradient is defined directly in code (ColorUtil.java) rather than config.yml:

// Author content with �FF12 — it renders as a real two-stop gradient
// (light green -> a moderately deeper green) everywhere, automatically.
ACCENT_START = "70FF7E";
ACCENT_END   = "00990F";

Recoloring the plugin's own in-game accent means editing these two constants and rebuilding — not a runtime config change. Message files still only ever author the flat &#00FF12 placeholder, same authoring convention as every other AlphaStudio plugin.

blocks.yml

One entry per block variant (so a single material like dirt takes 4 entries — normal/golden/diamond/rainbow). See Gameplay → Blocks & Rarity for how the multipliers work.

blocks:
  dirt:
    material: DIRT
    display-name: "󅒐ᴅɪʀᴛ ʙʟᴏᴄᴋ"
    rarity: COMMON
    income: 1
    sell-value: 10
  golden_dirt:
    material: DIRT
    display-name: "&#FFFFFFɢᴏʟᴅᴇɴ ᴅɪʀᴛ ʙʟᴏᴄᴋ"
    rarity: GOLDEN_COMMON
    income: 10
    sell-value: 100
  rainbow_dirt:
    material: DIRT
    display-name: "&#FF0000ʀ&#FFAA00ᴀ&#FFFFFFɪ�FF12ɴ7FFFFʙ&#AA00AAᴏ&#FF77FFᴡ &#FFFFFFᴅɪʀᴛ ʙʟᴏᴄᴋ"
    rarity: RAINBOW_COMMON
    income: 200
    sell-value: 2000

Rainbow-variant display names are hand-authored letter-by-letter with alternating colors (visible in the raw YAML above) rather than using a single gradient tag — that's what produces the true rainbow look letter-to-letter instead of a smooth two-color fade.

milestones.yml

common_index:
  type: RARITY
  target: COMMON
  slot: 10
  display-item: LIGHT_GRAY_CONCRETE
  display-name: "&#FFFFFFᴄᴏᴍᴍᴏɴ ɪɴᴅᴇx"
  lore-locked: [...]     # shown while incomplete
  lore-unlocked: [...]   # shown once complete, claimable
  lore-claimed: [...]    # shown after claiming
  credits: 10
  commands: ["eco give %player% 100000"]

%progress%/%total% are available inside the lore lists to show live completion count. commands runs as console for every reward line — not limited to economy commands.

sounds.yml

Every plugin sound effect, individually toggleable with its own volume/pitch:

collect_block:   {enabled: true, sound: ENTITY_ITEM_PICKUP, volume: 1.0, pitch: 1.0}
deliver_block:   {enabled: true, sound: ENTITY_EXPERIENCE_ORB_PICKUP, volume: 1.0, pitch: 1.2}
sell:            {enabled: true, sound: ENTITY_EXPERIENCE_ORB_PICKUP, volume: 1.0, pitch: 0.8}
open_gui / close_gui: {sound: UI_BUTTON_CLICK, ...}
error:           {sound: ENTITY_VILLAGER_NO, ...}
success:         {sound: ENTITY_PLAYER_LEVELUP, ...}
arena_join / arena_leave: {...}
storage_full:    {sound: ENTITY_VILLAGER_NO, pitch: 0.5}
collect_money:   {sound: ENTITY_ITEM_PICKUP, pitch: 1.5}

Scoreboard & TAB list

Fully customizable, independently toggleable. Supports both this plugin's &#RRGGBB accent syntax and MiniMessage tags like <shadow:#000000FF> (needs the server on 1.21.4+) in the same line.

scoreboard:
  enabled: true
  update-interval-ticks: 20
  title: "<shadow:#000000FF>�FF12ꜱᴛᴇᴀʟ ᴀ ʙʟᴏᴄᴋ</shadow>"
  lines:
    - "<shadow:#000000FF>󅒐ᴍᴏɴᴇʏ: �FF12$%balance_formatted%</shadow>"
    - "<shadow:#000000FF>󅒐ʀᴇʙɪʀᴛʜ: �FF12%rebirth%</shadow>"

tablist:
  enabled: true
  update-interval-ticks: 20
  header: [...]
  footer: [...]

Full placeholder list for both sections is on Placeholders → Scoreboard placeholders.

Reload vs. restart

/asb reload re-reads config.yml, messages.yml, blocks.yml, milestones.yml, sounds.yml, and scoreboard.yml. It does not reload compiled Java — anything changed by updating the plugin jar itself needs a full server restart.