Propozycja • sieć v5 • minecraft.pl

SIEC, NIE SERWER — TWOJA KRONIKA ZOSTAJE. Reframe the product from "a DonutSMP-style server" to "your persistent Polish Minecraft NETWORK ACCOUNT, where status is what you ACHIEVED (carved in stone forever), not the number in your balance." One event-sourced MySQL-authoritative identity (Konto Sieciowe) synced live over NATS makes every server one designed world: quests, jobs (profesje), pass tier, rank and a permanent dated hall-of-fame (Kronika) follow you everywhere, so leaving any single server means abandoning your whole account. The flex inverts DonutSMP's duplicatable "ile masz" into uncopyable, unbuyable "czego dokonałeś" — communal Polish-folklore deeds (Mistrz Sezonu, Pogromca Smoka Wawelskiego) earned by PLAYING, at Polish prime time, by people who play together. Every engagement reward is account-bound (Żetony) and capped, so the 44.8B dupe scar becomes a trust differentiator instead of a recurring catastrophe.

Na DonutSMP liczy się ile masz — i możesz stracić wszystko. U nas liczy się czego dokonałeś — i to zostaje na zawsze, wykute w kamieniu, gra z Polakami o polskiej godzinie.

Funkcja-sygnatura

TWOJA KRONIKA (Your Chronicle) — a permanent, network-wide, dated hall-of-fame of feats earned ONLY by playing, fed by a co-op world-boss (Przebudzenie / Smok Wawelski) that spawns synchronously on every backend over NATS at Polish prime time (20:00 CET, 3-4x/week). Players fight one shared-HP boss together; rewards are contribution-bracket account-bound loot + a chance at the rare seasonal "Pogromca" deed. Completed deeds are etched network-wide instantly (name flashes on the lobby Kronika wall) and banked FOREVER, dated with the season theme — no balance, no dupe, no purchase can ever buy one. This single mechanic fuses the four deepest moats DonutSMP structurally cannot copy: (1) authored PvE content (it has zero NPCs/bosses/lore), (2) the seasonal permanent-legacy model (it never resets, so it has no episodic arc), (3) the anti-P2W "earned-not-bought status" inversion, and (4) the Polish-prime-time co-op heartbeat a US-timezone clone literally cannot serve to Europeans. It is the clip-worthy, marketable, communal "we are a network" moment, and the emotional payoff that every daily/weekly/seasonal loop funnels into. Lead all marketing with it: "Razem obudziliśmy Smoka Wawelskiego — i nasze imiona zostaną tu na zawsze."

Synteza 39 agentów badawczych • 177 pomysłów • 8 projektów systemów • 50 agentów łącznie.

Szybkie wygrane — w tym tygodniu

  • Litościwy Licznik — publish crate odds + add a pity counter on EXISTING crates (config-level only, no new plugin). Reframes crates from predatory gamble to a fair climb; immediate trust win in the vocal PL anti-P2W scene and it costs almost nothing.
  • Płomień Serii v0 — ship the forgiving login streak alone (Tarcza freeze, public streak title at 3/7/14 days) on the existing player-data store before the full SZLAK spine exists. Classic D1/D7 lever, low build, the differentiator is the forgiving framing not the calendar.
  • Liga Wieczoru — a nightly-resetting leaderboard sprint reusing existing leaderboard + NATS plumbing, with same-night rewards, paired with a network-wide cooperative goal bar on a proxy bossbar ('razem wykopcie 2 000 000'). Manufactures a reason to be online TONIGHT specifically; reuses infrastructure you already run.
  • Sekrety — hidden/secret achievements (near-zero build cost) that spawn discovery, wiki-building and clip culture a fully-transparent DonutSMP shop model structurally can't have.
  • Discord 'be there in 10 min' event pings via the LIVE Kody account link (/polacz) — a manual operator-triggered prime-time ping ('event za 10 minut, wbijajcie') before the full Powrót service exists. Lifts concurrency at 19:00-21:00 CET immediately using plumbing already deployed.
  • Author + rename the first batch of Polish vocation definitions (drwal/górnik/rybak/łowca) on a Folia-native jobs engine as a visible 'we're not a clone' signal even before perks are fully tuned — fastest way to make the server LOOK different on day one.

Plan wdrożenia

Roadmapa fazowa

1

Phase 0 — Defensive Foundation: Żetony currency + Konto Sieciowe identity spine + presence guard

Weeks 1-4
  • Żetony — a tagged, NON-TRADEABLE, account-bound reward currency: ALL quest/job/daily/event/streak payouts route through it; duped tradeable Money can never buy prestige, cosmetics or pass tiers (structural dupe quarantine)
  • Konto Sieciowe — one MySQL-authoritative, event-sourced, idempotent player account (append-only ledger, every grant has an idempotency key, never trust-the-client increment); progress synced live over NATS subjects (account.<uuid>.delta) so it is identical on every backend
  • Strażnik Obecności — one authoritative Folia-safe presence/anti-farm signal (>=60s connected, moved/interacted, not AFK, alt-aware) that every reward system consults; kills autoclicker/AFK-pool/alt-army farming before any faucet exists
  • Live conservation-of-money tripwires + hard daily Żeton payout ceiling (transparent shared cap) wired into the ledger from day one
  • Analytics instrumentation baked into the ledger: every grant/login/session emits a cohort event (Umami-style server-side) so D1/D7/D30 and faucet/sink balance are measurable from the first feature

Dlaczego: Given the prior 44.8B dupe, the currency and identity backbone are a PREREQUISITE, not a feature — every retention loop that follows mints rewards, and minting onto an untagged/tradeable rail re-arms the exact catastrophe. Build the deflationary, append-only, presence-gated rail ONCE; everything bolts onto it. Instrumenting cohorts now is the only way to tune later phases (a named research gap). This phase is invisible to players but is the load-bearing wall; shipping any reward system before it is reckless on this network specifically.

Wpływ: No direct retention lift (invisible), but it is the multiplier and insurance for everything after: contains any future dupe to account-bound junk, makes all later loops cross-server by default, and gives the measurement needed to tune them. Skipping it caps the ceiling of every later phase.

2

Phase 1 — The Daily Heartbeat: quest board + forgiving streak + Polish vocations + party

Weeks 4-9
  • Codzienne Zlecenia / Tablica Zleceń — a physical in-world contract board + Cechmistrz NPC and /zlecenia GUI: 3 daily + 1 weekly rotating contracts, deterministic per-player seed (hash(uuid+day)), Folia-safe progress from events the player already fires, ONE free reroll + costed rerolls, paid in Żetony only
  • Płomień Serii — forgiving login streak with Tarcza/Ulga freeze (one missed day freezes, never zeroes), escalating milestones at 3/7/14/30/100 days, public streak title (Duolingo break-protection, not punishment)
  • Profesje (drwal/górnik/rybak/łowca) on UniverseJobs/AuraSkills (Folia-native — Jobs Reborn is NOT) with self-authored Polish definitions: levels unlock ABILITIES/recipes/access/titles + hard-capped 'super minor' boosts, NEVER raw money; XP driven purely by block-break/fish/kill on the owning region thread
  • Vocation-tagged Kontrakty Fachowca — dailies tagged drwal/górnik/rybak grant job-XP, wiring the daily loop into the jobs loop so they reinforce each other
  • Proxy-side /party (Drużyna) — instant cross-server casual groups, shared chat, warp-to-teammate, shared mob/quest credit: makes 'play together' the default and is the on-ramp for every later social feature
  • Litościwy Licznik — published crate odds + pity counter on existing crates (config-level): reframes crates from predatory gamble to a fair climb, a big trust win in the vocal PL anti-P2W scene

Dlaczego: These are the owner's own stated ideas, they are the cheapest fastest 'we are NOT a clone' signals (DonutSMP structurally has no native quests, no streak, no deep vocations), and most ride existing/buyable Folia-safe engines (BattlePass/Tasks-Quests, UniverseJobs/AuraSkills) where you author the content. They are the proven D1/D7 levers and they immediately start generating the EngagementEvents that the Phase 0 ledger records. Ordered first among visible work because impact-to-effort is highest: classic retention mechanics, mostly bought-not-built, all owner-aligned.

Wpływ: Largest near-term lift in D1/D7 and session length per unit effort: a concrete daily reason to log in tonight, a streak that punishes leaving, a months-long vocation mastery identity, and party tooling that converts solo sessions into social ones. Expect the steepest D1 improvement of any phase.

3

Phase 2 — SZLAK: the meta-loop + Przepustka Sezonowa + onboarding + win-back

Weeks 9-16
  • SZLAK — the single meta-loop binding login+streak+dailies+profesje+quest-lines into nested daily->weekly->seasonal clocks: one EngagementEvent atomically ticks a daily objective + levels a profesja + advances the weekly Kronika Tygodnia chain + adds Przepustka XP, so every action pushes four bars at once (the multiplicative feedback scattered plugins can't produce)
  • Przepustka Sezonowa — a 6-week Polish-themed dual-track pass (e.g. 'Sezon: Bursztynowy Szlak'); XP (PX) ONLY from playing, never paying; Free + Premium where Premium unlocks more reward SLOTS, never more power; the clean non-P2W monetization story and the quarterly marketing beat
  • PIERWSZA WYPRAWA — a 30-min network-authoritative first-session onboarding (Przewodnik) replacing DonutSMP's cold-drop-into-PvP: instant goals, named questline, first Żetony reward, first profession pick within 10 min, ending by enrolling the player into streak + dailies + a party/clan invite
  • Powrót — offline win-back: Discord DM/mention (account-linked via the LIVE Kody plugin's /polacz <kod> — zero new UX) timed just before PL prime time for 'streak at risk', 'daily reset', 'quest expiring', plus a tiered comeback bonus scaling with time gone
  • Kalendarz Adwentowy + Polish-holiday login calendar (Mikołajki/Wigilia/majówka/Walentynki) with never-returning exclusive cosmetics — culturally-localised FOMO no international clone bothers to build

Dlaczego: Phase 1 ships the individual loops; Phase 2 makes them ONE system with three nested clocks and the seasonal horizon that is the biggest structural break from a flat never-resetting clone — plus the first non-P2W monetization (the owner wants ARPU off retention, a named gap). Onboarding is the single biggest D1 lever and must exist before heavy marketing spend, while Powrót is the only systematic lapsed-player funnel (a named gap) and reuses the live Kody plumbing. Sequenced after Phase 1 because the season pass and meta-loop have nothing to bind until the daily/jobs loops exist.

Wpływ: Largest D7/D30 lift and the first revenue: the season horizon manufactures 'stay the whole 6 weeks', onboarding targets lifting new-player D1 from a clone-typical ~12-18% toward 30%+, and Powrót reactivates lapsed players at PL prime time to lift concurrency when it matters. This is where retention compounds into a habit.

4

Phase 3 — TWOJA KRONIKA + authored PvE: the signature moat

Weeks 16-26
  • TWOJA KRONIKA — the permanent network-wide dated hall-of-fame: deed counters tracked from events already fired, completed deeds etched instantly via NATS onto the lobby wall, banked forever per season theme; the flex becomes 'most complete account', not 'biggest balance'
  • Przebudzenie / Najazd — the signature co-op world-boss: a single operator trigger fans a synchronous shared-HP boss to ALL backends over NATS at 20:00 CET, rewards tiered by contribution % (not last-hit), loot account-bound, rare seasonal 'Pogromca' deed — the communal clip-worthy heartbeat 3-4x/week
  • Kroniki Pustkowi — Polish-folklore quest-lines (Smok Wawelski, utopce, południce): multi-week branching campaigns routing players survival->PvP->lochy->wyspy with cliffhangers and time/server gates that distribute concurrency across the network
  • Lochy — a dedicated Paper dungeon server, NATS-routed party queue, instanced 4-player runs with Normal/Heroiczny + weekly best-loot lockout (MMO cadence) and a PvE-only BOUND Reliktowy Sprzęt ladder walled off from the tradeable PvP economy
  • Burza (Storm Hour) + Liga Wieczoru — nightly 20:00 rotating-modifier ritual + nightly-resetting multi-category leaderboard sprint with same-night rewards: gives the network its own folklore cadence and a fresh daily competition

Dlaczego: This is the deepest, least-copyable moat (content, not code) and the signature identity, but it is the highest-effort cluster (MythicMobs + BetterModel encounters, a new dungeon server, bespoke lore) and it depends on the account/currency/NATS spine and the season rail from Phases 0-2 to bank deeds and route rewards safely. Building it earlier would mean carving deeds onto a non-existent ledger and spawning bosses with no contribution-bracket reward rail. It lands once the retention floor is already raised, maximising the marketing return on the boss/lore beats.

Wpływ: The biggest DIFFERENTIATION and the strongest D30/cross-season retention and concurrency spike (synchronous prime-time bosses pull every backend's population online at once), plus the marketing centrepiece. Lower immediate D1 impact than Phases 1-2, but the defining long-term moat and the reason the network stops being a clone.

5

Phase 4 — Persistent Spaces, Social Obligation & Player Economy: the long-haul moats

Weeks 26-40
  • Cech / Klany — persistent cross-server (MySQL+NATS) guild as the primary unit of identity: shared XP vault fed by member activity, anti-dupe append-only ledger bank, weekly co-op Kontrakty Klanu that only complete via combined effort, seasonal Wojny Klanów — turns solo churn into 'log in because your team needs you'
  • Twoja Wyspa / Działka — a permanent, owned, raid-immune personal island/plot on a dedicated Paper server with a Liga Wysp block-value leaderboard + /odwiedz visiting + curated Wystawa showcase: the 'u nas masz swój dom, który zostaje' promise a wipe-prone clone physically cannot make (and shareable TikTok base tours)
  • Żywa Gospodarka PL — a player-run market: rented-stall Bazar/Targowisko with QuickShop chest-shops + a real timed-bid Aukcja (anti-snipe, escrow, NATS outbid pings) + a public 'Cena rynkowa' index surfaced on ceny.minecraft.pl (SEO), all on the deflationary Żetony-quarantined spine with burning sinks (Skarbiec Krajowy / Aukcja Skarbów)
  • Differentiated PvP — Tarcza Nowicjusza + graduated anti-snowball lifesteal (exile not perma-ban), Ostatni Oddech comeback buffs, Liga Krwi ranked ELO ladder with cosmetic-only tier rewards, Korona Króla Wzgórza (KOTH winner wears a network-visible auto-escalating bounty) — 'lifesteal bez płaczu'
  • Cozy gathering depth — Akwarium fishing-dex (legendary Wisła/Bałtyk catches), quality-tiered Plony crops, depth-tiered Głębia mining + a Mistrzostwo Zbieractwa meta-track — broadens the retainable audience beyond PvP sweats

Dlaczego: These are category-defining but each is a large standalone backend (new servers, claims, level-scans, escrow, ladders) and they deliver most value once the population, identity and economic rail are already established — a persistent guild bank or auction house with a tiny untrusted economy is premature. The anti-snowball PvP fix and player market also depend on the Żetony/sink backbone to stay un-warpable. Sequenced last because impact-to-effort is lower than the earlier loops, but the long-term retention ceiling (social obligation + owned space + readable economy) is the highest.

Wpływ: Highest long-haul D30+/cross-season retention and the broadest audience: clans convert solo churn into social obligation (strongest MMO-like lever), owned islands give a never-lose anchor and organic marketing, the player economy turns 'grind shards' into 'a trustworthy self-correcting market', and graduated lifesteal stops the server collapsing into a 5-whale ghost town. Builds the durable ceiling rather than the immediate floor.

Konkretne projekty

Systemy do wdrożenia

Codzienne Zlecenia (Daily Quests) — a network-wide rotating daily/weekly contract board for the v5 Polish Minecraft network, surfaced as a physical in-world "Tablica Zleceń" + Cechmistrz NPC and a /zlecenia GUI. It is the daily retention heartbeat and the connective tissue that surfaces the network's differentiating systems (vocations, bosses, islands, market) while paying out ONLY in non-tradeable account-bound currency (Żetony) and cosmetics — never raw tradeable Money. DonutSMP structurally has no native quests, so this is both the owner's stated idea and a clean anti-clone wedge.

nakład: high

Manufacture a daily "reason to log in TONIGHT": lift D1/D7/D30 retention and session length by giving every player 3 daily + 1 weekly objectives that route them through the network's signature loops, rewarded via a forgiving login streak (Płomień Serii) — while being mathematically incapable of feeding the economy enough to re-enable a 44.8B-style abuse.

Pętla
1) Daily 04:00 Europe/Warsaw rollover (single authoritative cron on the proxy/"konto" service) generates a per-player deterministic set of 3 dailies + (Mon-only) 1 weekly from weighted pools, seeded by hash(uuid + dayEpoch) so it is reproducible and not client-trusted. 2) Player performs normal gameplay → backend plugin increments progress against active contracts via Folia-safe event listeners (block-break/kill/fish/job-event on the OWNING region thread, EntityScheduler — never world-scanning). 3) Progress deltas are written optimistically to a local in-memory counter and flushed to shared MySQL via an idempotent UPSERT; completion publishes a NATS message so every other backend the player might hop to sees the updated state instantly. 4) On reaching the target the contract auto-completes (or requires a /zlecenia claim if config claim_mode=manual), awards Żetony + contributes to the weekly meta + increments the day's streak-eligibility flag. 5) At rollover, completing >=1 contract that day banks the streak; completing 0 consumes a Tarcza (freeze) if available, else the streak drops one tier (soft decay, not zero). Loop length: ~10-25 min of directed play per day to clear all 3 dailies; weekly is a 5-7 day slow-burn.
Doświadczenie gracza
A player logs in and sees a proxy actionbar/title: "Tablica Zleceń odświeżona — 3 nowe zlecenia czekają!" They walk to the Cechmistrz NPC at spawn (sense-of-place, not a faceless menu) or type /zlecenia. The GUI (double chest, 54 slots) shows: row 1 = 3 daily contracts as item icons with progress lore bars (e.g. "Wyrąb 64 drewna — 41/64"), row 3 = 1 weekly contract, plus a Płomień Serii indicator (blaze powder icon "Seria: 7 dni 🔥"), a single free Reroll button (emerald, "Odśwież zlecenie — 1 darmowe dziś"), and a claim-all button. Contracts auto-progress from events the player already fires (block break, mob kill, fish catch, job action) with a subtle actionbar tick "Zlecenie: Górnik — 50/100". On completion: a sound (ENTITY_PLAYER_LEVELUP), a toast, and Żetony + streak credit land instantly and sync across every server. Daily contracts are vocation-tagged (Kontrakty Fachowca: drwal/górnik/rybak/łowca) so finishing them also feeds job XP, tying the daily loop into the long-term jobs loop. Missing a day FREEZES the streak (Tarcza, Duolingo-style) rather than resetting it to zero, so the player never feels punished into churning. The whole thing works identically whether they are on survival, the island server, or a minigame backend — it is their account, not a server feature.
Nagrody
Reward currency is EXCLUSIVELY Żetony — a tagged, NON-TRADEABLE, account-bound soft currency that can only buy cosmetics (Szafa), QoL/convenience, reroll tokens, and streak-freeze insurance (Tarcza). Duped tradeable Money can NEVER buy quest/streak rewards, structurally quarantining the next dupe. Reward curve (per contract, tuned, server-capped): EASY daily = 15 Żetony, MEDIUM = 30, HARD = 60; full 3/3 daily clear ≈ 75-105 Żetony + a small all-clear bonus (25) = ~100-130/day. WEEKLY contract = 250 Żetony + 1 Tarcza (streak freeze) + a seasonal cosmetic shard. Vocation-tagged dailies additionally grant capped job-XP (feeds AuraSkills/UniverseJobs), never money. Streak milestones (Płomień Serii) pay escalating but BOUNDED bonuses: day 3 = +20 Żetony, day 7 = +50 + 1 Tarcza, day 14 = cosmetic trail unlock, day 30 = exclusive seasonal tag "Wytrwały", day 100 = prestige aura — all cosmetic/utility, zero tradeable value. HARD DAILY CEILING: a single account can earn at most ~150 Żetony/day from quests + ~300/week from weekly = a transparent, advertised cap (also a "wyczerp dzienny limit zanim reset" hook). Żetony have a global wealth-scaling sink path (cosmetic prices, reroll costs) so even maxed daily earners face diminishing buying power. Optional tiny tradeable-Money trickle ONLY on the weekly (e.g. 5k Money) is gated behind the daily ceiling and is negligible vs the player market.
Anty-abuse
Designed defensively around the known 44.8B dupe. Layers: (1) CURRENCY QUARANTINE — quests pay ONLY non-tradeable account-bound Żetony (+ capped job-XP), never tradeable Money, so even a perfect exploit yields cosmetics, not market-breaking wealth. (2) HARD DAILY/WEEKLY CEILINGS — max_zetony_per_day=150 enforced inside the awarding SQL transaction via SUM over the append-only quest_ledger; impossible to exceed regardless of how many contracts/servers fire. (3) SERVER-SIDE CLAMP — progress is incremented with `LEAST(target, progress+delta)` in SQL, so it can never overshoot the target and a contract can complete at most once (UNIQUE idempotency key uuid+day_epoch+slot). (4) DELTA TRIPWIRES — per-event progress capped (per_contract_progress_rate_limit=64); any single delta > reject_progress_if_delta_gt=256 is dropped and logged to a Grafana/Loki alert (catches autoclicker bursts, packet spoofing, and the "impossible jump" signature a dupe would produce). (5) PRESENCE GATING — progress only counts when the authoritative presence signal (Strażnik Obecności) says the player is genuinely present; AFK pools, autoclickers and alt-armies earn nothing. (6) DETERMINISTIC SERVER-SEEDED SETS — contract sets are generated by the konto-service from hash(uuid+dayEpoch+secret); the client never proposes objectives or rewards, so there is nothing to spoof. (7) REROLL SINK — escalating Żeton reroll costs (50/100/200) prevent reroll-spam farming. (8) RATE-LIMITED CLAIMS — claim/reroll go through the single authoritative writer with a row lock; no read-modify-write race across backends. (9) CONSERVATION AUDIT — a nightly job reconciles SUM(quest_ledger) per day against expected ceilings and flags anomalies (the live money-conservation tripwire pattern). (10) NEWBIE/ALT FRICTION — accounts below playtime/vocation thresholds get lower caps; first-day accounts cannot claim the weekly. Net: the system is mathematically incapable of being the faucet that re-enables a 44.8B event.
Sync sieci
Network-wide sync uses the existing v5 plumbing (shared MySQL + NATS), with a single authoritative writer to avoid the multi-server race conditions that enabled past abuse. Architecture: a lightweight "konto-service" (can live on the proxy/Travertine side or as a standalone JVM) owns the rollover cron (one place, Europe/Warsaw 04:00) and is the ONLY component that generates/expires contract sets — backends never generate, they only report progress. Data model (MySQL, InnoDB, utf8mb4): quest_contracts(uuid, day_epoch, slot, contract_id, target, progress, completed, claimed, PRIMARY KEY(uuid,day_epoch,slot)) ; quest_streak(uuid, current_days, tier, freezes, last_completed_epoch, banked) ; quest_ledger(id, uuid, day_epoch, zetony_awarded, source, ts) — append-only audit for the daily cap + tripwires. Progress flow: backend listener computes a delta → optimistic local counter → idempotent UPSERT `progress = LEAST(target, progress + ?)` (DB-side clamp prevents over-award even under concurrent writes) → on transition to completed, write ledger row in the SAME transaction (atomic award) → publish NATS subject `zlecenia.progress.<uuid>` and `zlecenia.complete.<uuid>` so any other backend the player is on refreshes its cached view and the GUI updates live. Because progress is clamped server-side in SQL and the daily Żeton award is enforced by SUM(quest_ledger.zetony_awarded WHERE day_epoch=today) < max_zetony_per_day inside the awarding transaction, two backends double-firing the same completion cannot double-pay (idempotency key = uuid+day_epoch+slot, UNIQUE). NATS is used for liveness/UX only; MySQL is the source of truth, so a NATS hiccup degrades to "GUI updates on next open" not "lost or duplicated rewards". Reroll and claim actions route through the konto-service via a NATS request/reply (or direct DB transaction with row lock) so only one node mutates the set. Threading: Canvas/Folia overworld — all Bukkit reads/writes happen on the region thread via EntityScheduler/GlobalRegionScheduler; ALL DB and NATS I/O is dispatched to an async executor (never block a region/tick thread). Each event listener captures only primitive deltas, hands off to async, and any resulting player-facing feedback (toast/sound) is scheduled back onto the player's EntityScheduler.
Budowa
Custom plugin, NOT a marketplace quest plugin — rationale: (a) the reward currency MUST be the bespoke non-tradeable Żetony and integrate with the existing Voyager economy + Kody patterns; (b) it must be the single-authoritative-writer over the existing NATS + shared MySQL v5 plumbing (off-the-shelf plugins assume single-server or their own backend); (c) it must be Folia/Canvas-correct (EntityScheduler, async I/O) which most quest plugins are not; (d) avoiding a Donut*-branded/any generic plugin is itself the anti-clone stance. Reuse where cheap: model the objective-pool YAML and GUI conventions on BattlePass/Tasks-Quests (Folia-safe 4.9.3+) as a reference, and reuse the network's existing NATS client, MySQL pool, presence signal (Strażnik Obecności), and AuraSkills/UniverseJobs job-XP API for the vocation tags. Modules: konto-service rollover+generation (1), backend event-listener+progress module (Folia-aware) (2), MySQL DAO with idempotent clamped UPSERT + ledger (3), NATS pub/sub adapter (4), /zlecenia GUI + Cechmistrz NPC (5), Żeton award + cap enforcement (6), streak engine + Tarcza (7). Stack: JDK21, Paper 26.1.2 backends, Canvas/Folia overworld region-thread discipline, Travertine proxy for broadcasts. Build/test with the COPYFILE_DISABLE=1 tar rule for deploys.
Szkic configu
codzienne-zlecenia.yml (sketch):

settings:
  rollover_time: "04:00"            # Europe/Warsaw, single authoritative cron on konto-service
  timezone: "Europe/Warsaw"
  daily_count: 3
  weekly_enabled: true
  weekly_reset_day: MONDAY
  claim_mode: AUTO                  # AUTO | MANUAL (manual = must press claim in /zlecenia)
  free_rerolls_per_day: 1
  reroll_costs: [50, 100, 200]      # escalating Żeton cost after free one; index = nth paid reroll
  reroll_cost_currency: "ZETONY"

caps:                               # DEFENSIVE — hard ceilings, see antiAbuse
  max_zetony_per_day: 150
  max_zetony_per_week: 300          # from weekly track only, separate bucket
  max_job_xp_per_day: 5000
  per_contract_progress_rate_limit: 64   # max progress delta accepted per single event flush
  reject_progress_if_delta_gt: 256       # tripwire: drop+log impossible jumps

streak:
  freeze_item: "TARCZA_SERII"
  max_stored_freezes: 3
  soft_decay_tiers_on_miss: 1       # never reset to 0
  tiers: { 1: ISKRA, 3: PLOMIEN, 7: OGNISKO, 14: POZAR, 30: WIECZNY_OGIEN }
  milestone_rewards:
    3:   { zetony: 20 }
    7:   { zetony: 50, freezes: 1 }
    14:  { cosmetic: "trail_iskry" }
    30:  { cosmetic: "tag_wytrwaly" }
    100: { cosmetic: "aura_wieczny_ogien" }

pools:
  daily:
    - id: drwal_drewno
      vocation: DRWAL
      difficulty: EASY               # EASY|MEDIUM|HARD -> reward tier
      weight: 10
      objective: { type: BLOCK_BREAK, match: "#minecraft:logs", amount_range: [48, 96] }
      reward: { zetony: 15, job_xp: 200 }
      name: "Leśny Urobek"
      desc: "Wyrąb {amount} drewna"
    - id: gornik_deepslate
      vocation: GORNIK
      difficulty: MEDIUM
      weight: 10
      objective: { type: BLOCK_BREAK, match: "minecraft:deepslate", amount_range: [128, 256] }
      reward: { zetony: 30, job_xp: 400 }
      name: "Głębinowy Fach"
      desc: "Wykop {amount} bloków deepslate"
    - id: rybak_polow
      vocation: RYBAK
      difficulty: EASY
      weight: 8
      objective: { type: FISH_CATCH, amount_range: [10, 20] }
      reward: { zetony: 15, job_xp: 200 }
      name: "Połów Dnia"
      desc: "Złów {amount} ryb"
    - id: lowca_zombie
      vocation: LOWCA
      difficulty: MEDIUM
      weight: 8
      objective: { type: ENTITY_KILL, match: "minecraft:zombie", time_window: NIGHT, amount_range: [20, 40] }
      reward: { zetony: 30, job_xp: 400 }
      name: "Nocne Polowanie"
      desc: "Pokonaj {amount} zombie po zmroku"
    - id: pve_miniboss
      difficulty: HARD
      weight: 4
      requires_feature: MYTHICMOBS
      objective: { type: MYTHIC_KILL, match: "StrachPustkowi", amount_range: [1, 1] }
      reward: { zetony: 60 }
      name: "Pogromca"
      desc: "Pokonaj mini-bossa: Strach Pustkowi"
    - id: social_klan
      difficulty: MEDIUM
      weight: 3
      requires_feature: CECH
      objective: { type: CONTRACT_WITH_CLANMATE, amount_range: [1, 1] }
      reward: { zetony: 35 }
      name: "Towarzysz"
      desc: "Ukończ zlecenie wspólnie z członkiem klanu"
  weekly:
    - id: weekly_gornik_glebia
      difficulty: HARD
      weight: 5
      objective: { type: BLOCK_BREAK, match: "#minecraft:base_stone_overworld", amount_range: [3000, 5000] }
      reward: { zetony: 250, freezes: 1, season_shard: 1 }
      name: "Wielkie Wydobycie"
      desc: "Wykop {amount} bloków kamienia w tym tygodniu"

scaling:
  vocation_level_bias: true          # bias pool + amount_range upward by player's top vocation lvl
  newbie_grace_below_level: 10       # never serve HARD to sub-10 accounts

gui:
  rows: 6
  title: "&6Tablica Zleceń &7(&e04:00&7)"
  layout: { daily_slots: [11,13,15], weekly_slot: [31], reroll_slot: [48], claim_slot: [50], streak_slot: [4] }

all_clear_bonus: { zetony: 25 }

KPI

  • D1 / D7 / D30 retention split by: opened /zlecenia at least once vs never (the headline causal metric)
  • % of DAU completing >=1 daily contract; % completing 3/3 dailies (daily-loop engagement)
  • Median Płomień Serii streak length + distribution across tiers (Iskra→Wieczny Ogień); Tarcza consumption rate (is freeze saving churners?)
  • Session length delta: avg minutes/session for quest-completers vs non-completers (does it lengthen sessions?)
  • Weekly contract completion rate + weekly-meta (15-dailies) completion rate
  • Reroll usage: free-reroll rate vs paid-reroll rate, and Żetony sunk into rerolls (sink health)
  • Żetony faucet/sink balance: total Żetony minted/day from quests vs spent in Szafa/rerolls/Tarcza (must trend net-neutral/deflationary)
  • Anti-abuse: count of delta-tripwire rejections/day, daily-cap-hit accounts, conservation-audit anomalies (target ~0 anomalies)
  • Vocation cross-loop lift: job-XP attributable to Kontrakty Fachowca (does the daily loop actually feed jobs?)
  • Concurrency at 04:00 rollover and at PL prime-time 19:00-21:00 (did the 'tonight' hook move the curve?)
  • Funnel drop-off: login → see board broadcast → open /zlecenia → first progress tick → first completion → claim
  • New-vs-returning: D1 of brand-new accounts that complete a daily on day 0 (onboarding signal)

Kroniki Pustkowi — sieciowe questy fabularne (Quest Lines / Campaigns) dla sieci v5 minecraft.pl. Jeden custom plugin "Kroniki" (fork wzorca Kody): MySQL-authoritative postęp questów + NATS broadcast między serwerami. NPC-narratorzy + wieloetapowe, rozgałęzione łańcuchy zadań prowadzące gracza przez survival → PvP → lochy → wyspy w ciągu tygodni. Fabuła oparta na polskim folklorze (Smok Wawelski, utopce, południce, Pustkowia). Postęp jest GLOBALNY: zacząłeś rozdział na overworldzie, dokończyłeś go w lochach — to jedno konto sieciowe, nie "serwer". Nagrody wyłącznie account-bound (Żetony Kronikarza + kosmetyki + tytuły), NIGDY zbywalna waluta — bezpiecznie po incydencie z dupem 44.8 mld.

nakład: high

Wydłużyć sesję i podnieść retencję D1/D7/D30 przez nadanie graczowi długoterminowego "horyzontu" (kilkutygodniowa fabuła z cliffhangerami), który wymusza powroty i przeprowadza go przez WSZYSTKIE serwery sieci — czyniąc opuszczenie pojedynczego serwera równoznacznym z porzuceniem całego konta. Jednocześnie zbudować najgłębszą fosę anty-klon wobec DonutSMP: klon nie ma NPC, fabuły, lochów ani lore, a "treść (nie kod) jest tym, czego konkurent nie skopiuje". KPI sukcesu: +20% mediany długości sesji u graczy z aktywnym questem, D7 retencja graczy którzy ukończyli Prolog ≥2x bazowej, ≥40% MAU z ≥1 aktywnym łańcuchem.

Pętla
PĘTLA SESYJNA (cel: wydłużyć "jeszcze jedno zadanie"): 1. Wejście → /kroniki lub auto-prompt pokazuje aktywne zadanie + [Wskaż drogę]. 2. Realizacja kroku (typy: BREAK_BLOCK, KILL_MOB/BOSS, REACH_REGION, TALK_NPC, DELIVER_ITEM, JOB_LEVEL [integracja z profesjami], DUNGEON_CLEAR, PVP_ARENA, VISIT_ISLAND, COLLECT_FISH). Postęp liczony WYŁĄCZNIE z eventów, które gracz i tak generuje — zero skanowania świata (Folia-safe). 3. Krok ukończony → natychmiastowy feedback + auto-przejście do następnego kroku tego samego rozdziału (bez pauzy — to utrzymuje flow). 4. Rozdział ukończony → nagroda account-bound + CLIFFHANGER w dialogu NPC ("...ale Smok jeszcze śpi. Wróć, gdy księżyc będzie w pełni — za 18 godzin") → świadoma zachęta do powrotu. 5. Pewne kroki mają COOLDOWN/GATE czasowy lub wymagają innego serwera → naturalnie rozkłada kampanię na tygodnie i rozprowadza graczy po sieci. PĘTLA TYGODNIOWA: nowy rozdział lub "Zlecenie Kronikarza" (cotygodniowy quest poboczny powiązany z eventami live-ops) odblokowuje się co tydzień — appointment play w polski prime-time. Akt finałowy domyka się eventem sieciowym world-bossa (Smok Wawelski) nad NATS. DLACZEGO TO RETENCYJNE: stały, rosnący "horyzont" (niedokończona fabuła to otwarta pętla psychologiczna), bramki czasowe wymuszające powroty (D1/D7), rozgałęzienia dające powód do drugiego przejścia (D30+/nowy sezon), oraz przymus zwiedzenia całej sieci (podnosi concurrency wielu serwerów naraz).
Doświadczenie gracza
PIERWSZE 90 SEKUND (onboarding): po pierwszym wejściu na hub gracz dostaje na ekranie title "Kroniki Pustkowi" i hologram nad NPC "Stary Kronikarz Borzywoj" tuż przy spawnie. Klik PPM na NPC otwiera okno dialogowe (Adventure chat z klikalnymi [Tak, słucham] / [Później]) — to jest jednocześnie tutorial wayfindingu: Borzywoj tłumaczy serwery przez fabułę ("Pustkowia rozdarły się na krainy — Osada na overworldzie, Krwawe Wzgórza gdzie leje się krew, Podziemia, Archipelag..."). Prolog (rozdział 0) to 4 mikro-zadania uczące sterowania: złam 10 bloków → zabij 3 moby → sprzedaj coś na /bazar → wejdź portalem na drugi serwer. Każdy krok kończy się soczystym feedbackiem (dźwięk, partykle, pasek postępu w bossbarze). PRZEPŁYW DŁUGOTERMINOWY: kampania to AKT (np. "Akt I: Przebudzenie Smoka"), akt dzieli się na ROZDZIAŁY (rozdział = 1 serwer-temat, 3-6 zadań), rozdziały bywają ROZGAŁĘZIONE — w pewnym węźle gracz wybiera frakcję ("Stań po stronie Strażników Świtu albo Dzieci Mroku"), co odblokowuje inny wariant kolejnego rozdziału, inny tytuł i inny finałowy kosmetyk. Wybory są trwałe (zapisane w MySQL), więc gracze porównują ścieżki — napędza to dyskusje na Discordzie i ponowne przejścia na drugą stronę w nowym sezonie. GUI: /kroniki otwiera "Księgę" (inventory GUI, Bedrock/Geyser-friendly — duże ikony, brak hover-only tekstu): lewa strona = mapa aktów (zamknięte rozdziały zaszarzone), prawa = aktywne zadanie z opisem fabularnym, licznikiem postępu i przyciskiem [Wskaż drogę] (odpala compass/partykuły do następnego NPC lub portalu). Bossbar pokazuje postęp bieżącego kroku gdy gracz go realizuje. Po ukończeniu rozdziału — pełnoekranowy title + wpis do "Kroniki" (permanentna ściana sław przy spawnie z datowanymi tytułami: "Borzywoj, Pogromca Utopców, Sezon I"). PUNKTY STYKU MIĘDZYSERWEROWE: gdy quest każe iść na inny serwer, kliknięcie [Wskaż drogę] kieruje do portalu; po przejściu przez proxy postęp jest już zsynchronizowany (gracz NIE musi nic klikać ponownie) — NATS dostarczył stan zanim zdążył dojść do NPC. To "magiczny moment": fabuła płynnie przechodzi między światami, czego klon z jednym serwerem nie zrobi.
Nagrody
FILOZOFIA: status zdobyty, nie kupiony — odwrotność DonutSMP. ŻADNA nagroda nie jest zbywalną walutą Money (twarda kwarantanna duperów). WALUTY/TYPY NAGRÓD: 1. Żetony Kronikarza — tagowana, NIEZBYWALNA waluta-punkty (tabela ledger, append-only). Wydawane wyłącznie w "Sklepie Kronikarza" na kosmetyki/QoL, nigdy wymienialne na Money. Duped Money nie kupi niczego prestiżowego. 2. Kosmetyki: smugi/aury, kapelusze, tytuły w tabie, wpisy w "Szafie Sezonowej". Finał rozdziału/aktu → ekskluzywny, "never-again" kosmetyk (FOMO + status lojalności). 3. Tytuły fabularne: "Pogromca Utopców", "Wybraniec Świtu" — widoczne nad głową/w tabie, datowane sezonem w Kronice. 4. QoL account-bound: dodatkowy /home, kosmetyczny pet-towarzysz, dostęp do strefy (klucz fabularny), NIGDY raw power/spawnery/eq do PvP. 5. Mikro-utility (świadomie "super minor", w duchu profesji): np. +1 do limitu działek, drobny kosmetyczny efekt narzędzia — bez wpływu na ekonomię/PvP balance. KRZYWA NAGRÓD (przykład Akt I, Żetony Kronikarza): - Prolog: 50 Ż + tytuł "Wędrowiec" (każdy ma poczuć progres natychmiast). - Rozdz 1-3: 75 / 100 / 150 Ż + drobny kosmetyk co rozdział. - Rozdz 4-5 (PvP/lochy, trudniejsze): 250 / 350 Ż + smuga. - Rozdz 6 / finał aktu (world-boss): 500 Ż + EKSKLUZYWNY tytuł + aura "Pogromca Smoka" (sezonowa, nigdy nie wraca). Suma sezonu ~1500 Ż — Sklep Kronikarza wyceniony tak, że ukończenie 1 aktu kupuje ~2-3 znaczące kosmetyki (poczucie wyboru, nie wszystko za darmo). SINK: Żetony to sink same w sobie (znikają przy zakupie — brak inflacji, bo nie krążą między graczami). Dodatkowo część finałowych kosmetyków wymaga "spalenia" Żetonów + rzadkiego dropu fabularnego z bossa (łączy z gospodarką deflacyjną). ANTY-P2W: premium track sezonowej Przepustki (jeśli sprzężony) daje tylko KOSMETYCZNE warianty tych samych nagród + ewentualnie "wskazówki"/skip-cooldown za drobną opłatę — nigdy fabuła ani power za płatność. Żetonów NIE da się kupić.
Anty-abuse
PROJEKT DEFENSYWNY (pamięć o dupie 44.8 mld): 1. ROZDZIAŁ NAGRÓD OD WALUTY: questy NIGDY nie wypłacają zbywalnej Money. Wyłącznie Żetony Kronikarza — tagowane, NIEZBYWALNE, wydawalne tylko w Sklepie Kronikarza na kosmetyki/QoL. Nawet gdyby ktoś zdupował postęp questa, nie zamieni go na gospodarkę. To strukturalna kwarantanna. 2. IDEMPOTENCJA NAGRÓD (token_grants UNIQUE): każda wypłata za grant_key="campaign:chapter:complete" w transakcji z INSERT do token_grants. Powtórka → 1062 → pomiń. Niemożliwe podwójne przyznanie tej samej nagrody (re-log, race między serwerami, replay NATS, restart w trakcie). 3. POSTĘP TYLKO Z REALNYCH EVENTÓW GRACZA: liczniki rosną wyłącznie z BlockBreak/EntityDeath/itp. które gracz faktycznie generuje — zero skanowania świata, zero trust-the-client. Anti-farm: integracja ze "Strażnikiem Obecności" (sygnał realnej obecności) — kroki BREAK/KILL ignorowane gdy gracz oznaczony jako AFK/autoclicker. Bloki położone-i-zbite nie liczą się (flaga placed-by-player jak w anti-cheat), by nie dało się farmić DELIVER/BREAK z pętli. 4. TWARDE LIMITY (config caps): - max_tokens_per_day (np. 800) — dzienny sufit przyznanych Żetonów per gracz; nadwyżka odrzucana + log. - max_chapter_completes_per_day — limit ukończeń rozdziałów/dobę (blokuje masowe przemiały alt-farm). - task_progress_rate_limit_per_min — sufit inkrementów/min (łapie autoclicker/dupe-spam eventów). - cooldown/gate_hours egzekwowany server-side z MySQL timestamp (nie z zegara klienta). 5. WALIDACJA WĘZŁÓW: bramki (job_level, chapter_done, server) sprawdzane autorytatywnie po stronie serwera z DB w momencie próby ukończenia — nie z lokalnego cache klienta. Wybór frakcji ostateczny (UPDATE ... WHERE branch_id IS NULL, jak setReferrerIfAbsent w Kody) — brak przełączania tam i z powrotem dla podwójnych nagród obu ścieżek. 6. TRIPWIRE / OBSERWOWALNOŚĆ: token_ledger jest append-only → łatwy audyt. Alert (Grafana/Loki) gdy: gracz przekracza X% dziennego capa, gdy SUM(delta) per gracz rośnie szybciej niż teoretyczne max sezonu, gdy ten sam grant_key próbowany >N razy (sygnał exploitu/replay). "Conservation check": suma przyznanych Żetonów sieciowo nie może przekroczyć (liczba_graczy × teoretyczny_max_sezonu) — dzienny job porównawczy. 7. ANTY-ALT: nagrody account-bound + powiązanie z Kody/kontem; podejrzane klastry altów (ta sama IP/zachowanie kończące identyczne kroki w sekundach) flagowane do ręcznej rewizji, nie auto-ban. Prolog daje mało Żetonów (50) by alt-farm Prologu był nieopłacalny. 8. SANITYZACJA INPUTU: wszystkie wartości z YAML i NATS walidowane (Zod-podobnie / ręcznie) przy ładowaniu; nieznany typ kroku/material → quest dezaktywowany z logiem, nie crash. Treść NATS traktowana jako niezaufana (podpis/whitelist subjectów, ignorowanie pól spoza schematu).
Sync sieci
MODEL: MySQL = jedyne źródło prawdy (authoritative), NATS = warstwa powiadomień/cache-invalidation (nigdy źródło prawdy). Wzorzec event-sourced, idempotentny — tak jak milestones_awarded w Kody (INSERT z unique key = brak podwójnych nagród). SCHEMAT MySQL (DB v5_kroniki, utf8mb4): - player_campaign (uuid, campaign_id, current_chapter, branch_id, status, updated_at; PK uuid+campaign_id) — bieżący stan. - task_progress (uuid, campaign_id, task_id, progress INT, goal INT, done TINYINT, updated_at; PK uuid+campaign_id+task_id) — liczniki kroków. - chapter_completions (uuid, campaign_id, chapter_id, completed_at; PK uuid+campaign_id+chapter_id) — IDEMPOTENTNY zapis ukończeń (jak milestones_awarded). - token_ledger (id BIGINT AUTO, uuid, delta INT, reason VARCHAR, source_server, ts; INDEX uuid) — APPEND-ONLY księga Żetonów; saldo = SUM(delta) lub zmaterializowane w player_tokens z wierszem-strażnikiem. - token_grants (uuid, grant_key VARCHAR UNIQUE-per-uuid, ts; PK uuid+grant_key) — DEDUPLIKACJA nagród: grant_key = "akt1:r1_cien:complete". Przyznanie Żetonów = INSERT do token_grants W TEJ SAMEJ TRANSAKCJI co wpis do ledger; duplikat (errno 1062) → nagroda już wydana, pomiń. To kluczowa bariera anty-dup. SYNC PRZEZ NATS: - Subject v5.kroniki.progress.<uuid> — publikowany po każdej zmianie stanu; inne backendy invalidują lokalny cache gracza. - Subject v5.kroniki.handoff.<uuid> — proxy/serwer źródłowy publikuje TUŻ przed przejściem gracza portalem ("idę na osada, current_chapter=r1_cien"); serwer docelowy pre-fetchuje stan z MySQL ZANIM gracz dojdzie do NPC → "magiczny moment" płynnej fabuły. - Subject v5.kroniki.boss.<campaign> — event finałowego world-bossa: jeden trigger operatora fan-out do wszystkich backendów (wspólny bossbar HP, nagrody wg progu kontrybucji). - WAŻNE: NATS dostarcza "podpowiedź odśwież się", ale autorytatywny odczyt zawsze z MySQL. Utrata wiadomości NATS = co najwyżej krótkie opóźnienie cache, nigdy utrata/podwojenie postępu (bo prawda w DB + idempotencja grantów). SPÓJNOŚĆ PRZY RÓWNOLEGŁOŚCI (gracz na 2 serwerach alt-ami / race): wszystkie inkrementy task_progress przez atomowy UPDATE ... SET progress=LEAST(goal, progress+?) WHERE ... (server-side, nie read-modify-write w pluginie). Ukończenie kroku i nagroda zawsze za bramką token_grants UNIQUE. Logout-login flush: stan zapisywany na bieżąco (per event, debounce'owany), nie tylko przy quit — przeżywa crash serwera.
Budowa
CUSTOM PLUGIN "Kroniki" — fork sprawdzonego wzorca Kody (NIE kupować Donut*-brandowanego questa = to byłoby bycie klonem; gotowe BattlePass/Tasks-Quests z Polymart NIE robią rozgałęzionej fabuły NPC ani sieciowego sync przez NATS+MySQL, więc rdzeń i tak trzeba pisać). STOS (jak Kody): JDK21, Paper API provided scope, maven-shade-plugin z relokacją sterownika MariaDB (mówi protokołem MySQL) do pl.minecraft.kroniki.libs.mariadb. Połączenia per-operacja, wszystkie wyłącznie na AsyncScheduler. Klient NATS (jnats) również shaded+relocated. OGRANICZENIA WĄTKOWE (Folia/Canvas overworld jest wielowątkowy, regionised ticking): - Kontekst encji/bloku (odczyt z eventu) zbierany NA WĄTKU REGIONU (listenery BlockBreak/EntityDeath odpalają się na właściwym wątku regionu). - MySQL → ZAWSZE AsyncScheduler (nigdy na wątku regionu — blokujące IO). - Akcje na graczu/encji po async (spawn partykuł, give kosmetyk, teleport) → wracać przez Entity.getScheduler() (EntityScheduler) dla tego gracza, NIE Bukkit.getScheduler (ten nie istnieje na Folii w starym sensie). - Komendy konsolowe nagród (np. perm/give) → GlobalRegionScheduler (jak milestoneCmds w Kody). - Czat/Adventure (dialogi, bossbar, title) → bezpieczne z dowolnego wątku. - Liczniki postępu: inkrement w pamięci na wątku regionu z eventu, ale ŹRÓDŁO PRAWDY to atomowy UPDATE w MySQL przez async (debounce, np. flush co N zmian lub co 5s) — by nie zgubić postępu przy crashu i nie hamować ticka. - Backendy nie-Folia (Paper 26.1.2: lochy, wyspy, PvP) używają tych samych API (Folia API jest nadzbiorem zgodnym na Paperze) — jedna baza kodu działa wszędzie. NPC: zalecane Citizens (jeśli Folia-zgodny w wersji docelowej) albo lekki własny hologram+interakcja przez PacketEvents/ProtocolLib (klik = wywołanie eventu interakcji). Dialog GUI: natywne Inventory GUI (Bedrock/Geyser-friendly), bez bibliotek hover-only. KAMPANIE: data-driven YAML (jak wyżej), ładowane i walidowane przy starcie i /kroniki reload — projektant fabuły pisze treść bez kompilacji. Silnik kroków = mapa typ→handler (BREAK_BLOCK, KILL_MOB, REACH_SERVER...), łatwo rozszerzalny. INTEGRACJE: hooki do systemu profesji (job_level gate), Kody (konto/anty-alt), bazaru (flagi sprzedaży przez NATS), Strażnika Obecności (anti-AFK), Zgłoszeń (raport buga w queście). Sklep Kronikarza wydaje permy przez LuckPerms API — UWAGA: zgodnie z regułą zespołu NIE modyfikować LuckPerms bezpośrednio, używać wyłącznie publicznego API do nadania węzła, nigdy ręcznych zmian w wspólnej konfiguracji. WALIDACJA PRZED WDROŻENIEM: build JDK21, test na pojedynczym backendzie (hub) → dwa backendy (sync NATS) → pełny rollout. Polski tekst przez polish-content-validator. Deploy wzorcem deploy_kody.py.
Szkic configu
Definicje kampanii w plikach YAML (data-driven, hot-reloadowalne przez /kroniki reload — wzorzec greload/Kody). Postęp gracza WYŁĄCZNIE w MySQL. Przykład:

# campaigns/akt1_przebudzenie.yml
campaign:
  id: akt1_przebudzenie
  display: "&6Akt I: Przebudzenie Smoka"
  season: 1
  active: true                  # archiwizacja: false po sezonie (przechodni, bez sezon. kosmetyków)
  start_chapter: prolog

chapters:
  prolog:
    display: "&eProlog: Wędrowiec"
    server: hub                 # krok wykonalny na tym backendzie; null = dowolny
    npc_start: borzywoj
    tasks:
      - id: p_break
        type: BREAK_BLOCK
        material: ANY_LOG
        amount: 10
        bossbar: "Wyrąb 10 kłód  &7({progress}/{goal})"
      - id: p_kill
        type: KILL_MOB
        mob: ZOMBIE
        amount: 3
      - id: p_sell
        type: COMMAND_FLAG       # ustawiany przez inny plugin po sprzedaży na /bazar (event NATS)
        flag: bazar.first_sale
      - id: p_portal
        type: REACH_SERVER
        target: osada
    on_complete:
      tokens: 50
      title: "Wedrowiec"
      next: r1_cien
      cliffhanger: false

  r1_cien:
    display: "&eRozdzial I: Cien nad Osada"
    server: osada
    npc_start: swietomir
    requires: { chapter_done: prolog }
    tasks:
      - { id: r1_logs, type: DELIVER_ITEM, item: OAK_LOG, amount: 32, to_npc: swietomir }
      - { id: r1_kill, type: KILL_MOB, mob: PILLAGER, amount: 15 }
    on_complete:
      tokens: 150
      cosmetic: smuga_switu
      cliffhanger: "&7Smok jeszcze spi... wroc za &e18 godzin&7."
      gate_hours: 18                 # bramka czasowa
      next: r2_rozdroze

  r2_rozdroze:
    display: "&eRozdzial II: Rozdroze"
    server: krwawe_wzgorza
    requires: { chapter_done: r1_cien, job_level: { gornik: 15 } }   # bramka systemowa
    decision:                         # WEZEL ROZGALEZIENIA
      prompt: "Komu zaufasz?"
      branches:
        swit:  { display: "Straznicy Switu", title: "Wybraniec Switu", next: r3a_swit }
        mrok:  { display: "Dzieci Mroku",   title: "Sluga Mroku",     next: r3b_mrok }

rewards_shop:                         # Sklep Kronikarza — sink Zetonow
  smuga_switu_premium: { cost_tokens: 300, type: COSMETIC, bound: true }
  extra_home:          { cost_tokens: 500, type: PERM, node: "essentials.sethome.multiple.+1" }

caps:                                 # ANTY-ABUSE (patrz anti-abuse)
  max_tokens_per_day: 800
  max_chapter_completes_per_day: 6
  task_progress_rate_limit_per_min: 120

# config.yml (połączenia — wzorzec Kody)
database: { host: "...", port: 3306, name: v5_kroniki, user: "...", pass: "..." }
nats:     { url: "nats://...", subject_prefix: "v5.kroniki" }
server_id: osada                      # tożsamość backendu (z env/proxy)

KPI

  • Mediana długości sesji u graczy z aktywnym łańcuchem vs bez (cel: +20%) — instrumentować czas sesji z tagiem has_active_campaign w token_ledger/event logu, dashboard Grafana.
  • D1/D7/D30 retencja graczy, którzy ukończyli Prolog vs ogół (cel D7 ≥2x bazowej) — kohorta po pierwszym wpisie chapter_completions(prolog).
  • Funnel ukończeń rozdziałów: % graczy na każdym kroku/rozdziale (drop-off) — z task_progress/chapter_completions; wskazuje który rozdział za trudny/za nudny do retuningu.
  • % MAU z ≥1 aktywnym łańcuchem (cel ≥40%) — distinct uuid w player_campaign status=active / MAU.
  • Cross-server reach: % graczy questowych, którzy odwiedzili ≥3 z 5 krain w sezonie — z source_server w ledger/REACH_SERVER; mierzy czy questy realnie rozprowadzają po sieci (główny cel concurrency).
  • Powroty po bramce czasowej: % graczy wracających w oknie po cliffhangerze (gate_hours) — login w [gate_end, gate_end+24h]; mierzy siłę 'horyzontu' jako D1 lever.
  • Rozkład wyboru frakcji + % graczy przechodzących drugą ścieżkę w kolejnym sezonie (replayability / D30+).
  • Czas do ukończenia Aktu I (mediana, dni) — czy kampania realnie rozciąga się na docelowe 6-10 tyg, czy gracze ją 'spalają' za szybko (retuning bramek).
  • Żetony: dzienny rozkład przyznań vs cap, liczba odrzuceń przez cap, liczba kolizji token_grants (>0 stale = sygnał exploitu/replay) — tablica anty-abuse.
  • Wskaźnik onboardingu: % nowych graczy kończących Prolog w pierwszej sesji (cel ≥70%) — krytyczny dla całego lejka, bo bez Prologu nie wejdą w kampanię.

Zawody (Vocations / Jobs)

nakład: high

Lengthen sessions and lift D1/D7/D30 retention by giving every player a persistent, network-wide "I'm THE górnik" mastery identity that survives logouts and server-hops, while breaking the DonutSMP-clone identity. Rewards are time-invested status (titles, badges, access, cosmetics) and an account-bound currency — never tradeable money — turning the 44.8B dupe scar into a trust differentiator.

Pętla
Do an action you already enjoy → server validates it on the owning region thread → award vocation XP + a small non-tradeable Żeton (capped/hr+/day) → XP ticks the boss-bar → cross a threshold = level up → level grants a perk (ability / recipe / zone access / tiny % boost) + maybe a Polish rank title → the perk makes the same action slightly more rewarding, gently accelerating the next loop → at L100, Odrodzenie rebirth resets level for permanent unbuyable prestige, restarting the climb. Per-hour Żeton cap creates a "cap out before logging" session-extender; the multi-week level curve is the long-horizon return reason. Vocation-tagged daily quests and clan-treasury cuts wire this loop into the daily and social loops; skill-gated zones pull players across servers.
Doświadczenie gracza
First session: spawn NPC "Cechmistrz Borut" opens a clean "Wybierz swój fach" GUI (Bedrock/Geyser get a forms fallback — no chat-only flows). Hold up to 2 active vocations (3 with premium pass), swap once/24h so it's a real identity choice. Eight launch vocations: Górnik, Drwal, Rybak, Farmer, Łowca, Kowal (craft/smithing/anvil), Handlarz (villager trades + Bazar sales), Alchemik (brew/enchant). Moment-to-moment: each relevant action pops a throttled actionbar "+Górnik 12 XP" (batched ~1/s, never per-block) and ticks a boss-bar; a level fires a localized title "Awans! Górnik — poziom 23" + sound and silently grants the next perk. No spam. Identity payoff: Polish rank titles, a colored tab/nametag badge, a lobby "Tablica Mistrzów" hologram showing the network's top player per vocation updated live over NATS, and at cap an Odrodzenie rebirth for a permanent star + tool-skin. Perks are deliberately underwhelming alone but compound into felt expertise and unlock ACCESS (skill-gated zones) which is the real pull. /zawody opens the hub (vocations, levels, XP-to-next, perks, daily Żetony vs cap, prestige tab); /zawody top <fach> shows leaderboards; all readable on Bedrock.
Nagrody
Three non-money channels, dupe-contained. (1) XP→Levels→Perks: super-minor, hard-capped — double-drop chance +0.25%/level capped +15% (and capped by an hourly economic-value ceiling), Bazar sell bonus capped +5% on that vocation's player-market goods only (never NPC sinks), short on-cooldown active abilities (only 3 equippable slots), plus recipes and skill-gated ZONE ACCESS where the real motivation lives. (2) Żetony Fachu: account-bound currency, tiny per-action rate, hard-capped/hr+/day, spent only on cosmetics/convenience (tool skins, trails, titles) — never power. (3) Prestige/status: Odrodzenie rebirth gives a permanent star, tool-skin token, one micro-passive (+1%/prestige, capped +5%, still under the global hourly cap) and a dated Tablica Mistrzów entry; top-N per vocation earn an elite seasonal trail money cannot buy. Curve front-loads early levels for the D1 dopamine, then stretches to months for the D30 horizon.
Anty-abuse
Designed defensively because of the prior 44.8B dupe. Vocations must NEVER be a money faucet or a dupe laundromat. 1) NO TRADEABLE MINTING. Vocations never create Money in the Voyager economy DB. The only currency they mint is Żetony Fachu — account-bound, non-tradeable, non-droppable, stored in a separate table. A duped Money balance cannot buy a single vocation title; vocation prestige is structurally outside the exploitable economy. This is the core containment. 2) SERVER-SIDE EVENT VALIDATION ONLY. XP is granted strictly from authoritative server events (BlockBreakEvent with getDrops, PlayerFishEvent CAUGHT state, EntityDeathEvent with valid killer, CraftItemEvent, BrewEvent) on the owning region thread. Never from client packets, never from periodic world scans (also Folia-illegal). Player-placed-then-broken blocks are tagged (PDC / placed-block set) and grant ZERO XP/Żetony — kills the place-and-break cobble/sapling exploit. 3) HARD CAPS, ENFORCED IN SQL: Żetony per-hour (400) and per-day (2500); bonus-drop economic value per hour (1500 base units) so even a maxed +15% double-drop cannot flood goods; XP-per-hour soft cap (beyond 12k/hr XP gain halves) to blunt macro/autoclicker farms. Caps are checked with conditional UPDATEs in MySQL so concurrent multi-server crediting cannot exceed them. 4) DIMINISHING RETURNS on identical actions (decay to 0.25x after 8 identical actions/min) — defeats AFK water-aqueduct fishing macros, sugarcane/bamboo towers, and 1-block cobble loops without banning them. 5) PRESENCE GATE. Hook the network "Strażnik Obecności" anti-AFK signal: no genuine-presence signal → XP and Żeton accrual paused. AFK pools, alt armies, and autoclickers earn nothing. 6) APPEND-ONLY LEDGER + TRIPWIRES. Every award is a row in zawody_ledger (idempotency_key UNIQUE). A scheduled conservation check sums minted Żetony vs accrual rules per window; any account exceeding mathematically-possible earnings (the next-dupe signature) is flagged to staff in minutes (Grafana/Loki alert) and its accrual auto-frozen pending review. Because XP/Żetony are append-only and capped, a future exploit is contained to one season's vocation cosmetics, never the real economy. 7) IDEMPOTENCY ON SYNC. Duplicate NATS deliveries or server-hop races cannot double-credit (UNIQUE idempotency_key). Rollbacks are possible by replaying/reverting ledger rows. 8) PERK CEILINGS. Sell bonus applies ONLY to player-market (Bazar) sales of that vocation's own goods, capped +5%, never to infinite NPC sinks — so it cannot be combined with an NPC sell-wand to print money.
Sync sieci
NETWORK-WIDE SYNC over the existing v5 plumbing (NATS + shared MySQL), one authoritative account: DATA MODEL (shared MySQL, the source of truth — never trust the client): - zawody_player (uuid PK, last_seen) — one row per player. - zawody_vocation (uuid, vocation, xp BIGINT, level INT, prestige INT, active BOOL, slot_abilities JSON, PRIMARY KEY(uuid,vocation)). - zawody_ledger (id BIGINT PK AUTO, uuid, vocation, delta_xp INT, delta_zetony INT, source ENUM, server_id, region_thread_id, ts, idempotency_key UNIQUE) — append-only, the anti-dupe spine and audit trail. - zawody_zetony (uuid PK, balance BIGINT, earned_today INT, earned_hour INT, window_reset_ts) — account-bound currency, not in the Voyager economy DB at all. - zawody_leaderboard_cache (vocation, uuid, level, prestige, rank) — refreshed periodically for holograms. WRITE PATH: XP/Żeton awards are computed on the OWNING server's region thread (Folia/Canvas) but the DB write is dispatched to an async executor (never block the region thread on JDBC). Each award is an idempotent UPSERT keyed by idempotency_key (uuid+source+monotonic action seq) so a retry/duplicate NATS delivery can never double-credit. The DB enforces caps with a conditional UPDATE (e.g. only add Żetony if earned_hour+delta <= cap) — the cap is enforced in SQL, not just in memory, so two servers crediting concurrently cannot both pass the ceiling (last-writer reads authoritative remainder). SYNC PATH (NATS): on level-up / prestige / rank change / leaderboard delta, the owning server publishes a compact event to subjects like zawody.level.<uuid>, zawody.prestige.<uuid>, zawody.lb.<vocation>. Other backends subscribe and update their in-memory cache + holograms + tab badges in real time. When a player switches servers (proxy = Travertine), the target server does an authoritative DB read on join (not a NATS-state trust) and hydrates the session; NATS is for live cross-server REACTIONS (leaderboard overtakes, "Wielki Mistrz X just prestiged" broadcasts), MySQL is for STATE. This split means a missed NATS message degrades gracefully (cache is slightly stale, corrected on next read) and never corrupts the account. CONCURRENCY: a player is realistically on one backend at a time; alts/duplicate sessions are resolved by the proxy. The ledger's UNIQUE idempotency_key plus SQL-side cap checks make even a race (e.g. fast server-hop) safe. Writes are batched (flush every ~2s or N events) to keep MySQL load sane at concurrency.
Budowa
Buy a Folia-NATIVE skills engine as the per-server XP/level/perk substrate (AuraSkills or UniverseJobs — NOT Jobs Reborn, which is not Folia-safe and breaks on the Canvas regionised overworld) and author all 8 Polish vocation definitions, XP tables, ranks, abilities and the super-minor boost tuning yourself in config. Write a CUSTOM companion plugin "Zawody-Sync" (JDK21, Paper 26.1.2, Folia/Canvas-aware) for the parts no off-the-shelf plugin provides: one MySQL-authoritative account, NATS live cross-server level/prestige/leaderboard events, a separate account-bound Żetony wallet quarantined from the Voyager economy, and an append-only ledger with SQL-enforced caps + conservation tripwires. Threading: handle gameplay events on the owning region thread, do all JDBC + NATS on async/global schedulers (HikariCP), never block the region thread; use Folia Region/EntityScheduler for any follow-up world/entity touch; no world-scanning. Reuse PlaceholderAPI (tab/nametag badges), DecentHolograms-Folia (Tablica Mistrzów), Geyser forms fallback for Bedrock GUIs. Phase v1 (4 vocations + MySQL persistence + caps + Żetony) → v2 (NATS sync + holograms + remaining vocations + abilities) → v3 (Odrodzenie prestige + skill-gated zones + clan hook + tripwires).
Szkic configu
zawody.yml (Folia-safe, all tunables hot-reloadable via greload-equivalent; no values hardcoded):

settings:
  max-active-vocations: 2          # premium pass = 3
  swap-cooldown-hours: 24
  bedrock-forms-fallback: true     # Geyser GUI
xp:
  curve: "80 * L^1.45"             # parsed at load; cap level below
  level-cap: 100
  identical-action-window-sec: 60
  identical-action-decay:         # anti-AFK diminishing returns
    after: 8                       # 8 identical actions/min
    multiplier: 0.25
    recover-per-sec: 0.05
caps:                              # ANTI-ABUSE (see guardrails)
  zetony-per-hour: 400             # account-bound currency hard ceiling/hr
  zetony-per-day: 2500
  bonus-drop-value-per-hour: 1500  # max base-unit worth of perk drops/hr
  xp-per-hour-soft: 12000          # beyond this, XP gain *0.5 (afk/macro guard)
perks:
  double-drop-per-level-pct: 0.25
  double-drop-cap-pct: 15.0
  sell-bonus-cap-pct: 5.0          # player-market only, this vocation's goods
  ability-slots: 3
prestige:
  enabled-at-level: 100
  permanent-doubledrop-per-prestige-pct: 1.0
  permanent-doubledrop-cap-pct: 5.0
  reclimb-xp-discount-per-prestige: 0.10   # max 0.5
vocations:
  gornik:
    display: "Górnik"
    ranks: { 1: "Nowicjusz", 10: "Czeladnik", 25: "Towarzysz Fachu", 50: "Mistrz", 75: "Arcymistrz", 100: "Wielki Mistrz Górnictwa" }
    xp-sources:
      block-break:
        STONE: 1
        IRON_ORE: 5
        DEEPSLATE_DIAMOND_ORE: 30
        ANCIENT_DEBRIS: 40
    abilities:
      zyla: { unlock-level: 5, effect: "haste:1", duration-sec: 30, cooldown-sec: 240, display: "Żyła" }
    zone-access: { 15: "kopalnia_gleboka", 50: "stratum_diamentowe" }
  drwal:
    display: "Drwal"
    xp-sources: { block-break: { OAK_LOG: 2, DARK_OAK_LOG: 3, CHERRY_LOG: 3 } }
  rybak:    { display: "Rybak",    xp-sources: { fish-catch: { COD: 3, SALMON: 6, TREASURE: 25 } } }
  farmer:   { display: "Farmer",   xp-sources: { harvest: { WHEAT: 2, CARROTS: 2, MELON: 1 } } }
  lowca:    { display: "Łowca",    xp-sources: { mob-kill: { ZOMBIE: 3, SKELETON: 3, WITHER_SKELETON: 20 } } }
  kowal:    { display: "Kowal",    xp-sources: { craft: { IRON_PICKAXE: 4, NETHERITE_AXE: 40 }, smithing-use: 12 } }
  handlarz: { display: "Handlarz", xp-sources: { villager-trade: 5, bazar-sale: 3 } }
  alchemik: { display: "Alchemik", xp-sources: { brew: { potion: 8 }, enchant: 6 } }
messages:                          # Polish copy WITH diacritics
  choose-prompt: "&eWybierz swój fach u Cechmistrza!"
  level-up: "&6Awans! &e{vocation} &7— poziom &a{level}"
  rank-up: "&6Zostałeś &e{rank}&6!"
  cap-hour: "&7Osiągnąłeś godzinny limit Żetonów Fachu. Wróć później!"
  prestige: "&dOdrodziłeś się! &7{vocation} — Odrodzenie {roman}"
  swap-cooldown: "&cFach możesz zmienić raz na 24h. Pozostało: {time}"

messages.yml lives separately so copywriters edit Polish without touching logic.

KPI

  • D1/D7/D30 retention split by has-vocation vs no-vocation (primary success signal: vocation cohort should retain materially higher)
  • Median + p75 session length, segmented by number of active vocations and by vocation level bracket (does mastery deepen sessions?)
  • Vocation adoption rate: % of new players who pick a vocation in session 1 (target the Cechmistrz pick-rate)
  • Average highest vocation level per WAU + distribution (detect a too-fast cap or a too-slow grind wall)
  • Prestige (Odrodzenie) rate among players who hit L100 — measures whether the long-horizon flex actually pulls
  • Concurrent-players at PL prime time (19:00-21:00) vs baseline after launch
  • Żetony minted/hour & /day per player vs caps — must sit safely under ceilings (anti-inflation + anti-dupe health)
  • Conservation-tripwire firing rate / count of accounts auto-frozen for impossible earnings (security KPI)
  • Cross-loop attach: % of daily-quest completions that are vocation-tagged contracts; clan-treasury inflow from vocation activity
  • DB/NATS health: region-thread block time on award path (must be ~0), NATS event delivery latency for live leaderboard updates

Drobne Wzmocnienia (Minor Boosts) — a network-wide engine of small, stackable, time-limited buffs earned from jobs/quests/streaks/events. Buffs are pure quality-of-life accelerators (gather/XP/luck/comfort), never combat power and never raw money. One MySQL-authoritative ledger + NATS live sync makes a player's active boost stack identical on every v5 backend. Hard tier caps + per-category aggregate caps + a global multiplier ceiling keep PvP and the economy un-warpable; every payout/sink is server-validated and append-only so it is structurally dupe-proof. Custom Folia-aware plugin "WzmocnieniaCore" (build on UniverseJobs/AuraSkills + BattlePass/Tasks-Quests as content emitters).

nakład: high

Increase session length and D1/D7/D30 retention by giving players a visible, always-progressing "I'm earning toward something right now" layer, while moving identity away from DonutSMP — boosts reward TIME PLAYED and mastery, are cosmetic/utility only (cannot be bought, cannot affect PvP, cannot mint currency), and are uniform across the whole network so leaving any one server means abandoning your whole live stack.

Pętla
PLAY an action (mine/fish/farm/quest) -> the owning job/quest/streak module emits a "grant boost" intent -> WzmocnieniaCore validates it server-side (presence check, source cooldown, daily grant ledger) -> writes one append-only row to MySQL boost_grants and recomputes the player's capped active stack -> publishes the new stack over NATS subject `v5.boost.stack.<uuid>` -> every backend the player could be on applies the SAME effective multipliers -> the boost visibly accelerates the next chunk of grinding (faster job XP, better gather luck, more comfort) -> that faster progress completes the next contract/streak tick -> which grants the next boost. The loop is deliberately short (a boost lasts 15-30 min of ACTIVE play) so there is always a near-term "keep playing to not waste it / keep playing to chain the next one" pull, but capped so it can never snowball.
Doświadczenie gracza
A player opens /wzmocnienia (alias /boosty) and sees a clean GUI of their ACTIVE buffs with live countdowns, plus a passive "Stała Premia" panel showing the tiny permanent perks their job mastery has unlocked. Buffs arrive as small, frequent, celebrated drops: finish a daily contract -> "+15% Doświadczenie Zawodowe na 20 min"; hit a 7-day login streak -> "Tarcza Skupienia: -10% głodu na 30 min"; górnik reaches Mistrz -> permanent "Wprawne Ręce: +5% szansy na podwójny urobek (twardy limit)". Bedrock/Geyser players get the same via a forms-based menu (no hover tooltips). Crucially everything is framed as comfort and speed of the GRIND, never as winning a fight: there is NO damage boost, NO defense boost, NO speed-in-combat, NO extra hearts. A small actionbar pip ("◈ x3 aktywne") follows the player across servers so the stack feels alive and portable. Active boosts pause (do not burn) while the player is offline or flagged AFK, so logging in always feels rewarding rather than punishing missed time.
Nagrody
Boosts are the reward and they are strictly utility/cosmetic. Categories and their HARD aggregate caps (sum across ALL active sources, enforced at apply-time): JOB_XP max +40%; GATHER_LUCK (double-drop/rare-node chance) max +15 percentage points; VANILLA_XP (orb XP) max +30%; COMFORT (hunger/saturation reduction, mild haste WHILE mining only, faster own-plot crop growth) max +25%; FORTUNE_FISH (treasure weight) max +20%; SELL_BONUS capped at a token +5% AND paid only in non-tradeable Żetony, never into tradeable Money. A GLOBAL ceiling caps the multiplicative product within each category so two maxed sources overlap rather than stack past the cap. Permanent mastery perks are even smaller (e.g. +5% double-drop) and ALSO count against the same category cap, so maxed permanent + maxed temp lands exactly on the cap, never beyond. BANNED forever: combat damage, armor/defense, PvP movement speed, max-health/hearts, knockback, in-combat regen, and any direct currency mint — this is the structural guarantee boosts never decide a fight or inflate the economy.
Anty-abuse
Designed defensively around the prior ~44.8B dupe — the rule is "the server never trusts a client, an in-memory counter, or a single NATS delivery." Guardrails: (1) IDEMPOTENT APPEND-ONLY LEDGER — every grant is INSERT into boost_grants with a UNIQUE idempotency_key derived from (uuid, source_type, source_id, time-bucket); a redelivered NATS message or a double-firing event collapses to one row, so boosts cannot be duplicated by replay. (2) SINGLE WRITER PER PLAYER — the proxy elects one authoritative ledger-writer backend per online player; all other backends apply read-only stacks, eliminating cross-server write races (the class of bug that enabled the currency dupe). (3) PER-SOURCE / PER-DAY GRANT BUDGET — boost_grant_budget caps how many of each source a player can receive per day; exceeding it is rejected and logged as a tripwire. (4) APPLY-TIME CLAMP — the effective stack is recomputed and CLAMPED to category caps every time it is applied; an invariant check asserts no boost_active row's summed magnitude exceeds its cap, and any violation is auto-revoked and alerted (target: zero violations). (5) PRESENCE-GATED BURN — boosts decrement only while Strażnik Obecności confirms genuine presence, killing autoclicker/AFK-pool/water-macro farming. (6) NON-TRADEABLE / NO-MINT — boosts never mint Money; the only currency they touch is account-bound Żetono via a token +5% sell bonus, so even a hypothetical boost exploit cannot inflate the tradeable economy or be laundered. (7) FULL AUDIT TRAIL — boost_grants is the immutable record; every grant/revoke is queryable for forensic replay, and conservation/anomaly tripwires (grants over budget, idempotency collisions, blocked redeliveries, cap violations, Żetony mint rate) are instrumented as KPIs so the NEXT exploit is caught in minutes, not after 44.8B.
Sync sieci
Network-wide via shared MySQL (authority) + NATS (live propagation) on the v5 stack. A player's boost stack is global: MySQL boost_grants/boost_active is the single source of truth; on login/server-switch the destination backend reads boost_active and applies the identical capped stack, so the buffs you earned on survival are live on PvP, minigames, anywhere. Real-time changes flow over NATS: a grant intent is published to `v5.boost.grant` (request/reply, must be acked by the elected writer), the writer performs the idempotent INSERT, recomputes the capped stack once, and fans the authoritative result out on `v5.boost.stack.<uuid>`; every backend subscribed for that player applies it on the player's EntityScheduler. The proxy (Travertine) assigns exactly one ledger-writer backend per online player to serialize writes and prevent the cross-server race that caused the 44.8B dupe; failover re-elects on disconnect. Expiry is computed from active-play accounting (presence-gated), and because timestamps/active-ms live in MySQL, a server hop or crash never loses or double-counts remaining boost time. Admin `v5.boost.revoke` can pull a boost network-wide instantly. This makes the product feel like one persistent network account: your live boost stack follows you, and leaving any single server means abandoning the whole stack.
Budowa
Custom Folia-aware plugin "WzmocnieniaCore" (JDK21, Paper 26.1.2 API), NOT a bought "boost" plugin. BUY the content emitters you already planned — UniverseJobs or AuraSkills (Folia-native) for vocations and BattlePass/Tasks-Quests (Folia-safe 4.9.3+) for quests/streaks — and have them call WzmocnieniaCore via a thin internal API/event rather than granting effects themselves, so ALL caps, ledgers and sync live in one authoritative place. Architecture: (1) MySQL is the single source of truth — append-only `boost_grants` (id, uuid, source_type, source_id, category, magnitude_bp, duration_active_ms, granted_at, idempotency_key UNIQUE) + derived `boost_active` snapshot + per-day `boost_grant_budget` (uuid, day, source_type, count) for grant-rate ceilings. Never trust a client or in-memory counter — every grant is an idempotent INSERT keyed by idempotency_key so a NATS redelivery or a double-fire cannot double-grant (this is the direct lesson of the 44.8B dupe). (2) NATS subjects: `v5.boost.grant` (intent, request/reply with ack), `v5.boost.stack.<uuid>` (authoritative recomputed stack fan-out), `v5.boost.revoke` (admin/anti-abuse). One backend is elected ledger-writer per player (proxy-assigned) to serialize writes; others apply read-only stacks. (3) Folia/Canvas threading: the survival overworld is regionised multi-threaded — NEVER world-scan and NEVER touch a player from an arbitrary thread. All boost application/expiry runs on that player's EntityScheduler; grant intents are emitted from the block-break/fish/kill/quest events the player already fires (which run on the owning region thread); MySQL and NATS I/O run OFF the main/region threads on an async executor, hopping back to the EntityScheduler to apply effects. Effects implemented as: job/quest XP multipliers via the emitter's API; GATHER_LUCK/FORTUNE_FISH via drop-event modification on the region thread; COMFORT haste via a short re-applied PotionEffect scoped to mining only; crop growth via per-plot metadata, not a global ticker. Active-time accounting is server-side: boosts decrement only while Strażnik Obecności reports genuine presence. Effort split roughly: schema+ledger+idempotency 25%, NATS sync+writer election 25%, Folia-safe effect application 25%, GUI (Java + Bedrock forms) + Polish copy + emitter wiring 25%.
Szkic configu
# WzmocnieniaCore/config.yml  (Paper 26.1.2, JDK21, Folia-aware)
network:
  ledger-writer-election: proxy   # proxy assigns one authoritative writer per player
  nats:
    grant-subject: "v5.boost.grant"          # request/reply, must be acked
    stack-subject-prefix: "v5.boost.stack."  # + uuid, authoritative fan-out
    revoke-subject: "v5.boost.revoke"
  mysql:
    table-grants: boost_grants        # append-only, UNIQUE(idempotency_key)
    table-active: boost_active        # derived snapshot, never hand-edited
    table-budget: boost_grant_budget  # per uuid/day/source grant-rate ceiling

presence:
  require-signal: true                # Strażnik Obecności must confirm presence
  pause-when-afk: true                # boosts pause, do not burn, while AFK/offline

# HARD aggregate caps — sum of ALL active sources, clamped at apply-time
categories:
  JOB_XP:       { cap_bp: 4000, model: percent }     # +40%
  VANILLA_XP:   { cap_bp: 3000, model: percent }     # +30%
  GATHER_LUCK:  { cap_bp: 1500, model: points }      # +15 pp double-drop chance
  FORTUNE_FISH: { cap_bp: 2000, model: points }      # +20 pp treasure weight
  COMFORT:      { cap_bp: 2500, model: percent }     # +25% (mining-only haste/hunger)
  SELL_BONUS:   { cap_bp: 500,  model: percent, payout: ZETONY_ONLY } # +5%, non-tradeable
global:
  max-active-per-category: 6          # overlap, never add past cap
  max-active-total: 12
  combat-effects-allowed: false       # ENFORCED: no damage/armor/speed/hearts/knockback/regen

# Rarity scales duration/magnitude modestly, NEVER past category cap
rarities:
  POSPOLITE:  { mult: 1.0 }
  NIEZWYKLE:  { mult: 1.2 }
  RZADKIE:    { mult: 1.5 }
  EPICKIE:    { mult: 2.0 }

sources:
  DAILY_CONTRACT:  { category: JOB_XP,     base_bp: 1500, active_ms: 1200000, per_day_max: 3 }
  STREAK_7:        { category: COMFORT,    base_bp: 1000, active_ms: 1800000, per_day_max: 1 }
  WORLD_BOSS:      { category: GATHER_LUCK, base_bp: 500,  active_ms: 1800000, per_day_max: 2 }
  MASTERY_MISTRZ:  { category: GATHER_LUCK, base_bp: 500,  permanent: true }   # counts vs cap

messages:
  prefix: "&8[&6Wzmocnienia&8] "
  granted: "&aZdobyto wzmocnienie: &f{name} &7({magnitude} na {duration})"
  capped:  "&eOsiągnięto limit kategorii &f{category}&e — nowe wzmocnienie nakłada się, nie sumuje ponad limit."
  paused:  "&7Twoje wzmocnienia są wstrzymane (jesteś AFK) — nie marnują się."
  expired: "&7Wygasło wzmocnienie: &f{name}"
# Example active buff names (proper diacritics):
#   "Doświadczenie Zawodowe", "Tarcza Skupienia", "Wprawne Ręce",
#   "Szczęście Górnika", "Błogosławieństwo Wisły", "Sytość Wędrowca"

KPI

  • D1/D7/D30 retention of players who received >=1 boost vs control cohort (primary success metric)
  • Median active session length, segmented by 'had an active boost' vs 'no active boost' during the session
  • Boost-chain rate: % of expiring boosts replaced by a new grant within 10 min of active play (measures the 'keep playing' pull)
  • Daily contracts completed per active player and login-streak distribution (3/7/14/30/100-day buckets)
  • Category-cap saturation: % of active players hitting each aggregate cap (tunes whether caps are too generous/stingy)
  • Vocation mastery funnel: players reaching Czeladnik/Mistrz/Arcymistrz per week (permanent-perk adoption)
  • Anti-abuse tripwires: grants exceeding per-source/per-day budget, idempotency-key collision count, NATS redelivery double-grant attempts blocked, and any boost_active row whose summed magnitude > category cap (must be 0)
  • Economy guardrail: Żetony minted via SELL_BONUS per day and confirmation that tradeable Money supply is unaffected by boost activity (conservation check vs the 44.8B scar)
  • Bedrock/Geyser vs Java parity: boost GUI open rate and completion by platform
  • ARPU-neutral check: confirm retention lift is not correlated with any purchasable item (proves the system is non-P2W)

SZLAK — Network-Wide Progression Spine for v5 (minecraft.pl). A single custom Folia-aware Paper plugin (pl.minecraft.szlak) that is the ONE meta-loop binding daily-login + dailies + jobs/profesje + quest-lines + battle-pass (Przepustka) into a coherent daily->weekly->seasonal loop, synced across every v5 backend via NATS + shared MySQL. It is the player's persistent "Konto Sieciowe": one event-sourced account whose progress updates live on every server. Every reward routes through a tagged, non-tradeable currency (Punkty Szlaku / "PS") so the 44.8B dupe class can never buy prestige. ARCHITECTURE (5 layers, all in one plugin, one shaded jar): 1. KONTO (identity): MySQL-authoritative player row + event ledger. No client-trusted increments; every XP/PS grant is an append-only ledger event with an idempotency key. 2. ZRODLA (sources): thin listeners that turn gameplay into normalized "EngagementEvent" objects — block-break/fish/mob-kill (profesje), quest objective ticks, login. On the Canvas/Folia overworld these listeners run on the OWNING REGION thread and do ZERO world-scanning; they only read the event Bukkit already handed them, then hand off async. 3. SILNIK (engine): consumes EngagementEvents, applies caps, advances objectives, computes PS/XP deltas, writes the ledger. Single source of truth for the reward curve. 4. PRZEPUSTKA (battle pass): the SEASONAL spine. Daily quests -> weekly quests -> long quest-lines (Kroniki) -> profesje milestones ALL emit "Przepustka XP" (PX) into the same season track. PX comes ONLY from playing, never paying. Free + Premium tiers; Premium unlocks more reward slots, never more power. 5. SYNC (NATS): subjects szlak.account.<uuid>.delta, szlak.season.event, szlak.leaderboard.tick. Authoritative writer is whichever backend processed the event; others receive deltas to refresh holograms/scoreboards. MySQL is the durable truth; NATS is the live nervous system. THE INTERLOCK (why it is a system, not features): login refreshes the daily board AND ticks the streak (Plomień Serii); daily quests are TAGGED to professions so doing them levels a profesja; profesja levels and quest completions both feed Przepustka XP; the weekly quest-line (Kronika Tygodnia) requires completing N dailies, chaining the cadences; the season caps everything and is the only thing that resets the grind while the Kronika hall-of-fame banks names forever. One currency (PS) + one XP rail (PX) means a single config governs the entire economy of effort.

nakład: high

Maximise concurrent players, session length, and D1/D7/D30 by giving every player exactly one always-on reason to log in TODAY (streak + 3 dailies), one reason to come back THIS WEEK (weekly Kronika + profesja milestone), and one reason to stay the whole SEASON (Przepustka + permanent Kronika wall). Differentiate hard from DonutSMP: rewards are mastery/cosmetic/utility and account-bound, never raw tradeable currency — the flex becomes "what you've earned and how complete your account is", not "your balance". Turn solo churn into a structured habit loop with forgiving streaks (no punishing reset-to-zero) and a season horizon that contains any future dupe to a single 6-week window.

Pętla
ONE loop, three nested clocks, all funnelling into the season rail: DAILY CLOCK (resets 04:00 Europe/Warsaw, the natural low-traffic trough): 1. Login -> SILNIK fires LOGIN event -> streak advanced (or frozen, never zeroed if a Tarcza is held) -> daily board (3 quests + cached reroll token) regenerated from a deterministic seed (date + uuid) so it is identical on every backend without coordination. 2. Play -> ZRODLA emit EngagementEvents (block/fish/kill/quest-tick) -> SILNIK matches them to active daily objectives AND to the player's 2 chosen profesje in the SAME pass. 3. Objective complete -> ledger event grants PS + PX; profesja XP grants on the same event. Finishing all 3 dailies grants a daily-complete bonus and increments the streak's "active day" flag. WEEKLY CLOCK (resets Monday 04:00): 4. Completing dailies and profesja checkpoints advances the Kronika Tygodnia quest-line (a stateful, ordered chain). It cannot be finished by grinding one trivial action — steps explicitly require "ukończ N dni" and "osiągnij lvl X profesji", chaining day-to-day play. 5. Weekly completion -> large PX chunk + guaranteed cosmetic shard + entry into the weekly Liga snapshot. SEASONAL CLOCK (fixed 6-week season): 6. ALL PX from daily/weekly/profesja/quest-line sources accrues into the Przepustka. Crossing a tier grants that tier's free (and, if owned, premium) reward slot. 7. Season end -> SILNIK runs the finalize job: snapshot leaderboards, engrave Kronika wall, archive the season's ledger, soft-reset profesja levels to a prestige-banked baseline, rotate map theme. New season seed published over NATS to every backend simultaneously. The glue: a single EngagementEvent can, in one atomic SILNIK pass, tick a daily objective + level a profesja + advance the weekly chain + add Przepustka XP — so the player feels every action push four bars at once. That multiplicative feedback is the retention engine and the thing scattered plugins can't produce.
Doświadczenie gracza
FIRST SESSION: on join, a one-line actionbar + a single chest GUI (/szlak) titled "Twój Szlak — Sezon I: Bursztynowy Szlak". Three slots glow: "Zadania na dziś (0/3)", "Twoje profesje (wybierz 2)", "Przepustka — poziom 0". Bedrock/Geyser players get the identical GUI (chest-form, no custom model required) plus a /szlak text fallback that prints the same state, so controller/touch users are first-class. DAILY: player logs in -> toast "Plomień Serii: 4 dni! Wróć jutro, nie zgaś go." -> opens /szlak -> sees 3 dailies, e.g. "Wykop 64 bloki kamienia (górnik)", "Złów 10 ryb (rybak)", "Pokonaj 15 potworów". Each is tagged with a profesja, so completing it ALSO levels that profesja and feeds Przepustka XP. One free reroll per day if a quest is unfun; further rerolls cost PS. Finishing all 3 pops "Dzienna seria ukończona +150 PX, +200 PS" and bumps the streak. WEEKLY: a multi-step "Kronika Tygodnia" quest-line (5-7 steps) that requires the player to complete dailies and hit profesja checkpoints across the week — "Ukończ 4 dni zadań", "Osiągnij 25 lvl drwala", "Wygraj 1 wydarzenie". It pays a big PX chunk + a guaranteed cosmetic shard. Profesja milestones (every 10 levels) drop on their own cadence so there is always a near-term bar filling. SEASONAL: the Przepustka has ~60 tiers over 6 weeks. Free track gives utility (PS, cosmetic shards, keys, profesja boosts). Premium track (bought once with real money or earned via play-streak grant) adds extra cosmetic/QoL slots per tier — never power. At season end the grind soft-resets, the map gets a new theme WITHOUT a brutal full wipe, and the player's name + season rank + feats are engraved permanently into the Kronika wall at spawn ("Mistrz Sezonu I: Bursztynowy Szlak"). Missed seasonal cosmetics grey out in /kolekcja forever — compounding FOMO and loyalty-as-status. THE FEELING: "to jest MOJE konto, widoczne na każdym serwerze, i rośnie odkąd gram — a nie odkąd płacę." Cross-server: walk through a portal from survival to PvP and the scoreboard/holograms already show your updated streak, profesja levels and Przepustka tier, because the delta propagated over NATS before you finished loading.
Nagrody
CURRENCY MODEL (dupe-defensive core): TWO new account-bound rails, both non-tradeable, both impossible to hand to another player, both ledger-backed: - Punkty Szlaku (PS): soft reward currency. Spent ONLY on rerolls, cosmetic unlocks, profesja respecs, streak insurance (Tarcza). Cannot be converted to Voyager Money. Duped Money therefore buys NOTHING in this system. - Przepustka XP (PX): pure progression points, spendable on nothing — they only advance the season tier. Earned ONLY from gameplay objectives. Raw Voyager Money is NEVER granted by this system. This is the structural inversion of DonutSMP's faucet. REWARD CURVE (tuned for a 45-60 min median session, ~6 week season): - Daily: 3 quests at ~50/60/70 PX and ~60/80/100 PS; daily-complete bonus +150 PX / +200 PS. A focused player clears dailies in ~25-35 min -> ~400 PX/day. - Weekly Kronika: ~600-900 PX + 1 guaranteed cosmetic shard + 1 rare key. - Profesja milestones (every 10 lvls): +100 PX + a tool-skin or micro-perk unlock at 50/100. - Season: ~60 tiers, tier N costs roughly 250 + 18*N PX (gentle ramp). A daily-active player who also does weeklies finishes the free track around week 5, leaving a comfortable buffer — NOT a grind wall, NOT trivially fast. Premium-only slots add cosmetics on already-earned tiers. - Streak (Plomień Serii): milestones at 3/7/14/30/100 days -> cosmetic trail tiers + PS lump + a free Tarcza at 7/30. A missed day with a Tarcza held = streak FROZEN (not reset); without one, streak drops one tier, never to zero. Pure Duolingo break-protection. WHAT REWARDS ARE: cosmetic shards (-> /szafa wardrobe: trails, hats, tags, pets), profesja tool-skins, account-bound keys, tiny capped profesja boosts (e.g. +3% double-drop chance, hard-capped per hour), streak titles, and the permanent Kronika engraving. Premium pass = MORE cosmetic/QoL slots, faster reroll cooldown, an extra daily reroll — explicitly never more PS-per-quest, never more PX, never power. This keeps the whole thing non-P2W and clip-worthy: the cool stuff is earned. ANTI-DEGENERACY: one free reroll/day (costed after) kills the "everyone grinds the single easiest quest" pattern; per-source hourly PS/PX ceilings (see antiAbuse) cap any farm; rewards being account-bound means a dupe or an alt army produces cosmetics on a throwaway account and nothing tradeable.
Anty-abuse
Designed against the known 44.8B dupe class. Principle: this system NEVER mints tradeable value, and every grant is capped, idempotent, and audited. 1. NON-TRADEABLE BY CONSTRUCTION: PS and PX live only in v5_szlak, are account-bound, have no give/pay/trade command, and cannot convert to Voyager Money. A dupe of Money buys nothing here; a dupe of PS would require breaching this DB directly. There is no item-form, so no item dupe vector. 2. EXACTLY-ONCE LEDGER: every grant inserts into szlak_ledger(uuid, idem_key UNIQUE, source, amount_ps, amount_px, ts). Duplicate idem_key -> 1062 -> skipped (Kody's proven pattern). Replays, double-fires, NATS redelivery all collapse to one grant. 3. ATOMIC CAP GUARDS (no read-modify-write race): hourly/daily counters live in szlak_caps(uuid, window_bucket, ps_used, px_used). A grant is: UPDATE szlak_caps SET ps_used = ps_used + ? WHERE uuid=? AND window_bucket=? AND ps_used + ? <= :cap. If 0 rows affected, the cap is hit and the grant is refused server-side. The client can never request more than the cap allows because the DB itself enforces it in one statement. Caps: 4000 PS/h, 1500 PX/h, 20000 PS/day, 9000 PX/day (config-tunable per season). 4. PRESENCE / ANTI-FARM (Strażnik Obecności): profesja/daily progress only counts from events tied to genuine player action (block actually broken by player, fish actually reeled, mob actually killed by player). No tick-based world-scanning means no AFK/autoclicker farm of a timer. Per-action profesja XP is tiny and the per-hour PX cap throttles any macro to a ceiling, making alt-army/autoclicker farms produce capped cosmetics on throwaway accounts — economically pointless. 5. SEASON CONTAINMENT: a hard 6-week reset means any undiscovered exploit is bounded to one season's PX/PS and erased at finalize. The permanent Kronika wall stores only NAMES/RANKS/FEATS (no balances), so it can't be inflated by an exploit. 6. CONSERVATION TRIPWIRES: a scheduled audit job (async, every 5 min) recomputes each online player's PS/PX from the ledger SUM and compares to the cached balance; any drift logs a WARN with uuid + delta to Loki (existing Grafana stack) — the same "catch the next dupe in minutes" posture the brief demands. Negative balances are impossible (grants are append-only; spends are checked-and-decremented in one guarded UPDATE that refuses to go below zero). 7. NO CLIENT TRUST: the GUI/scoreboard are pure projections; clicking buy/reroll sends an intent, the server validates PS balance + cooldown + cap atomically before committing. Reroll cost and the one-free-per-day are enforced by a row in szlak_caps, not the client.
Sync sieci
MySQL is the durable source of truth; NATS is the live nervous system. No backend ever trusts another's in-memory state. WRITE PATH (authoritative-writer = whichever backend processed the action): 1. EngagementEvent handled locally -> SILNIK computes deltas under the per-player hourly/daily caps (caps enforced by an atomic UPDATE that includes the cap as a WHERE-clause guard, see antiAbuse). 2. SILNIK writes to the ledger table with an idempotency_key = sha1(uuid|source|objective|period_bucket). INSERT ... ; on duplicate-key (1062/23000) the grant is SKIPPED — identical to Kody's awardNewMilestones pattern. This makes every grant exactly-once even under at-least-once NATS redelivery or a double-fire. 3. The committed delta is published to NATS subject szlak.account.<uuid>.delta as {uuid, ps, px, profesja, newStreak, seq}. seq is a per-player monotonic counter from MySQL so receivers can detect/order/drop stale deltas. READ / SYNC PATH: 4. Every backend subscribes to szlak.account.*.delta. On receipt it updates ONLY presentation state for online players (scoreboard, holograms, /szlak GUI cache) — it does NOT re-derive balances. If the player isn't online locally, the delta is ignored; the next backend the player visits loads authoritative state from MySQL on join. 5. szlak.season.event broadcasts season start/finalize and the new daily/weekly SEED so all backends regenerate identical boards. Daily quest selection is deterministic: seed = hash(season_key | date | uuid) -> no cross-server coordination needed, every server independently computes the SAME 3 quests for a player. 6. szlak.leaderboard.tick (throttled, ~10s) feeds lobby holograms (top drwal/górnik/Przepustka). JOIN HANDSHAKE: on PlayerJoin (region thread) -> async load account row + active objectives + streak from MySQL (single pooled connection) -> hydrate local cache -> render GUI. Because the row is authoritative, walking server-to-server is seamless: the delta usually arrives before load completes; if not, the MySQL read backstops it. FAILURE MODES: if NATS is down, writes still commit to MySQL (durability preserved) and live cross-server presentation just lags until reconnect — never double-grants, never loses progress. If MySQL is briefly unreachable, the SILNIK buffers EngagementEvents in a bounded in-memory queue per player (dropping silently past a cap, logged) and flushes on reconnect; the idempotency key guarantees a flushed-then-redelivered event still grants once.
Budowa
BUILD CUSTOM — do not buy. This is the network's identity layer and must be Folia-correct, NATS-native, and dupe-defensive; off-the-shelf BattlePass/Jobs plugins (a) aren't all Folia-safe (Jobs Reborn is NOT), (b) mint or assume tradeable currency, and (c) can't share one account/ledger across the v5 NATS+MySQL fabric. Reuse the proven Kody scaffolding rather than greenfield. STACK: JDK21, Paper 26.1.2 API, single Maven module pl.minecraft.szlak, maven-shade-plugin shading + relocating the MariaDB JDBC driver to pl.minecraft.szlak.libs.mariadb (exact Kody convention — speaks MySQL). Add the NATS java client (io.nats:jnats), also shaded/relocated. plugin.yml: folia-supported: true, api-version '1.21'. THREADING (Folia/Canvas overworld is regionised multi-threaded — the load-bearing constraint): - ZRODLA listeners (BlockBreak/PlayerFish/EntityDeath) fire on the OWNING REGION thread. They do the minimum: read the event's data, build an EngagementEvent, hand it to the SILNIK via getAsyncScheduler().runNow(). They NEVER scan the world or touch other regions' entities. - ALL MySQL + NATS I/O runs on getAsyncScheduler() (Kody pattern), backed by a HikariCP pool (config pool-size) — NOT Kody's per-operation open(), because this plugin is high-traffic. - ANY reward that dispatches a console command (e.g. give a crate key, apply an LP temp perk) MUST go through getGlobalRegionScheduler().run() — Kody already does exactly this for reward commands on Folia; reuse verbatim. - Reading/altering a player's inventory or opening the GUI is scheduled on that player's EntityScheduler, never assumed to be the main thread. DATA MODEL (v5_szlak, utf8mb4_unicode_ci): tables szlak_account (uuid, name, current_season, ps, px, season_tier, streak, last_active_date, tarcze, seq), szlak_profesje (uuid, profesja, level, xp, prestige), szlak_objectives (uuid, scope DAILY|WEEKLY, def_id, progress, target, period_bucket, done), szlak_ledger (idem_key UNIQUE — the dupe firewall), szlak_caps (uuid, window_bucket, ps_used, px_used), szlak_kronika (season, uuid, name, rank, feat) — the permanent wall, balances never stored here. DEPLOY: clone the Kody tooling (deploy_szlak.py + provision_szlak_db.py modelled on the existing Kody scripts), inject DB + NATS passwords per backend at deploy, greload on the proxy isn't needed (this is a backend plugin), restart-free reloads via /szlak admin reload for config. PHASING (ship value early, contain risk): - M1 (foundation): KONTO + ledger + caps + /szlak GUI + streak + dailies on ONE survival backend. Proves the dupe-safe rail end-to-end. (This alone is a shippable D1/D7 win.) - M2: profesje (the owner's idea) + daily tags + per-action XP, still single-server. - M3: NATS sync + cross-server account hydration + lobby holograms (Konto Sieciowe). - M4: Przepustka (dual-track) + weekly Kronika quest-line + season finalize/reseed + Kronika wall. Each milestone is independently live; the system compounds rather than requiring a big-bang launch.
Szkic configu
One plugin, config split into files under /plugins/Szlak/. Password injected per-server at deploy (Kody convention), never committed.

# config.yml
database:
  host: "10.64.0.1"        # v5 shared MySQL (Kody convention)
  port: 3306
  name: "v5_szlak"
  user: "v5_szlak_user"
  password: ""             # injected per-server at deploy, NIE commitowac
  pool-size: 6             # HikariCP — pooled, unlike Kody's per-op open()
nats:
  url: "nats://10.64.0.1:4222"
  password: ""             # injected at deploy
  subject-prefix: "szlak"
timezone: "Europe/Warsaw"  # daily reset 04:00, weekly Mon 04:00
reset:
  daily-hour: 4
  weekly-day: MONDAY
season:
  id: 1
  key: "bursztynowy_szlak"
  name: "Sezon I: Bursztynowy Szlak"
  starts: "2026-07-01T00:00:00"
  ends: "2026-08-12T04:00:00"
  pass-tiers: 60
  tier-base-px: 250
  tier-step-px: 18         # cost(N) = base + step*N
caps:                       # ANTI-ABUSE: hard ceilings, server-authoritative
  ps-per-hour: 4000
  px-per-hour: 1500
  ps-per-day: 20000
  px-per-day: 9000
  reroll-free-per-day: 1
  reroll-cost-ps: 250
streak:
  tarcza-cost-ps: 1500
  free-tarcza-at: [7, 30]
  tiers: {3: Iskra, 7: Płomień, 14: Ognisko, 30: Pożoga, 100: "Wieczny Żar"}

# professions.yml  (boosts are SUPER MINOR + per-hour capped)
profesje:
  gornik:
    display: "Górnik"
    levels-source: BLOCK_BREAK
    blocks: [STONE, DEEPSLATE, IRON_ORE, DIAMOND_ORE]
    px-per-action: 1
    perks:
      double-drop-chance: { per-level: 0.0008, cap: 0.05 }   # max +5%
      sell-bonus: { per-level: 0.0005, cap: 0.03 }           # max +3%, capped/h
    milestone-every: 10
    odrodzenie-title: "Arcygórnik"
  drwal:
    display: "Drwal"
    levels-source: BLOCK_BREAK
    blocks: [OAK_LOG, SPRUCE_LOG, BIRCH_LOG]
    px-per-action: 1
  rybak: { display: "Rybak", levels-source: FISH, px-per-action: 2 }
  lowca: { display: "Łowca", levels-source: MOB_KILL, px-per-action: 2 }

# quests.yml  (daily pool — server picks 3/day by deterministic seed)
dziennie:
  pool:
    - id: kamien_64
      tag: gornik
      desc: "Wykop 64 bloki kamienia"
      type: BLOCK_BREAK
      target: { material: STONE, amount: 64 }
      reward: { px: 50, ps: 60 }
    - id: ryby_10
      tag: rybak
      desc: "Złów 10 ryb"
      type: FISH
      target: { amount: 10 }
      reward: { px: 60, ps: 80 }
    - id: potwory_15
      tag: lowca
      desc: "Pokonaj 15 potworów"
      type: MOB_KILL
      target: { amount: 15 }
      reward: { px: 70, ps: 100 }
  complete-all-bonus: { px: 150, ps: 200 }

# chronicle.yml  (weekly quest-line — ordered, gated steps)
kronika_tygodnia:
  id: "s1_w3"
  steps:
    - { desc: "Ukończ zadania w 4 dni", type: DAILY_DAYS, target: 4 }
    - { desc: "Osiągnij 25 lvl dowolnej profesji", type: PROFESJA_LEVEL, target: 25 }
    - { desc: "Pokonaj Smoka Wawelskiego", type: BOSS, target: "smok_wawelski" }
  reward: { px: 800, shard: "bursztyn_szard", key: "rzadka" }

# pass.yml  (per-tier free/premium slots — rewards only, never power)
przepustka:
  tiers:
    1:  { free: { ps: 200 },                 premium: { cosmetic: "smuga_iskra" } }
    10: { free: { key: "rzadka" },           premium: { cosmetic: "kapelusz_gornik" } }
    25: { free: { boost: "drop_30m" },       premium: { pet: "borsuk" } }
    60: { free: { title: "Wędrowiec Szlaku" }, premium: { cosmetic: "smuga_bursztyn_elite" } }

KPI

  • D1 / D7 / D30 retention by cohort (primary success metric) — segmented by: did-vs-didn't pick a profesja in session 1, did-vs-didn't complete dailies on day 1. Hypothesis: completing all 3 dailies on D0 lifts D1 materially.
  • Concurrent players at PL prime-time (19:00-21:00 CET) and the 04:00 daily-reset spike — is the daily board pulling players back at reset.
  • Median + p90 session length, pre/post each milestone (M1..M4). Target: +20-30% median once dailies+profesje ship.
  • Daily-quest completion funnel: % opening /szlak, % completing >=1, % completing all 3, % using the free reroll, % buying a paid reroll (degeneracy check).
  • Streak distribution: share of players at each Plomień tier, Tarcza usage rate, and streak-break recovery rate (did a frozen streak retain the player) — validates the forgiving-streak thesis.
  • Profesja engagement: avg profesje per active player (target ~1.8 of 2), level distribution, and /topodrodzen prestige count — is the long mastery bar holding weeks-long players.
  • Przepustka progression curve: median tier vs season week (is the free track finishing ~week 5, not too fast/slow), and premium-pass attach rate (monetization off retention, not power).
  • Cross-server continuity: % of sessions that span 2+ backends, and delta-propagation latency p50/p95 on szlak.account.*.delta (NATS health) — proves the Konto Sieciowe feels seamless.
  • ANTI-ABUSE: count of cap-refused grants/day (UPDATE-0-rows events), idempotency-skip count, and conservation-tripwire drift alerts to Loki — these should be low and explainable; a spike is the early-warning for the next dupe.
  • Reward-economy health: PS minted vs PS sunk per day (rerolls, Tarcze, cosmetics) and PX-per-active-player/day vs the modelled curve — to tune caps and tier costs each season without guesswork.

Identity & Differentiation

nakład: high

Make minecraft.pl's v5 network unmistakably NOT a DonutSMP clone via ONE bold signature mechanic, while maximizing concurrent players, session length, and D1/D7/D30 retention. The signature is "TWOJA KRONIKA" (Your Chronicle) wrapped around a Polish-folklore seasonal model: instead of DonutSMP's flat, never-resetting "biggest balance wins" flex, identity is built from a PERMANENT, network-wide hall-of-fame of dated feats earned by PLAYING (never paying), driven by a co-op world-boss the whole network fights together at Polish prime time. The flex inverts: on Donut you flex a number that can be duped; here you flex carved-in-stone deeds (Mistrz Sezonu, pogromca Smoka Wawelskiego) that no amount of currency or a dupe can buy. Positioning line: "Na DonutSMP liczy się ile masz. U nas liczy się czego dokonałeś — i to zostaje na zawsze."

Pętla
DAILY: log in -> Chronicle Wall reminds you others are advancing -> check /kronika for this season's near-complete deeds -> play your preferred loop (mining/PvP/jobs/fishing) which auto-progresses deed counters tracked from events you already fire (block-break, kill, fish) -> claim any completed deed -> deed is etched network-wide instantly via NATS, your name flashes on the lobby wall. APPOINTMENT (3-4x/week, 20:00 CET): network-wide Przebudzenie world-boss spawns on all backends at once -> warp + fight a single shared-HP boss -> earn contribution-bracket reward + chance at the rare seasonal "Pogromca" deed -> clip-worthy communal moment. SEASONAL (~7 weeks): chase a themed deed set + climb the Liga ladder -> season finale boss -> soft-reset grind, PERMANENT bank of all deeds into legacy wall dated with the theme. The three cadences nest: dailies feed the season, the season feeds the permanent legacy, and the boss is the recurring social heartbeat a US-timezone clone structurally cannot serve to Poles.
Doświadczenie gracza
A player joins lobby and immediately sees the SCIANA KRONIKI (Chronicle Wall) — a holographic wall of named, dated deeds of other players ("Bartek221 — Pogromca Smoka Wawelskiego — Sezon II", "kasia_pl — Mistrzyni Wydobycia — 1000h"). It signals: this is a place where what you DO is remembered forever, run by real people, alive right now. They open /kronika and see their own (empty) page with locked slots: deeds to earn this season + a permanent legacy section that never wipes. Three to four times a week at 20:00 Warsaw, a network-wide bossbar appears on EVERY backend (lobby, survival, nether, end) simultaneously over NATS: "PRZEBUDZENIE: Smok Wawelski powstaje za 5 minut". Players on any server warp to the survival arena; the boss has ONE shared HP bar synced across the whole network. Casuals deal chip damage and still earn a contribution-bracket reward; sweats compete for the top-damage "Pogromca" deed. Whether you solo-grind, PvP, or just farm, your meaningful acts get etched into your Kronika. Seasons run ~7 weeks with a Polish folklore theme (Bursztynowy Szlak, Noc Kupaly); at season end the competitive grind soft-resets but every earned deed banks PERMANENTLY into your legacy wall with the season's date and theme. You never lose the emotional payoff — you lose only the treadmill. The promise that defeats churn: "leaving this server means abandoning a permanent record of everything I ever did across the whole network."
Nagrody
Reward curve is deliberately NON-MONETARY to contain the 44.8B dupe risk: NO deed, boss kill, or season payout EVER grants tradeable currency. Three reward currencies, all account-bound and non-tradeable: (1) Czyny/Deeds — the permanent etched feats (the core flex), (2) Punkty Chwaly (Glory Points) — soft account-bound points spent only in the /szafa cosmetic wardrobe, (3) cosmetic unlocks (trails, titles, tab badges, boss trophies). Early curve is generous for D1/D7: first 5 deeds are easy ("zaloguj sie 3 dni z rzedu", "wydobadz 500 blokow", "zadaj 1 obrazenie bossowi") so a new player etches their first permanent deed inside session 1 — instant identity hook. Mid curve (D7-D30) requires the seasonal grind + boss participation. Top curve is prestige-gated and time-gated: "Mistrz Sezonu" (top of Liga), "Pogromca Smoka" (top-10 boss damage), "Tysiac Godzin" (1000h played) — visibly out-class anything a wallet can buy. Boss rewards use CONTRIBUTION BRACKETS not last-hit (every participant who dealt >=1% gets a guaranteed bracket reward; top damagers get the rare deed), so casuals AND sweats both get paid and nobody is excluded. Crucially: because rewards are cosmetic/status and account-bound, a future dupe cannot purchase prestige — the most valuable things on the server are mathematically un-buyable and un-dupable.
Anty-abuse
Designed defensively around the known 44.8B dupe. (1) NO reward path emits tradeable currency — deeds/boss/season payouts grant only account-bound, non-tradeable Czyny/Punkty Chwaly/cosmetics, so the most valuable status on the server is mathematically un-buyable and a future dupe cannot purchase prestige (structural quarantine, not a patch). (2) MySQL deed_events is append-only with a unique idempotency_key (player+deed+season) -> a deed can never be double-granted on reconnect, NATS redelivery, or replay; grants are server-authoritative, never client-trusted increments. (3) Hard rate caps: per-player per-hour deed-progress ceiling + Punkty Chwaly daily cap to defeat autoclicker/AFK/macro farming; counters only advance from genuine gameplay events, never timers. (4) Strażnik Obecności presence gate: boss-damage and deed credit require a recent authentic-interaction signal, killing AFK-pool/water-macro/alt-army farming of the communal boss. (5) Boss has ONE authoritative HP on one region thread; remote servers forward damage but cannot mutate HP -> no cross-server damage duplication; per-player boss-damage is clamped per tick to stop packet-spam inflation. (6) Contribution brackets cap top-bracket size and use share-of-total (not raw), so a single exploiter can't drain a fixed pool. (7) Full audit trail: every grant is a dated ledger row queryable for live conservation-of-deeds tripwires, so the NEXT anomaly is caught in minutes, and any bad season can be contained/rolled back without touching permanent legacy.
Sync sieci
Network-wide by construction over the v5 stack (4 backends: lobby, overworld/survival-Canvas, nether, end + Travertine proxy). Shared MySQL is the single authoritative event-sourced store (append-only deed_events ledger + materialized player_chronicle). NATS subjects: kronika.deed.granted (fan-out -> lobby Chronicle Wall + every backend update the instant a deed is earned, so progress feels global no matter which server you're on), kronika.boss.spawn (one cron/operator trigger fans the Przebudzenie boss to ALL backends synchronously at 20:00 Europe/Warsaw), kronika.boss.tick (authoritative shared HP + top-N damage leaderboard, published by the single overworld region that owns the boss, consumed by all backends to render an identical bossbar). The boss has exactly ONE source of truth (the overworld region thread) — other servers display and forward local damage, never mutate HP. This makes the product "your persistent network account," not "a server": every meaningful act is remembered everywhere, instantly.
Budowa
CUSTOM core plugin "Kronika" (this is the signature moat — must be bespoke, never a Donut*-branded plugin or you ARE the clone by construction), reusing existing infra. Stack: JDK21, Paper 26.1.2 on lobby/nether/end, Canvas 1.21.11 (Folia-family, regionised multi-threaded ticking) on the survival overworld. THREADING IS THE #1 CONSTRAINT: the overworld ticks per-region on multiple threads, so all world/entity access MUST go through the FoliaScheduler abstraction already vendored in the existing plugins (com.cjcrafter:foliascheduler — confirmed in EventsSMP and cuy-voyager plugin.yml with folia-supported: true). Rules: deed counters increment from Bukkit events ON the owning region thread; never world-scan, never iterate online players for rewards. Use EntityScheduler for per-player entity work, RegionScheduler for the boss arena region, and the global/async scheduler ONLY for MySQL writes and NATS publishes (never touch world state off-thread). The world-boss runs on ONE designated server (survival overworld) inside one region via RegionScheduler; its shared HP is the single source of truth, mutated only on that region thread, with damage events from local players applied locally and the authoritative HP/leaderboard broadcast to other backends over NATS. PERSISTENCE: shared MySQL is authoritative and event-sourced — append-only deed_events ledger (player_uuid, deed_id, season_id, ts, idempotency_key) so a deed can never be double-granted on replay/reconnect; a materialized player_chronicle view for fast reads. SYNC: NATS subjects kronika.deed.granted (fan-out so the lobby wall + all backends update instantly), kronika.boss.tick (authoritative HP + top-N damage), kronika.boss.spawn (one operator/cron trigger fans the boss to all backends synchronously). REUSE: holographic Chronicle Wall via existing hologram/TAB stack; cosmetics via /szafa hooking existing cosmetic plugin; trigger schedule reuse the EventsSMP AUTO_EVENTS pattern but in TIMEZONE Europe/Warsaw (the existing config is America/New_York — that EN/US-timezone default is exactly the clone tell we invert). Deploy via the existing Pterodactyl deploy.py to all 4 backends + proxy. Build order: M1 deed engine + MySQL ledger + /kronika GUI (single-server) -> M2 NATS sync + lobby wall -> M3 network world-boss + contribution brackets -> M4 seasons + permanent legacy bank + /szafa rewards.
Szkic configu
kronika.yml:
sezon:
  aktualny_id: 2
  nazwa: "Sezon II: Noc Kupały"
  motyw: "kupala"
  koniec: "2026-08-05T20:00:00+02:00"
boss_przebudzenie:
  wlaczony: true
  strefa_czasowa: "Europe/Warsaw"
  serwer_areny: "overworld"        # single source of truth (Canvas/Folia region)
  harmonogram: ["20:00:Wt", "20:00:Czw", "20:00:Sob"]
  ostrzezenie_minuty: 5
  hp_bazowe: 5000000
  hp_na_gracza_online: 40000        # scales with network concurrency
  max_obrazenia_na_tick: 2500       # anti packet-spam clamp
  wymagaj_obecnosci: true           # Strażnik Obecności gate
  nagrody_progi:                    # contribution brackets (share of total dmg)
    - {min_udzial: 0.01, punkty: 50}
    - {min_udzial: 0.05, punkty: 150}
    - {min_udzial: 0.10, punkty: 400, czyn: "smialek"}
  czyn_pogromca_top: 10             # top-10 damagers get "Pogromca Smoka"
czyny:
  pierwsze_kroki: {tier: "brazowy", cel: {typ: "login_streak", ile: 3}, punkty: 25}
  gornik:         {tier: "srebrny", cel: {typ: "break_block", ile: 10000}, punkty: 150}
  tysiac_godzin:  {tier: "mityczny", cel: {typ: "playtime_h", ile: 1000}, punkty: 1000, permanentny: true}
limity_antyabuse:
  postep_na_godzine_max: 5000        # per-player hourly deed-progress ceiling
  punkty_chwaly_dziennie_max: 600    # daily soft-currency cap
  tylko_zdarzenia: true              # counters advance ONLY from gameplay events, never timers
nats:
  subjects:
    deed_granted: "kronika.deed.granted"
    boss_spawn:   "kronika.boss.spawn"
    boss_tick:    "kronika.boss.tick"
mysql:
  tabela_ledger: "kronika_deed_events"   # append-only, UNIQUE(idempotency_key)
  widok_kronika: "kronika_player_view"   # materialized read model
nagrody:
  waluta_tradeable: false                # HARD RULE: never grant tradeable money

KPI

  • D1/D7/D30 retention by cohort, split for players who etched >=1 deed in session 1 vs those who did not (validate the 'first permanent deed = retention hook' thesis)
  • Concurrent players during 20:00 CET Przebudzenie windows vs non-event baseline (does the boss create appointment-play?)
  • Boss participation rate = unique damagers / peak-concurrent, and casual inclusion = % of participants in the lowest contribution bracket still claiming a reward
  • Median session length on boss-nights vs normal nights
  • Deeds earned per player per season + % of season deed set completed (difficulty tuning signal)
  • Season-over-season returner rate: % of S(n) players who return for S(n+1) launch within 48h (the soft-reset/permanent-legacy retention test)
  • Cross-server reach: avg distinct backends a player touches per week (is it behaving like 'one network account'?)
  • Anti-abuse tripwires: deeds granted/hour vs ceiling, Punkty Chwaly conservation per day, idempotency-key collision count (>0 = replay/dupe attempt), per-tick boss-damage clamp hits — alert on anomaly within minutes

PIERWSZA WYPRAWA (First Expedition) — First-Session Onboarding for the v5 PL network. A network-authoritative, NATS+MySQL-synced 30-minute guided onboarding that fires on a brand-new player's very first proxy login, hands them instant goals + a named questline + first reward, and ends by enrolling them into the persistent retention loops (Konto Sieciowe, daily Zlecenia, Profesje, Cech). Custom plugin "raba-onboarding" (the "Przewodnik" / Guide system), Folia-safe. Replaces the DonutSMP cold-drop-into-PvP with a warm, story-framed, reward-paced first hour that converts a curious clicker into a D1 returner.

nakład: med

Maximize D1 retention (the single biggest lever — a new PL player decides in the first 10 minutes whether the server "is for them") and seed D7/D30 by ending the first session with the player already invested in a persistent network account, a named streak, an unfinished questline, and ideally a clan/party invite. Target: lift new-player D1 from a typical clone baseline of ~12-18% to 30%+, and ensure 70%+ of new players reach the "first meaningful goal" (first Żetony reward + first profession pick) within 10 minutes of first join.

Pętla
PER-STEP MICRO-LOOP (repeats 5× in the questline, then generalizes): trigger an in-world action the player would do anyway (place/break/interact/walk/claim) → plugin listens to the native Bukkit/Folia event ON THE OWNING REGION THREAD (never a world scan, never a poll) → validate the step is the player's CURRENT step and the action is genuine (presence-checked) → grant a small immediate reward (Żetony + sound + toast + sidebar tick) → advance step pointer in the per-player onboarding state machine → persist to MySQL + publish a NATS event so the player's progress is identical on every server. STATE MACHINE (authoritative, server-agnostic): each new player has one OnboardingProgress record: {uuid, step (0–5), startedAt, completedAt, claimedWeek1[], firstJoinServer}. The plugin is a finite state machine — only the current step's listener is "armed", so a player can't skip-claim or double-claim. Steps are idempotent: granting step N is a MySQL conditional UPDATE (... WHERE step = N-1) so a duplicated NATS message or a relog mid-step can never double-pay. THREADING (Folia/Canvas overworld is regionised, multi-threaded): all reward grants, inventory writes, and entity/NPC interactions happen via the player's EntityScheduler (Bukkit.getScheduler is unsafe on Folia). All DB I/O is dispatched to an async executor off any region thread; results that touch the player hop back onto that player's EntityScheduler. NATS publish/consume runs on its own thread; inbound messages that mutate game state are re-scheduled onto the target player's EntityScheduler. NO global tick scans — the entire system is event- and message-driven.
Doświadczenie gracza
THE FIRST 30 MINUTES, BEAT BY BEAT (all copy in PL with full diacritics): T+0s — FIRST PROXY LOGIN DETECTION. Proxy (Travertine) checks Konto Sieciowe in MySQL: no row = brand-new. Player is routed NOT to survival but to a dedicated calm "Przystań Przybyszów" (Newcomers' Haven) onboarding lobby/region (Paper server, no PvP, no economy). Title fades in: "Witaj na Pustkowiach, Wędrowcu." Subtitle: "Twoja wyprawa zaczyna się tutaj." A friendly NPC guide, "Przewodnik Borys" (Polish-flavored old wanderer), waves and a soft chat line appears. T+0–60s — THE HOOK (give value before asking anything). Before any tutorial text, the player INSTANTLY receives a visible reward: a starter kit (named "Tobołek Wędrowca" — Wanderer's Bundle: bread, a wooden tool set, 16 torches, a map item) AND 50 Żetony (account-bound soft currency) drop into their inventory with a bossbar + sound. Chat: "Borys: Weź to, przyda ci się. Reszta należy do ciebie — jeśli ją zdobędziesz." This front-loads dopamine in under a minute — the anti-"empty server" move. T+1–4min — QUESTLINE "PIERWSZA WYPRAWA" BEGINS (5 micro-steps, each ~30–90s, each rewards immediately). A clean sidebar (scoreboard) shows "Wyprawa: 1/5". Steps are diegetic, not a wall of GUI: 1. "Rozpal Ognisko" (Light a campfire) — teaches block place/interact. Reward: +10 Żetony, a firework + "Krok 1 ukończony!" toast. 2. "Wybierz swoje Rzemiosło" (Choose your profession) — opens the Profesje GUI (drwal/górnik/rybak/łowca/rolnik). Player picks 2. This is the KEY identity moment — it makes the player commit to a path in minute 3. Reward: profession unlocked at lvl 1 + "Zostałeś Czeladnikiem!" title. 3. "Pierwszy Zarobek" (First earnings) — do one action for your chosen profession (chop 5 logs / mine 5 stone / catch 1 fish). Teaches the job XP loop on the Folia overworld. Reward: +15 Żetony + first job-XP gain visibly ticks up. 4. "Tablica Zleceń" (Quest board) — walk to the physical board NPC, claim today's first daily Zlecenie. Teaches the daily heartbeat. Reward: streak started ("Płomień Serii: Dzień 1"), +10 Żetony. 5. "Wyrusz w Świat" (Set out into the world) — step into the portal to the real survival server. On arrival the questline COMPLETES. T+4–6min — COMPLETION + COMMITMENT. Big finale: title "PIERWSZA WYPRAWA UKOŃCZONA", fireworks, and the capstone reward: a cosmetic "Smuga Wędrowca" (Wanderer's trail, earned-only, never buyable) + 100 Żetony + a permanent entry written into their Kronika ("Ukończył Pierwszą Wyprawę — {date}"). Crucially, Borys's final line seeds the NEXT session and the social hook: "Borys: To dopiero początek. Wróć jutro — twoja seria czeka. A jeśli chcesz przetrwać Pustkowia, znajdź sobie Cech." A one-click "Dołącz do Discorda" button + a "Znajdź Cech / Drużynę" prompt appear. T+6–30min — SOFT-GUIDED FREE PLAY (the "first hour" net). The questline is done but a lightweight "Pierwszy Tydzień" checklist (separate, non-blocking, claimable over 7 days) now lives in /menu: e.g. "Osiągnij 5 lvl rzemiosła", "Ukończ 3 Zlecenia", "Odwiedź Bazar", "Zdobądź 500 Żetonów". A gentle objective marker points the player toward the nearest activity, but they are FREE. An "honest activity feed" hologram at spawn shows real recent network events ("Kuba ukończył Zlecenie", "Klan Żelaźni wykopał 10k bloków") so the server feels alive. If the player idles >3 min, Borys (now a /przewodnik command) offers a contextual nudge. BEDROCK/GEYSER PARITY: all GUIs use Bedrock-safe layouts (no hover-only tooltips; chest-menu fallbacks); all prompts are clickable AND have a /command equivalent. The questline never requires desktop-only precision. EMOTIONAL ARC: receive → belong → achieve → commit. The player leaves session 1 with (a) currency they earned, (b) an identity (Czeladnik drwal), (c) a streak they don't want to break, (d) an unfinished week-1 list, and (e) a reason to come back tomorrow and a nudge to find a clan. That is the retention hook closed in under 30 minutes.
Nagrody
ACCOUNT-BOUND ONLY. Every onboarding reward is one of: (a) Żetony — the tagged, NON-TRADEABLE soft currency (cannot be dropped, traded, /pay'd, or stored in player markets; lives in its own ledger table with append-only deltas); (b) a profession unlock; (c) an earned cosmetic (Smuga Wędrowca trail) flagged earned-source so it can never be sold or gifted; (d) a permanent Kronika record (pure status). NO raw Money, NO tradeable items beyond the trivial starter kit (low-value vanilla tools/food, value floored so it can't be farmed by reroll). Reward sizes are config constants, server-capped, and granted via idempotent conditional writes so no relog/dupe/NATS-replay can multiply them.
Anty-abuse
DESIGNED DEFENSIVELY (the 44.8B dupe is the lens — assume every reward path will be attacked): 1. NON-TRADEABLE REWARDS ONLY. All payouts are Żetony (tagged ledger, cannot be /pay'd, dropped, traded, or market-listed) + earned-source cosmetics + status. Even if onboarding were fully exploited, NOTHING produced can enter the player Money economy or be sold — the blast radius of any onboarding exploit is contained to soft currency that only buys cosmetics/QoL. This is the single most important guardrail. 2. IDEMPOTENT CONDITIONAL WRITES. Every reward grant is `UPDATE onboarding_progress SET step=N, ... WHERE uuid=? AND step=N-1` and the Żetony credit is an append-only ledger insert keyed by (uuid, stepId) with a UNIQUE constraint. A duplicated NATS message, a relog mid-grant, a double-click, or out-of-order delivery can physically never pay twice (UNIQUE insert fails silently / conditional UPDATE affects 0 rows → no second credit). 3. LIFETIME ONE-SHOT PER ACCOUNT. onboarding can only ever run once per UUID (firstJoin/onboarded flag in Konto Sieciowe, network-wide). A veteran cannot replay it; deleting local files can't reset it (state is in shared MySQL). 4. ALT / FARM THROTTLE. Cap onboarding completions per IP per day (config, default 3) to blunt alt-army farming of the 185 Żetony + cosmetic. Combined with #1 this makes alt-farming worthless (non-tradeable output) AND rate-limited. 5. PRESENCE VALIDATION (Strażnik Obecności). Step rewards require the authoritative "genuine presence" signal — autoclicker/AFK-pool/macro completion of profession-action steps is rejected. Profession-action step counts only real, on-region-thread block/fish/kill events from the player, not world scans. 6. STARTER-KIT VALUE FLOOR. The kit is low-value vanilla (bread + wooden tools), so even unbounded reroll attempts yield nothing economically meaningful; kit items are bound where possible and never sellable to NPC for more than negligible value. 7. NO RAW MONEY, NO SCANS, NO CLIENT TRUST. Onboarding never grants Money/diamonds/spawners. Server is authoritative for every step transition; the client only sends actions, never claims of completion. No tick-scan that could be exploited by lag/region timing. 8. OBSERVABILITY TRIPWIRE. Emit metrics on Żetony minted by onboarding/hour and completions/hour; a sudden spike (e.g. > expected new-player rate) fires an alert (ties into your Grafana/Loki stack) — so the NEXT exploit is caught in minutes, the explicit lesson from 44.8B.
Sync sieci
CROSS-SERVER SYNC (v5: Travertine proxy + NATS + shared MySQL): SOURCE OF TRUTH = MySQL onboarding_progress (one row per account). NATS is the real-time mirror so any server reacts instantly; it is NEVER trusted as authoritative — every NATS-driven mutation is re-validated against MySQL with a conditional write. FLOW: 1. New login → proxy reads Konto Sieciowe (MySQL) async. New account → routes to Przystań + publishes `onboarding.started {uuid, ts}`. 2. As the player completes steps on whatever server they're on, that server does the authoritative conditional UPDATE (step = N WHERE step = N-1), then publishes `onboarding.step {uuid, step, rewardGranted:true}`. Other servers update any in-memory cache; they do NOT re-grant (the publisher already paid, idempotency key uuid:step dedupes replays). 3. MID-SESSION SERVER HOP: player leaves server A at step 3, joins server B. Server B loads onboarding_progress from MySQL on join, sees step=3, re-arms the step-4 listener. Progress is seamless — the "Konto Sieciowe" promise: your account, not the server, holds your progress. 4. COMPLETION publishes `onboarding.completed {uuid}` → consumers (Profesje, Płomień Serii, Przepustka, leaderboards) each react idempotently (e.g. streak service starts Day 1 only if not already started). Account flagged onboarded=true in Konto Sieciowe so it NEVER re-triggers anywhere. CONSISTENCY GUARANTEES: all grants idempotent + conditional, so duplicate delivery, out-of-order NATS messages, or a relog at the exact moment of a grant cannot double-pay or skip. If NATS is down, the system still works server-locally off MySQL (NATS is an accelerator, not a dependency) — degraded-mode safe.
Budowa
BUILD: CUSTOM plugin "raba-onboarding" + a thin proxy-side module — do NOT buy this. Rationale: it must be deeply wired into the EXISTING bespoke stack (Konto Sieciowe MySQL schema, NATS subjects, Żetony ledger, Profesje, Kody referral, Tablica Zleceń) that no marketplace plugin knows about; an off-the-shelf "tutorial/quest" plugin (e.g. BattlePass/Tasks-Quests, or a tutorial-NPC plugin) cannot create network-authoritative idempotent accounts or be Folia-correct against your Canvas overworld. Reuse where sane: hologram/NPC rendering via your existing display-entity tooling (BetterModel/DecentHolograms-equivalent, Folia-safe), GUI via an existing Folia-safe inventory lib, and the Profesje/Zlecenia GUIs you already build for those systems (onboarding just opens them). ARCHITECTURE / 5 PARTS: 1. Proxy module (Travertine): on PostLoginEvent, async-lookup Konto Sieciowe; if new → route to "Przystań Przybyszów" server instead of default; publish NATS `onboarding.started`. Greload-compatible. 2. Backend plugin (Paper, on the Przystań server + survival): the FSM, event listeners per step (BlockPlace, BlockBreak, PlayerFish, EntityDeath, board-interact, portal-enter), reward granters, NPC "Borys". 3. Persistence: MySQL tables (below) + Żetony ledger; all writes idempotent conditional UPDATEs. 4. NATS sync layer: subjects `onboarding.started/step/completed`, `account.created`; consumers re-schedule onto EntityScheduler. Idempotency key = uuid+step, deduped. 5. Content/config: YAML (below) holds copy, reward amounts, step definitions, profession list, week-1 tiles — so design tuning needs no recompile. FOLIA/THREADING CONSTRAINTS (must hold): JDK21, Paper 26.1.2, overworld = Canvas (Folia-family, regionised). Use `entity.getScheduler().run(...)` for anything touching a player/NPC; `Bukkit.getAsyncScheduler()` (or own pool) for DB/NATS; NEVER `Bukkit.getScheduler().runTask` (throws/UB on Folia). No cross-region entity access. Survival listeners must assume they fire on arbitrary region threads — capture only the firing player's context. NPC "Borys" on the Przystań is fine on Paper; if Przystań is ever Folia, schedule its interactions too. CROSS-SERVER (v5): the player can disconnect mid-onboarding on server A and reconnect to server B — because state is in MySQL + mirrored via NATS, server B re-arms exactly the right step. The questline is the SAME account-level progress everywhere; this is the "Konto Sieciowe" promise applied to onboarding. ANTI-ABUSE: see antiAbuse field. Core: idempotent conditional writes, non-tradeable rewards, presence validation, one-time-per-account lifetime gate, alt/farm throttles, starter-kit value floor.
Szkic configu
# raba-onboarding/config.yml  (PL copy with diacritics; all tunable, no recompile)
onboarding:
  enabled: true
  haven-server: "przystan"            # proxy routes new players here
  survival-server: "swiat-1"          # portal target on final step
  idle-nudge-seconds: 180
  guide-npc-name: "&ePrzewodnik Borys"
  currency: "ZETONY"                  # tagged, non-tradeable ledger id
  starter-kit:                        # low value, floored to deter reroll-farming
    name: "&6Tobołek Wędrowca"
    items: ["BREAD:8","WOODEN_PICKAXE:1","WOODEN_AXE:1","TORCH:16","MAP:1"]
  hook-reward: { zetony: 50 }         # unconditional, T+0
  finale:
    zetony: 100
    cosmetic: "smuga_wedrowca"        # earned-source, non-tradeable
    kronika-entry: "Ukończył Pierwszą Wyprawę"
  professions: ["drwal","gornik","rybak","lowca","rolnik"]
  professions-to-pick: 2

  steps:
    - id: "ognisko"
      title: "&6Krok 1/5 &7— Rozpal Ognisko"
      hint:  "&7Postaw ognisko, aby je rozpalić."
      trigger: { type: BLOCK_PLACE, block: CAMPFIRE }
      reward: { zetony: 10 }
      toast: "&aKrok 1 ukończony! Ognisko płonie."
    - id: "rzemioslo"
      title: "&6Krok 2/5 &7— Wybierz swoje Rzemiosło"
      hint:  "&7Otwórz menu i wybierz 2 profesje: &e/profesje"
      trigger: { type: PROFESSION_CHOSEN }
      reward: { title: "&aZostałeś Czeladnikiem!" }
    - id: "zarobek"
      title: "&6Krok 3/5 &7— Pierwszy Zarobek"
      hint:  "&7Wykonaj 5 akcji swojej profesji."
      trigger: { type: PROFESSION_ACTION, count: 5 }
      reward: { zetony: 15 }
    - id: "zlecenia"
      title: "&6Krok 4/5 &7— Tablica Zleceń"
      hint:  "&7Podejdź do Tablicy i odbierz dzienne zlecenie: &e/zlecenia"
      trigger: { type: DAILY_CLAIMED }
      reward: { zetony: 10, start-streak: true }
    - id: "wyrusz"
      title: "&6Krok 5/5 &7— Wyrusz w Świat"
      hint:  "&7Wejdź w portal, aby rozpocząć przygodę."
      trigger: { type: PORTAL_ENTER, target: "swiat-1" }
      reward: {}                       # finale block fires on complete

  week-1:                              # drip, NON-blocking, claimed over 7 days
    - { id: "lvl5",     desc: "Osiągnij 5 lvl rzemiosła",  zetony: 50 }
    - { id: "zlec3",    desc: "Ukończ 3 Zlecenia",          zetony: 40 }
    - { id: "bazar",    desc: "Odwiedź Bazar",              zetony: 30 }
    - { id: "z500",     desc: "Zdobądź 500 Żetonów",        zetony: 60 }
    - { id: "cech",     desc: "Dołącz do Cechu",            zetony: 100 }
    on-complete: { tag: "&7[&aOsadnik&7]" }

anti-abuse:
  lifetime-once-per-account: true      # firstJoin flag in Konto Sieciowe
  max-onboarding-completions-per-ip-day: 3   # alt-farm throttle
  starter-kit-min-playtime-to-keep-seconds: 0  # kit is bound anyway
  require-presence-signal: true        # Strażnik Obecności gate on rewards
  reward-grant: "idempotent-conditional"   # UPDATE ... WHERE step = N-1

nats:
  subjects:
    started:   "onboarding.started"
    step:      "onboarding.step"
    completed: "onboarding.completed"
  dedupe-key: "uuid:step"              # drop replays

# --- MySQL (shared) ---
# CREATE TABLE onboarding_progress (
#   uuid BINARY(16) PRIMARY KEY,
#   step TINYINT NOT NULL DEFAULT 0,
#   started_at BIGINT, completed_at BIGINT,
#   first_join_server VARCHAR(32),
#   week1_claimed JSON,
#   INDEX(completed_at)
# );
# Żetony in existing ledger: zetony_ledger(uuid, delta, reason, ts, source)
#   -- append-only, reason='onboarding:<stepId>', source non-tradeable

KPI

  • D1 retention of new players (PRIMARY) — % who return within 24h of first join; target 30%+ vs ~12-18% clone baseline
  • Onboarding completion rate — % of new players who finish all 5 steps (PIERWSZA WYPRAWA UKOŃCZONA); target 70%+
  • Time-to-first-reward and time-to-completion — median seconds to the T+0 hook and to step 5; watch the hook lands <60s and completion <8min
  • Per-step funnel drop-off — completion % at each of steps 1-5 (isolate which step bleeds players; step 2 'choose profession' and step 5 'enter portal' are the likely cliffs)
  • Profession-pick rate and distribution — % who pick 2 professions, and the drwal/górnik/rybak/łowca/rolnik split (identity commitment is the key D7 predictor)
  • Streak start rate — % who reach step 4 and start Płomień Serii Day 1 (proxy for daily-loop enrollment)
  • Week-1 checklist engagement — % claiming >=1 tile on D2-D7, and full-completion 'Osadnik' rate (bridges D1->D7)
  • Clan/Discord conversion — % who click 'Dołącz do Cechu' / 'Dołącz do Discorda' at finale (social-hook capture)
  • D7 and D30 retention of the onboarded cohort vs a pre-launch baseline cohort (did onboarding move the long tail)
  • Żetony minted by onboarding per hour + completions per IP per day — anti-abuse tripwire metrics (flat/expected = healthy; spike = exploit)
  • Bedrock/Geyser vs Java completion-rate delta — ensures parity (if Bedrock completion lags, the GUIs need fixing)
  • Idle-nudge trigger rate and post-nudge completion lift — does Borys's nudge recover stalled players

Powrót (Offline Re-engagement) — a network-wide win-back layer that pings lapsed/about-to-lapse players OUTSIDE the game (Discord DM/mention via a bot, optional later web push) and rewards them for coming back. Two new components: (1) a Folia-safe Paper plugin "Powrot" deployed to overworld+lobby+nether+end that owns presence/streak state in shared MySQL (db v5_powrot) and emits return-reward grants; (2) a small always-on Node/TS Discord notifier service ("powrot-notifier") that reads the same MySQL + subscribes to the EXISTING Redis at 10.64.0.1:6380 (already used by DonutEssentials' RedisHandler) and sends the pings. Account linking reuses the live Kody plugin: a one-time /polacz <kod> ties a Minecraft UUID to a Discord ID — the code is the player's nick, exactly like Kody's referral code, so it is zero new UX to learn. All cross-server state is shared-MySQL-authoritative (the Kody pattern); Redis is only a fan-out HINT bus, never a source of truth. Templates already in repo: Kody (pl.minecraft.kody) for shaded MariaDB driver + Folia schedulers + idempotent INSERTs + per-deploy password injection; Zgloszenia (pl.minecraft.zgloszenia) for HTTP/webhook on AsyncScheduler. Deploy via existing plugins-work/ptero.py (panel.raba.pl; servers proxy 9c1bfcde, overworld ce7f7a43=Canvas/Folia, lobby 9414c503, nether 71734bdc, end fa6f5f8b).

nakład: high

Lift D1/D7/D30 retention and reactivate lapsed players by manufacturing a reason AND a reminder to return: "streak at risk", "daily reset / new daily quests live", "quest expiring", "your clan/event needs you", plus a tiered comeback bonus that scales with how long you were gone. Time the heaviest pings just before Polish prime time (19:00–21:00 CET) to lift concurrency when it matters most. Bridge retention to the existing Kody acquisition loop by reusing its account/code model for Discord linking.

Pętla
Fully event-driven, no per-tick scanning. (a) PRESENCE: on PlayerJoin/Quit + a 60s async heartbeat the plugin writes last_seen and an authenticity-gated "genuine session" flag (≥60s connected, moved/interacted, not AFK) to MySQL on getAsyncScheduler(); this updates the streak exactly once per Europe/Warsaw day-bucket, made idempotent by INSERT IGNORE into streak_days(uuid, day_bucket). (b) SCHEDULE: the notifier service runs a 5-min cron — SELECT linked players who are OFFLINE now with a trigger firing (streak grace window opening, daily reset 04:00 PL, a quest TTL crossing). (c) FAN-OUT: for real-time triggers (live boss/event start, clan war) the in-game plugin PUBLISHes a compact JSON hint on Redis channel powrot:trigger; the notifier (sole subscriber) re-checks MySQL truth, then DMs only OFFLINE linked members. (d) RETURN: on next genuine join the plugin computes the comeback tier, grants account-bound rewards via console commands on getGlobalRegionScheduler() (Folia rule), and marks the grant consumed in comeback_grants (idempotent). Loop: play → build streak/quests → (go offline) → timed reminder → return → reward → play.
Doświadczenie gracza
Link once: in game type /polacz to get a 6-digit code shown in #powiadomienia, or run /polacz <nick> mirroring Kody. Confirm DMs with a single Discord button (RODO/GDPR double opt-in). From then on, while OFFLINE the player gets at most ~2 well-timed messages/day, e.g.: "Hej Kuba! Twoja seria 6 dni gaśnie za 4 h — wskocz na chwilę, żeby ją uratować. Masz 1 Zamrożenie w zapasie. [Wbijam]" with a deep-link button. On a day a streak would break, a held "Zamrożenie" auto-spends to PAUSE the streak instead of resetting it (Duolingo-style, forgiving). On the next genuine login a clean chat/GUI summary shows streak status, what expired, and a "Powrót" reward if they were gone ≥3 days. Nothing is ever deleted silently — every message is framed as opportunity, never punishment. Players who ignore pings get auto-throttled to fewer sends (respectful). Players who never link still get in-game streak + quests, just no off-platform pings.
Nagrody
ALL re-engagement payouts are account-bound and tagged — never tradeable currency, never raw eco that can re-enter the market (direct answer to the 44.8B dupe). Currency reward is "Żetony Powrotu" credited to a dedicated append-only MySQL ledger, spendable ONLY in a sealed /powrot sklep for cosmetics/QoL (no gear, no sellable items). Comeback tiers by days-away: 3–6 dni = 50 Żetonów + "Witaj z powrotem" tag (7-day); 7–13 dni = 150 Żetonów + 1 Zamrożenie serii + cosmetic trail token; 14–29 dni = 400 Żetonów + a non-tradeable "Powracający" cosmetic crate key (cosmetics-only loot table); 30+ dni = 800 Żetonów + an exclusive "Tęskniliśmy" cosmetic that can NEVER be earned any other way. Streak-save reward is intangible: keeping the streak plus escalating cosmetic milestones at 3/7/14/30/100 days (titles, trails, tab badge). Daily-reset and quest-expiry pings carry NO direct reward — the reward is the in-game quest itself, keeping the ping honest rather than a faucet. Hard coded rules: at most ONE comeback grant per absence episode (PK uuid+episode_id), and total Żetonów minted per UUID per rolling 30 days is capped (config zetony.cap-30d, default 1500); all mints are append-only and reconciled nightly.
Anty-abuse
Designed against the known 44.8B dupe with defense-in-depth: (1) NO tradeable value leaves the system — re-engagement pays only account-bound Żetony (sealed cosmetic/QoL shop, nothing sellable) and account-bound cosmetics; duped Money can't buy any of it and these tokens can't become Money. (2) One-shot grants — comeback_grants PK(uuid, episode_id) guarantees exactly one welcome-back per absence; an "episode" opens only after a genuine session followed by ≥3 full day-buckets offline, so logout/login churn can't farm it. (3) Hard mint ceiling — zetony.cap-30d (default 1500) enforced at write time; the ledger is append-only and a nightly job reconciles SUM(ledger.delta) vs spendable balance and ALERTS on any drift — the exact conservation-of-currency tripwire that would have caught the 44.8B event in minutes. (4) Authenticity gate on streaks — a day counts only with ≥60s connected + movement/interaction + not AFK-flagged, killing autoclicker/alt-army streak farming by reusing a presence signal instead of trusting the client. (5) Alt/link abuse — one discord_id ↔ one uuid (UNIQUE uq_discord); Żetony are non-transferable, so alt-spinning yields only cosmetics on throwaway accounts, never economy value. (6) Notifier is read-mostly — it can SEND and write notify_log.clicked but has NO authority to mint Żetony or grant rewards; every economic write happens in-game through the plugin on a genuine join, so a leaked bot token cannot inflate the economy. (7) Rate/spam caps — max-pings-per-day + ignore-decay protect players and stop the system being a spam vector; deep-link clicks logged for funnel + abuse detection. (8) RODO/GDPR — double opt-in, store only Discord ID + UUID + optional push_sub; one /odlacz command purges link + push_sub.
Sync sieci
Authority = shared MySQL (10.64.0.1:3306, db v5_powrot), exactly the Kody model: every backend (overworld/lobby/nether/end) reads+writes the same rows, so presence/streak/Żetony are network-wide with zero per-server state. Idempotency is structural: streak increments are INSERT IGNORE into streak_days(uuid, day_bucket) so two servers seeing the same player the same day can't double-count; comeback grants are PRIMARY KEY(uuid, episode_id) so a welcome-back is awarded at most once per absence even if the player relogs across servers within seconds; Żetony are an append-only ledger reconciled to the balance nightly. Redis (10.64.0.1:6380, the EXISTING DonutEssentials instance) is a FAN-OUT HINT BUS ONLY — publish on powrot:trigger a tiny JSON {type, uuid?, ttl} for real-time events (live boss/event start, clan war, "your clan needs you"); the notifier service is the sole subscriber, and it re-checks MySQL truth before sending (still offline? still linked? under ping cap?). The Travertine proxy needn't be touched — a join/quit on any backend already lands in MySQL. Failure mode: if Redis is down nothing breaks — the 5-min MySQL cron still catches streak/daily/quest triggers; Redis only makes live triggers instant. The link table is shared too, so /polacz on any server links the global account. NOTE: the research digest says "NATS" but the deployed bus in this stack is Redis (verified via DonutEssentials RedisHandler at 10.64.0.1:6380) — design targets the real Redis; swapping to NATS later is a one-class change since it's only a hint transport.
Budowa
BUILD CUSTOM — two artifacts, reusing existing repo patterns wholesale. (1) Plugin "Powrot" (Maven, JDK21, Paper 26.1.2 API, Folia-aware) cloned structurally from Kody: same shaded+relocated MariaDB driver pl.minecraft.powrot.libs.mariadb.Driver, per-operation Connections opened ONLY on getAsyncScheduler(); ALL reward console commands dispatched on getGlobalRegionScheduler() (NEVER a region thread — mandatory on the Canvas/Folia overworld ce7f7a43 which ticks regions on many threads); player context (UUID/last location) read on the entity/region thread inside the event handler, then handed to async (the exact Kody/Zgloszenia split). Presence heartbeat = getAsyncScheduler().runAtFixedRate every 60s; authenticity gate from a throttled PlayerMoveEvent + interaction timestamp. Redis publish via Lettuce if DonutEssentials exposes it on classpath, else shade ioredis-equivalent jedis — publish on the async thread only. (2) Service "powrot-notifier" (Node 20 + TypeScript, discord.js v14, ioredis, mysql2) on the Mac Mini/Coolify, env-gated (empty DISCORD_TOKEN = disabled, same convention as Umami/Resend); it is the ONLY holder of the bot token and the ONLY component allowed to DM. It polls MySQL on a 5-min node-cron and SUBSCRIBEs Redis powrot:trigger. Web push is a later phase via the existing minecraft.pl web (VAPID + service worker); schema already carries a push_sub column so no migration later. Linking: extend Kody (or a thin shared link table) so /polacz writes uuid↔discord_id, reusing Kody's nick-as-code idea. Deploy via existing ptero.py with a new deploy_powrot.py mirroring deploy_kody.py (TARGETS overworld/lobby/nether/end; password injected from db_credentials.json key v5_powrot, never committed). NEVER restart servers to deploy without owner permission + a live player-count check — stage the jar and load on the next scheduled restart.
Szkic configu
# config.yml — plugin Powrot (Folia-safe; JDK21; Paper 26.1.2)
database:
  host: "10.64.0.1"
  port: 3306
  name: "v5_powrot"
  user: "v5_powrot_user"
  password: ""            # injected per-deploy from db_credentials.json (v5_powrot), NIE commitowac
redis:
  host: "10.64.0.1"
  port: 6380              # istniejacy Redis (DonutEssentials)
  password: ""            # injected per-deploy
  channel: "powrot:trigger"
server-name: "overworld" # ustawiane per-serwer (jak w Zgloszenia)
presence:
  heartbeat-seconds: 60
  min-genuine-session-seconds: 60   # krotsze sesje nie licza serii (anty-bot)
  require-movement: true            # musi sie ruszyc / wejsc w interakcje
  day-timezone: "Europe/Warsaw"     # day-bucket = lokalna doba PL
streak:
  milestones:
    3:  ["lp user %player% permission settemp cosmetics.tag.iskra true 7d"]
    7:  ["powrotfreeze grant %player% 1", "cosmetics give %player% tag.plomien"]
    14: ["cosmetics give %player% trail.ognisko"]
    30: ["cosmetics give %player% trail.pozoga", "tab badge %player% pozoga"]
    100:["cosmetics give %player% animated.wieczny_plomien"]
  freeze-cap: 3                     # max trzymanych Zamrozen
comeback:                          # progi wg DNI nieobecnosci -> komendy konsolowe (account-bound!)
  "3":  { zetony: 50,  cmds: ["lp user %player% permission settemp cosmetics.tag.witaj true 7d"] }
  "7":  { zetony: 150, cmds: ["powrotfreeze grant %player% 1", "cosmetics give %player% trail.powrot"] }
  "14": { zetony: 400, cmds: ["crates givekey %player% powracajacy_cosmetic 1"] }
  "30": { zetony: 800, cmds: ["cosmetics give %player% exclusive.tesknilismy"] }
zetony:
  cap-30d: 1500            # twardy limit emisji na gracza / 30 dni (anty-dupe)
  shop-command: "powrotsklep"   # tylko kosmetyki/QoL, zero sellable
notify-triggers:           # co plugin PUBLISHuje na Redis dla notifiera (tylko hinty)
  daily-reset-hour: 4       # 04:00 PL — nowe Zlecenia
  quest-expiry-warn-hours: 3
  streak-grace-warn-hours: 4
anti-spam:
  max-pings-per-day: 2
  ignore-decay-after: 4     # po 4 zignorowanych pingach -> nizszy bucket czestotliwosci

# --- MySQL (CREATE TABLE IF NOT EXISTS, utf8mb4_unicode_ci, jak w Kody) ---
# players_presence(uuid CHAR(36) PK, name VARCHAR(16), last_seen BIGINT, last_genuine BIGINT,
#   streak INT DEFAULT 0, freezes TINYINT DEFAULT 0, last_day_bucket VARCHAR(10),
#   absence_started BIGINT NULL, ignored_pings INT DEFAULT 0, push_sub TEXT NULL)
# streak_days(uuid CHAR(36), day_bucket VARCHAR(10), PRIMARY KEY(uuid,day_bucket))  -- idempotentny inkrement
# link(uuid CHAR(36) PK, discord_id VARCHAR(32) NULL, opted_in TINYINT DEFAULT 0, linked_at BIGINT,
#   UNIQUE KEY uq_discord(discord_id))
# comeback_grants(uuid CHAR(36), episode_id BIGINT, tier INT, zetony INT, granted_at BIGINT,
#   PRIMARY KEY(uuid,episode_id))  -- DOKLADNIE jeden grant na epizod nieobecnosci
# zeton_ledger(id BIGINT AUTO_INCREMENT PK, uuid CHAR(36), delta INT, reason VARCHAR(32),
#   created_at BIGINT, INDEX idx_uuid_time(uuid,created_at))  -- append-only, nocna rekoncyliacja vs balans
# notify_log(uuid CHAR(36), kind VARCHAR(24), sent_at BIGINT, clicked TINYINT DEFAULT 0,
#   PRIMARY KEY(uuid,kind,sent_at))  -- dedupe + metryki lejka

KPI

  • D1/D7/D30 retention of LINKED vs unlinked cohort (primary metric; run as the core A/B — expect linked to lead)
  • Reactivation rate: % of pinged-offline players who log a genuine session within 24h/72h, split by ping type (streak-risk / daily-reset / quest-expiry / clan-event)
  • Streak-save rate: streaks rescued in the grace window after a streak-risk ping ÷ streaks that entered the grace window
  • Comeback funnel: pings sent → deep-link clicks → joins → comeback grant claimed, per absence tier (3-6 / 7-13 / 14-29 / 30+)
  • Concurrency lift at 19:00–21:00 CET on days with a pre-prime-time push vs control days
  • Notification health: opt-in rate, opt-out rate, ignored-ping decay-bucket distribution, Discord DM block/deliverability rate
  • Anti-abuse telemetry: Żetony minted per UUID per 30d (alert near cap), comeback grants per UUID per 30d (alert if >1 per episode), nightly ledger reconciliation drift (must be 0)
  • Link adoption: % of MAU with a linked Discord ID; /polacz completion rate

Synteza badań

Motywy i kandydaci na sygnaturę

Kandydaci na funkcję-sygnaturę

  • SEZONY z Kroniką — a fixed Polish-themed seasonal model (named seasons, dual-track activity-only Przepustka, soft-reset Liga, fresh themed region WITHOUT a brutal wipe) where the permanent payoff is a hall-of-fame Kronika wall, not a higher balance. Inverts DonutSMP's flat never-resetting flex-economy into an episodic, communal, marketable arc — and contains any future dupe to a single season.
  • CECH — the guild/clan as the network's primary identity: persistent cross-server (MySQL+NATS), shared XP vault, weekly co-op contracts and seasonal Clan Wars, with the owner's jobs feeding the guild treasury. Turns DonutSMP's lonely rob-your-neighbor solo grind into 'log in because your team needs you' — a wedge a clone can't copy without abandoning its FFA core.
  • POLSKIE LOCHY & BOSSY — an authored PvE layer (network-wide co-op world bosses at PL prime-time over NATS + instanced weekly-lockout dungeons) wrapped in Polish folklore (Smok Wawelski, Kroniki Pustkowi) with a separate PvE-only BOUND gear ladder. Pure content moat: DonutSMP has no NPCs, no bosses, no dungeons, no lore — and content is what competitors can't paste from BuiltByBit.
  • TWOJA WYSPA — a permanent, owned, raid-immune personal island/plot on a dedicated Paper server, with an island-level Liga Wysp and public visiting/showcase. The literal opposite of a wipe-prone lifesteal arena and an unmatchable promise: 'na DonutSMP tracisz wszystko — u nas masz swój dom, który zostaje.'
  • ŻYWA GOSPODARKA PL — a player-run market (rented-stall Bazar + timed-bid Aukcja with anti-snipe + a public 'Cena rynkowa' index surfaced on ceny.minecraft.pl) built on a deflationary, dupe-quarantined spine (non-tradeable Żetony rewards, daily payout ceilings, burning sinks, live money-conservation tripwires). Repositions the server from 'grind shards' to 'a real, trustworthy, self-correcting economy you can read' — and turns the 44.8B scar into a trust differentiator.

Seasons, Battle Pass & Prestige (the FOMO + horizon spine)

seasonal

The single most-repeated cluster: run the survival economy in fixed-length Polish-themed SEASONS (6-10 weeks) with a dual-track Przepustka (free + premium, XP only from PLAYING never paying), a soft-reset competitive ladder, and a permanent cosmetic Legacy/Dziedzictwo wall so nothing emotional is ever deleted. Prestige/rebirth inverts DonutSMP's 'number-go-up' by making VOLUNTARILY burning wealth the flex; every reward is cosmetic/utility, never raw currency (dupe containment). This is the strongest structural break from a flat never-resetting clone and the cleanest non-P2W monetization story.

  • Przepustka Sezonowa: 6-week Polish-themed pass (e.g. 'Sezon: Bursztynowy Szlak'), free + premium tracks, XP only from quests/jobs/events, hard reset + new theme
  • Sezon + Kronika/Liga: soft-reset ladder that wipes the grind but banks names, ranks and feats forever into a permanent hall-of-fame at spawn (dated 'Mistrz Sezonu' titles)
  • Odrodzenie / Mistrzostwo Zawodu: per-vocation prestige rebirth — reset górnik to 1 for a permanent title/tool-skin/micro-perk; /topodrodzen ranks sacrifice not balance
  • Sezonowa mapa: fresh themed survival region each season WITHOUT a brutal full wipe — preserves bases (respects veterans), adds novelty + a season finale POI
  • Buy-not-build: BattlePass/Tasks-Quests (Polymart, Folia-safe 4.9.3+) for the pass engine; XLeaderboards (Folia) + DriftPrestiges for ladder/prestige — author content yourself

Jobs / Vocations / Skill Mastery (the owner's idea, done as deep RPG identity)

long-term

Direct execution of the owner's drwal/górnik/rybak/łowca idea, but unanimously reframed away from a flat XP-paycheck: vocations should unlock ABILITIES, recipes, titles and access — not money. Levels grant 'super minor' boosts; the retention comes from a months-long mastery bar, a prestige ladder (Czeladnik→Mistrz→Arcymistrz), and a 'I'm THE górnik on this server' identity. Must be Folia-correct: XP driven purely by block-break/fish/kill events on the owning region thread (EntityScheduler), NEVER world-scanning. Jobs Reborn is NOT Folia-safe; UniverseJobs/AuraSkills are.

  • Profesje on EntityScheduler: pick 2 trades, every action levels a named vocation; perks are abilities/recipes/double-drop chance + tiny sell bonus, hard-capped per hour
  • Mistrzostwo + Prestiż: per-profession level cap then rebirth for a Polish title, tool-skin, badge in tab, and one micro-passive; 'Tablica Mistrzów' wall at spawn
  • Skill-gated ZONES: level unlocks ACCESS not stats — a deep diamond stratum for Górnik 60, enchanted forest for Drwal, legendary pier for Rybak (pulls players across servers)
  • Active ability loadout: mcMMO-style abilities but only 3 equippable slots — turns unlocks into a re-theorised build decision, real skill expression vs bought power
  • Buy UniverseJobs/AuraSkills (Folia-native), author all job definitions + Polish naming yourself to keep boost tuning in your control

Daily/Weekly Quest Board + Login Streak (the daily heartbeat)

daily

DonutSMP has NO native quests (it outsources to Medal.tv clip-to-earn for acquisition only) — so a native, rotating daily/weekly quest board is both the owner's stated idea and a clean retention spine. Best-in-class framing: a walkable in-world Tablica Zleceń / Cechmistrz NPC (sense-of-place, not a faceless GUI), ONE free reroll + costed rerolls (avoid degenerate spam), vocation-tagged contracts that feed the jobs system, and a forgiving streak (freeze/insurance, never punishing reset-to-zero). Quests are the connective tissue that surface your unique vocations/bosses ('osiągnij 25 lvl drwala', 'pokonaj Smoka Wawelskiego').

  • Tablica Zleceń / Codzienne Zlecenia: 3 daily + 1 weekly rotating contracts pulled from a physical in-world board, claimed via /zlecenia, Folia-safe (tracked from events player already fires)
  • Plomień Serii streak with Ulga/Tarcza freeze: escalating milestones at 3/7/14/30/100 days, one missed day freezes (not resets) the streak — Duolingo break-protection
  • Vocation-tagged 'Kontrakty Fachowca': dailies tagged drwal/górnik/rybak grant job-XP, tying the daily loop into the jobs loop so they reinforce
  • Costed reroll: one free reroll/day + paid rerolls in soft currency (kills the 'everyone does the same easiest quest' degeneracy)
  • Reward in account-bound shards/Punkty Honoru + cosmetics, NEVER tradeable Money (44.8B dupe containment)

Co-op Social Layer: Clans / Guilds / Towns / Bonds (turn solo churn into social obligation)

social

The most strategically important wedge: DonutSMP is lonely-by-design (everyone is a rival), so any durable named two-sided bond is something it structurally can't copy. Make the CLAN/Cech/Ród the primary unit of identity and progression — persistent MySQL-backed, cross-server (NATS), with a shared XP vault, an anti-dupe ledger bank, weekly co-op contracts, and seasonal clan wars. Layer lighter bonds on top: marriage/Więź with activity-gated perks, platonic best-friend pacts, mentor/uczeń onboarding, and cheap /party tooling. Co-op objectives REQUIRE cooperation to win, structurally rewarding teamwork over rob-your-neighbor.

  • Cech / Gildie / Klany: persistent cross-server clan that levels by pooling member activity into a shared vault; jobs XP feeds the guild treasury; minor perks only (never P2W currency)
  • Weekly clan co-op contracts ('Kontrakty Klanu'): 'wspólnie wydobądźcie 50k bloków' — only completes via combined effort, pays clan XP + a shared milestone chest
  • Seasonal Clan Wars / Wojny Klanów: opt-in 4-6 week war ladder; KOTH/PvP becomes a TEAM sport with cosmetic prestige and periodic fresh-start resets
  • Marriage (Więź) + platonic Pakt Przyjaźni + Mentor/Uczeń: activity-gated leveling bonds; mentor incentivised to PROTECT newbies (kills the DonutSMP 'farm the noob' culture)
  • Proxy-side /party (Drużyna): instant casual groups, cross-server warp to teammates, shared mob/quest credit — the on-ramp that makes 'play together' the default

Authored PvE: Bosses, Raids, Dungeons & Lore (content a clone structurally can't run)

weekly

DonutSMP is 100% PvP/economy sandbox with zero authored encounters, NPCs, tutorial or world identity — so PvE content is the deepest moat (content, not code, is what competitors can't copy-paste). Cluster spans scheduled network-wide co-op world bosses (shared HP bar, contribution-bracket rewards so casuals AND whales get paid), instanced 4-player dungeons with WEEKLY lockouts (attracts the friend-group segment), a separate PvE-only BOUND 'Relikt' gear ladder (never warps the PvP economy), reputation factions (Przyjazny→Czczony) with NPC quartermasters, and a Polish folklore lore spine (Kroniki Pustkowi, Smok Wawelski) that reframes the economy as set-dressing for a story.

  • Przebudzenie / Najazd: scheduled network-wide co-op world boss over NATS, shared bossbar HP, rewards tiered by contribution % (not last-hit), loot is account-bound — clip/marketing gold
  • Lochy: dedicated Paper dungeon server, NATS-routed party queue, instanced 4-player runs with Normal/Heroiczny + weekly best-loot lockout (MMO cadence)
  • Reliktowy Sprzęt: PvE-only account-bound gear ladder (Pęknięty→Mityczny) that's disabled in open-world PvP — earned progression walled off from the tradeable economy
  • Frakcje + Reputacja: 3-4 NPC factions with rep bars unlocking bound cosmetics/access/vendors; allegiance choices create a server-wide narrative tug-of-war
  • Polski Lore + onboarding questline (Kroniki Pustkowi / Smok Wawelski): guided first-session story that teaches systems AND is the biggest anti-clone branding move; build via MythicMobs + BetterModel (Folia)

Cosmetics, Collections & Achievements (status earned, not bought)

long-term

The sharpest anti-P2W lever: on this network the coolest stuff is EARNED, not purchased — the opposite of DonutSMP's pay-to-flex core. A central /szafa wardrobe fed by the free seasonal pass; achievement-locked prestige trails money literally cannot buy; a collection-completion 'museum'/dex where COMPLETING a set (fish, mobs, ores, biomes) is the reward and shifts the end-game flex from 'biggest balance' to 'most complete dex'; hidden/secret achievements that drive wiki-building and discovery culture; a permanent /kolekcja almanac that greys out missed past-season exclusives (compounding FOMO + loyalty-as-status); cosmetic-only levelable pets/companions (NOT crate SKUs) and breedable mounts as a creative collector hook.

  • Szafa Sezonowa: central /szafa wardrobe (trails, hats, pets, tags) fed by a FREE playtime-only seasonal cosmetic track — status from time invested, not a credit card
  • Smugi Osiągnięć: elite prestige trails/auras ONLY from hard feats (top-10 season, 1000h, job maxed, KOTH streak) — visibly out-class anything purchasable
  • Kolekcje / Kolekcja Sezonowa: a manual-only collection dex (counts only blocks YOU broke / mobs YOU killed) gating recipes + a permanent almanac greying out missed seasonal cosmetics
  • Sekrety: undocumented easter-egg achievements (cheap to ship) that spawn discovery/wiki culture DonutSMP's fully-transparent shop model can't have
  • Chowańce: EARNED levelable cosmetic companions (+ breedable Stajnia mounts with trait rolls) — RPG progression you can't buy, not a /shop pet

Player-Driven Economy & Anti-Inflation Backbone (the defensive core)

weekly

Replace DonutSMP's canned NPC /shop + sell-wand with a genuine player-run market — but every surface is engineered against the known 44.8B dupe. Two pillars: (1) MARKET IDENTITY — a rented-stall Targowisko / Bazar with QuickShop chest-shops, a real timed-bid auction house (Allegro/eBay energy, anti-snipe, NATS outbid pings), buy-orders/Skup Kontraktowy with DB escrow, dynamic supply-driven Giełda prices, and a public 'Cena rynkowa' ticker (doubles as ceny.minecraft.pl SEO). (2) DEFENSIVE ECONOMY — all engagement rewards routed through a tagged NON-TRADEABLE Żetony currency that quarantines duped funds, hard daily payout ceilings, wealth-scaling sinks (Skarbiec Krajowy, Aukcja Skarbów that BURNS bids), reputation-gated reward velocity, and live conservation-of-money tripwires that catch the next dupe in minutes. BUILD this, never buy a Donut*-branded economy plugin (that IS being the clone by construction).

  • Żetony: a tagged non-tradeable reward currency for ALL quest/job/daily payouts — duped Money can never buy prestige/cosmetics (structural dupe quarantine)
  • Bazar/Targowisko + timed-bid Aukcja: rented stalls with QuickShop chest-shops + a real auction house (anti-snipe, escrow, NATS outbid pings) — economy becomes a social space, not a vending machine
  • Skarbiec Krajowy + Aukcja Skarbów: public server-wide sinks that BURN currency (winning auction bids deleted) and auto-tune prices so inflation self-corrects visibly
  • Dzienny Limit Wypłat: transparent shared daily earning ceiling — mathematically prevents runaway money AND is a 'cap out before reset' daily hook
  • Cena rynkowa ticker + Skup tygodnia: median price-history index (SEO on ceny.minecraft.pl) + rotating weekly server bulk-buy contract as a soft price floor

Live-Ops Cadence: Scheduled Events, Server Goals & Holiday Calendar (a server with a heartbeat)

weekly

DonutSMP is mechanically identical every day forever and US-timezone-locked — its biggest exploitable weakness. Manufacture a content RHYTHM at Polish prime time (19:00-21:00 CET): a nightly 'Burza' flash-modifier hour, scheduled weekend events run by an Animator NPC, network-wide cooperative goal bars (razem wykopcie 2,000,000 — fill it, whole network gets a buff weekend), and a Polish holiday calendar (Mikołajki, Wigilia, majówka, Walentynki) with an advent-style login calendar and 'never again' exclusive cosmetics. Plus geo-located 'be there in 10 min' meteor/treasure drops and nightly-resetting leaderboard sprints. This is appointment-play a clone literally cannot serve to Europeans.

  • Wydarzenie na żywo over NATS at PL prime-time: a single operator trigger fans a synchronous server-boss/2x-event to ALL backends at once — structural advantage Donut can't copy for PL
  • Puls Sieci / Wspólne Logowanie: network-wide cooperative goal bar (proxy bossbar across every server) that fills from all servers; completion gives everyone a reward — the 'we are a network' signal
  • Kalendarz Adwentowy + Polish holiday events: 24-door advent + Mikołajki/Wigilia/majówka/Walentynki events with exclusive never-returning cosmetics (culturally localised FOMO)
  • Burza (Storm Hour): nightly 30-min rotating-modifier ritual at 20:00 Warsaw with a 15-min warning bossbar — gives the network its own folklore/cadence
  • Liga Wieczoru: nightly-resetting multi-category leaderboard sprint (jobs/PvP/events) with same-night rewards — keeps competition fresh and inclusive vs ossified all-time boards

Differentiated PvP: Anti-Snowball Lifesteal, Persistent KOTH, Ranked & Bounties

daily

Keep the lifesteal/KOTH hook that works but fix what makes DonutSMP miserable for everyone except the top 1%: graduated lifesteal (newbies can't be farmed to elimination, heart transfer scales DOWN the more hearts the killer has, exile not perma-ban) marketed as 'lifesteal bez płaczu'; comeback/underdog buffs (Ostatni Oddech) that rubber-band the rich-get-richer death spiral; a real ranked ELO ladder (Liga Krwi, soft-reset seasons) giving PvP a progression spine; a persistent KOTH crown that puts an escalating server-wide bounty on the winner (turns a 5-min event into a multi-hour manhunt that drags PvE players in); and a player-funded bounty/Kontrakty na Głowę market with escrow + ransom as a drama engine.

  • Tarcza Nowicjusza + graduated lifesteal: protected new/low-heart players, anti-snowball heart transfer, exile-not-ban — 'lifesteal that doesn't punish you for being new'
  • Ostatni Oddech: comeback/underdog buffs on losing streaks + outsized rewards for killing a much stronger player — the structural fix that stops the server collapsing into a 5-whale ghost town
  • Liga Krwi: real ranked ELO PvP ladder (Drewno→Arcymistrz Krwi) with monthly soft-resets and tier-gated COSMETIC rewards — a category Donut doesn't compete in
  • Korona Króla Wzgórza: KOTH winner wears a network-visible crown with an auto-escalating server-paid bounty until killed — a roaming multi-hour manhunt
  • Kontrakty na Głowę: player-funded bounty market with escrow, stacking-on-kills, and a payable Okup (ransom) sink — emergent rivalry drama

Persistent Personal Space: Islands / Plots / Homes (the thing you can't lose)

long-term

A smaller but high-leverage cluster: DonutSMP has zero persistent personal building space (its world is wipe-prone PvP chaos), so a permanent, owned, raid-immune działka/wyspa on a dedicated Paper island-server is a thing it physically cannot offer — marketing writes itself ('na DonutSMP tracisz wszystko, u nas masz swój dom'). Layer an island-level scan + weekly Liga Wysp leaderboard (gives builders/aesthetes a status path that isn't money or kills), frictionless /odwiedz visiting + curated public Wystawa showcase (manufactures a social graph + organic TikTok base-tour marketing), and co-owned Wspólnota islands (converts solo retention into friends pulling each other back).

  • Działka/Wyspa jako baza domowa: permanent owned raid-immune plot on a dedicated /wyspa Paper server — the persistent identity anchor a wipe-prone clone can't match
  • Liga Wysp: island block-value level + weekly/seasonal leaderboard with themed cups — a leaderboard builders and non-PvP players can top
  • Odwiedziny + Wystawa: /odwiedz visiting + curated public showcase gallery with likes — builds a social/spectatorship layer and shareable base tours (free PL marketing)
  • Wspólnota Wysp: co-owned guild islands (up to ~6, shared bank/level, roles) — friends log in so the shared island doesn't fall behind in the Liga
  • Towny alternative (Druga Mapa — świat państw): parallel governance/territory world with daily upkeep as a login forcing-function + hard currency sink

Cozy Gathering Loops: Fishing / Farming / Mining Depth (broaden beyond PvP sweats)

weekly

A tonal-opposite pillar to lifesteal that broadens the retainable audience to builders, farmers and burned-out players: Stardew-style gathering DEPTH. A signature Polish-flavoured fishing-dex (biome/time/weather/bait combos, named legendary Wisła/Bałtyk catches) feeding a personal aquarium; quality-tiered seasonal crops (Zwykły/Srebrny/Złoty/Iridowy) that make a farm a daily-tended garden not an AFK sugarcane stack; a depth-tiered mining dimension with geode 'jackpot' moments; all tied together by a cross-loop 'Mistrzostwo Zbieractwa' meta-track with seasonal gathering challenges and a hall-of-fame — which explicitly repoints rewards toward MASTERY/cosmetics/status instead of money/power.

  • Akwarium: deep fishing-dex (biome/time/weather/bait), named Polish legendary fish, personal aquarium to show off — a cozy collect pillar with nothing to do with lifesteal
  • Plony: multi-stage quality-tiered seasonal crops where soil/watering-streak/seeds matter — farm becomes an optimisable daily garden
  • Głębia: dedicated depth-tiered mining dimension with breakable geodes/treasure nodes and server-wide vein rushes — 'going mining' becomes an event
  • Mistrzostwo Zbieractwa: cross-loop prestige meta-track + weekly gathering challenges + seasonal leaderboard that ties fishing+farming+mining together and repoints rewards to status not cash

Network-Wide Identity & Anti-AFK Backbone (the invisible infrastructure)

long-term

The cross-cutting plumbing that makes everything above one coherent product and dupe/farm-resistant. (1) NETWORK IDENTITY: one MySQL-authoritative, event-sourced, idempotent player account — quests, job XP, pass tier, rank and leaderboards are GLOBAL and update in real time via NATS no matter which server you're on, so leaving any single server feels like abandoning your whole account (reframes product from 'a server' to 'your persistent network account', and lets non-survival servers share progression). (2) ANTI-ABUSE: one authoritative Folia-safe 'is this player genuinely present?' signal that no reward system can be farmed by autoclickers/AFK pools/water-macros/alt armies — explicitly engineering FOR genuine presence ('serwer gdzie liczy się realna obecność, nie boty'). Plus an engagement-gated cozy AFK-fishing cove that turns the AFK demand into a low-attention-but-present surface.

  • Konto Sieciowe: one event-sourced MySQL-authoritative identity synced live over NATS — quest/job/pass/rank progress updates across every server in real time (never trust-the-client increment)
  • Tablice na Żywo: real-time network-wide leaderboards as lobby holograms (top drwal/górnik/PvP/pass), updating the instant someone is overtaken — rewards skill/time not /baltop wealth
  • Strażnik Obecności: one authoritative Folia-safe presence/anti-farm signal underpinning every reward system — kills autoclicker/AFK-pool/alt-army farming
  • Zadania Sieciowe: cross-server quest chains that route players through survival→PvP→minigames, progress syncing instantly at the portal — makes the network feel like one designed world
  • Przystań Rybacka: engagement-gated cozy AFK-fishing cove (periodic lightweight reel minigame proves presence) — converts the AFK-fish demand into a present-but-low-attention retention surface, not a bot farm

Duże zakłady

  • Seasonal model end-to-end (Przepustka + soft-reset Liga + permanent Kronika/Legacy wall + fresh themed region without full wipe) — the single biggest identity break from a flat never-resetting clone; gives a quarterly marketing beat and a non-P2W monetization story. High effort across pass engine, ladder, hall-of-fame and map rotation.
  • Authored PvE pillar: network-wide co-op world bosses over NATS + instanced weekly-lockout dungeons on a dedicated Paper server + a PvE-only BOUND Relikt gear ladder + Polish folklore lore/NPCs — the deepest moat (content, not code) and attracts the friend-group/PvE audience a pure-FFA clone repels. Build on MythicMobs + BetterModel (Folia), but encounters/lore are bespoke.
  • Persistent clan/guild (Cech) as the primary unit of identity: cross-server MySQL+NATS state, shared XP vault, anti-dupe ledger bank, weekly co-op contracts, and seasonal Clan Wars — converts solo churn into social obligation (the strongest MMO-like retention lever). Every shared-currency surface must be append-only/server-capped after the 44.8B incident.
  • Defensive economy backbone: a tagged NON-TRADEABLE Żetony reward currency quarantining all engagement payouts, hard daily payout ceilings, public wealth-scaling sinks (Skarbiec Krajowy / burning Aukcja Skarbów), reputation-gated reward velocity, and live conservation-of-money tripwires. Inverts DonutSMP's pure-faucet model into a deflationary, dupe-contained one — non-negotiable given the prior dupe.
  • Network-wide identity layer (Konto Sieciowe): event-sourced, idempotent, MySQL-authoritative progression (quests/jobs/pass/rank/leaderboards) synced live over NATS across every server — reframes the product from 'an SMP server' to 'your persistent network account', which a single-server clone can't copy without rebuilding its backend.
  • Permanent personal islands/plots on a dedicated raid-immune Paper server (Działka/Wyspa) + Liga Wysp + visiting/showcase — a thing DonutSMP physically cannot offer (its world is wipe-prone). High build (new backend, claims, level-scan, visiting) but a category-defining promise: 'u nas masz swój dom'.

Adwokat diabła

Krytyka i ryzyka

Sequencing: the signature feature (TWOJA KRONIKA + Smok Wawelski boss) lands in Phase 3, weeks 16-26

Problem: The ENTIRE thesis of the pivot — 'we are not a DonutSMP clone' — is carried by the Kronika/world-boss. The roadmap admits all marketing must lead with it. But it doesn't exist for ~4-6 months. For the first half-year the live product is still lifesteal + crates + economy + a quest board, i.e. a DonutSMP clone with chores bolted on. You cannot run acquisition (the thing that justifies the build) until the one differentiator ships, so Phases 0-2 generate retention loops for a player base you're explicitly told not to grow yet. The roadmap front-loads invisible infra (Phase 0) and generic retention (Phase 1) and back-loads the only reason to switch from Donut. That is the opposite of de-risking.

Fix: Pull a MINIMUM-VIABLE Kronika boss forward to run in parallel with Phase 1, not Phase 3. You do NOT need MythicMobs+BetterModel custom models, branching lore, or a dungeon server to ship 'one shared-HP boss spawns on every backend at 20:00, contribution-bracket account-bound loot, name flashes on a lobby wall, dated deed banked forever.' That is a NATS fan-out + a vanilla-ish reinforced mob + a MySQL deed ledger — buildable in the Phase 0-1 window on the same spine you're already building. Ship the ugly version of the moat in week 6-8 as the marketable heartbeat; polish models/lore in Phase 3. Differentiation cannot be the last thing you build.

The signature co-op boss is population-gated and there is NO population/critical-mass plan

Problem: A synchronous prime-time shared-HP world boss is only 'clip-worthy' and 'we are a network' if dozens of players show up per backend at 20:00. A network mid-transition from a clone almost certainly has thin CCU. A shared-HP boss with 4 people online is a depressing slog, not a marketing moment, and the contribution-bracket reward math breaks (everyone is bracket 1). The roadmap lists 'empty-server perception' as a risk but its mitigation (goal bar, activity feed) is cosmetic. The boss REQUIRES the very concurrency it is supposed to create — chicken-and-egg. Worse, synchronous-everywhere means you fragment a small population across N backends instead of concentrating it; a 30-CCU network split 5 ways is 6 per boss.

Fix: Make the boss scale to population and CONCENTRATE players, not fan-out-and-fragment. Scale boss HP and bracket thresholds to live CCU so a 6-person fight still feels like a win. For low-population periods, route everyone to ONE shared boss arena/instance (proxy-send to a single backend) instead of spawning a separate boss per server — density is the magic, dispersion kills it. Set a hard floor: do not market the boss until a baseline CCU (e.g. 40+ at prime time) is provably hit, and engineer Phase 1 specifically to manufacture that floor (the Discord 'wbijajcie' ping quick-win is doing more real work here than the whole boss system).

Litościwy Licznik (pity counter + published odds on EXISTING crates) is sold as the anti-P2W trust win, but it keeps the crate

Problem: This is the single most DonutSMP-ish thing in the roadmap dressed up as differentiation. Adding a pity counter to a paid loot box does not make it 'a fair climb' — it makes it a better-tuned gambling box. The vocal PL anti-P2W scene that the roadmap repeatedly courts does not want transparent gambling, it wants no pay-for-power gambling. Keeping crates/keys (a core Donut mechanic) while claiming 'earned not bought' is a direct contradiction with the north star, and players WILL call it out. You're branding a P2W mechanic as anti-P2W.

Fix: Decide what crates actually are post-pivot. Either (a) strip purchasable power/economy items out of crates entirely — crates drop ONLY cosmetics/Żetony/QoL, never gear or tradeable Money, making the pity counter honest; or (b) keep paid power-crates but stop calling any of this anti-P2W and don't lead trust marketing with it. The current 'pity counter = trust win' framing is the kind of self-congratulation an adversarial PL community shreds. Tie crate keys to the Żetony rail (earned) and remove the cash-for-keys-for-gear path if you mean the positioning.

Żetony account-bound quarantine creates a dead-currency motivation hole

Problem: Żetony are non-tradeable, capped, and (correctly) can't touch the real economy. But the roadmap never resolves the consequence: if Żetony buy ONLY cosmetics, pass slots and QoL, the existing audience — lifesteal/economy sweats who are here to get RICH and POWERFUL — have weak reason to grind them. A capped cosmetic currency is a soft hook for the cozy/collector audience you don't have yet, not the PvP/whale audience you currently have. You risk building a pristine reward rail nobody who's currently online wants to farm, while the tradeable Money economy they DO care about runs on a parallel track untouched by all your new loops. The two economies don't reinforce; they compete for attention.

Fix: Give Żetony at least one sink the CURRENT audience covets that is still un-warpable: time-limited convenience/QoL (extra /sethome, faster job cooldowns, cosmetic-but-flexy prestige that PvPers actually wear), AND make the strongest PvP/economy prestige titles purchasable ONLY in Żetony so the grind currency gates the flex the sweats want. Critically, decide whether the tradeable Money economy gets DEFLATED/retired over seasons or coexists forever — if it coexists, your whole 'czego dokonałeś not ile masz' inversion is rhetorical because 'ile masz' still fully works in the parallel Money economy you didn't touch.

Permanent Kronika 'forever' vs 6-week seasonal soft-reset is an unresolved tension

Problem: The north star promises deeds 'banked FOREVER, wykute w kamieniu.' The season model wipes the grind every 6 weeks. These collide: if everything emotional is permanent, the season reset loses its sting (the FOMO engine); if the season meaningfully resets, players will perceive the wipe as losing progress regardless of the permanent-name-wall, because the wall is just text while their levels/loot reset. 'We never delete anything emotional' and 'we reset every 6 weeks to create urgency' are in direct philosophical tension and the roadmap asserts both without reconciling. New players joining at season week 5 also stare at a permanent wall of deeds they can never earn (gone forever), which is demotivating, not aspirational.

Fix: Be explicit and ruthless about the line: Kronika banks NAMES + dated titles + cosmetic trophies forever; the season resets POWER/economy/grind. Make sure every banked deed is purely status (a name on a wall, a dated title, a cosmetic) and NEVER a power/economy advantage, or veterans compound and the 'soft reset' is fake. For late-joiners, ensure most deeds are RE-EARNABLE every season (Mistrz Sezonu is per-season, so each season offers a fresh shot) and only a tiny tier is truly one-time, so the wall reads as 'history I can join' not 'a closed club.'

Profesje 'super minor boosts' are simultaneously the headline and a confessed nothing

Problem: The owner's jobs idea is preserved as deep RPG identity, but the actual mechanical reward is hard-capped 'super minor' boosts + cosmetics + access. A months-long mastery bar whose payoff is explicitly minor will not, by itself, hold the PvP/economy audience — and the access-gating (deep diamond stratum for Górnik 60, etc.) directly feeds the tradeable economy you're trying to NOT make the center of gravity (a górnik who unlocks better ore access just gets richer in Money). So either the boosts are genuinely minor and don't motivate, or the access perks are economically meaningful and re-center the Money grind. The roadmap wants both 'never affects PvP/economy' and 'unlocks zone access that produces better resources' — those conflict.

Fix: Separate identity reward from economic reward cleanly. Profesje should grant TITLES, cosmetic tool-skins, recipes for cosmetic/non-economy items, and the prestige wall — the durable identity. If you grant resource-zone access, that access must yield Żetony/cosmetic-tier loot or strictly bound PvE materials, NOT a Money-economy advantage, or you've rebuilt the pay/grind-to-win ore ladder. And be honest in marketing: sell profesje as identity and mastery, never imply a power advantage you've deliberately capped to nothing.

Phase 0 is 4 weeks of zero player-visible change on a network you're told feels like it's bleeding/cloning

Problem: Spending the first month shipping an invisible event-sourced ledger + presence guard + idempotency keys is architecturally correct but commercially dangerous: the existing player base sees no change for 4 weeks while you've decided to pivot identity. On a small clone-feeling network, a month of silence is churn. The roadmap treats Phase 0 as pure prerequisite with 'no direct retention lift' — but doing nothing visible for a month has NEGATIVE retention on an at-risk base. There's also key-person/scope risk: this is a bespoke event-sourced distributed ledger over NATS+MySQL on a Folia overworld, which is genuinely hard; if it slips, everything slips and the visible pivot is delayed further.

Fix: Interleave a player-visible quick-win INTO weeks 1-4 so the base sees motion: ship Płomień Serii v0 and Litościwy Licznik (both explicitly buildable on the EXISTING data store per the quick-wins) and the manual Discord prime-time ping in week 1-2, on the old rail, accepting they'll be migrated onto the Żetony/ledger rail later. Yes it's throwaway-ish, but visible momentum on an at-risk base is worth more than rail purity for two features. Also de-risk the ledger: prototype the idempotent grant + NATS delta on ONE source (login) end-to-end before generalizing, so a slip is contained.

Analytics is asserted ('Umami-style server-side cohort events') but no actual measurement system is specified

Problem: Every phase claims to be tuned by D1/D7/D30 cohorts, faucet/sink balance, funnel drop-off — yet there is no concrete pipeline named (Umami is a web analytics tool, not a Minecraft event sink; 'Umami-style' is hand-waving). The metrics section lists beautiful KPIs with no system that computes them. Without a real events-to-warehouse path you will ship Phase 1-4 blind and the central promise ('measurable from the first feature') is vapor. This is the same gap the digest flagged, partially papered over.

Fix: Specify the actual stack in Phase 0: ledger appends emit structured events to a real store you can query for cohorts (e.g. write engagement/login/session events to a Postgres/ClickHouse table or a self-hosted event collector you already run for raba infra), with a defined retention-cohort query. 'Server-side Umami-style' is not a system. Name the sink, the schema, and who builds the D1/D7/D30 dashboard, and gate Phase 1 on that dashboard existing — otherwise every 'we'll tune it later' claim is false.

Bedrock/Geyser is listed as a risk but every flagship loop is GUI-heavy

Problem: A huge slice of the PL audience is on Bedrock/mobile (per memory, Geyser is live). The quest board (/zlecenia GUI), /szafa wardrobe, party GUI, auction house, price-guess minigames, season pass UI — the entire visible surface — is inventory-GUI-driven, which is clunky-to-broken on Bedrock without Geyser Forms. The roadmap acknowledges this in one risk line then designs 8 phases of desktop-GUI features anyway. If half your prime-time CCU is Bedrock and the boss/quests/pass feel bad on Bedrock, the timezone moat (Polish mobile kids at 20:00) is undercut by UX.

Fix: Make Bedrock-first a Phase 0/1 constraint, not a Phase-end caveat: standardize every menu on a Geyser-Form-compatible UI library from the first GUI you ship, and test the daily board + pass + boss HUD on a real Bedrock client before calling Phase 1 done. The mobile audience at Polish prime time is literally the moat — its UX cannot be an afterthought.

Najwyższa dźwignia

Ship an ugly, population-aware Minimum-Viable Kronika boss IN PARALLEL WITH PHASE 1 (target week 6-8), not in Phase 3. The roadmap's own thesis is that the world-boss + permanent Kronika is the one moat DonutSMP structurally cannot copy and the thing all marketing must lead with — yet it's scheduled as the LAST visible build (weeks 16-26), behind a month of invisible infra and two phases of generic retention any clone could ship. That ordering is backwards: it spends 4 months building retention loops for a player base you're explicitly told not to grow until the differentiator exists, leaving the live product as a DonutSMP-clone-with-chores during the exact window you're trying to escape that label. The MVP boss does NOT require the Phase 3 heavy cluster (custom MythicMobs models, branching folklore, a dungeon server, Reliktowy ladder) — it requires only the Phase 0 spine you're already building (idempotent account-bound grants + NATS fan-out + a MySQL deed ledger) plus a reinforced mob and a lobby wall. Crucially, engineer it to CONCENTRATE players into one shared fight scaled to live CCU rather than fan-out-and-fragment a thin population across N backends — density is what makes it clip-worthy; dispersion makes it three sad players hitting a tanky zombie. Polish the models, lore, and dungeon in Phase 3, but get the marketable, differentiating heartbeat live while the base is small and you still need a reason for anyone to choose you over Donut. Everything else (jobs, pass, clans, islands) can wait; being-not-a-clone cannot.

Wciąż za bardzo "DonutSMP"

  • Crates/keys are KEPT and merely get a pity counter (Litościwy Licznik). A loot box with published odds is still a loot box — this is the most Donut-like mechanic in the deck rebranded as anti-P2W. Differentiation requires removing pay-for-power/economy items from crates, not improving the gambling UX.
  • Graduated lifesteal + persistent KOTH + bounties (Phase 4) are still the DonutSMP core mechanics with anti-snowball tuning. 'Lifesteal bez płaczu' is a better lifesteal server, not a different product. It's a real improvement but a sweat looking at it sees the same genre; the differentiation is tonal, not structural.
  • Żywa Gospodarka PL (Bazar + Aukcja + price index) is still the DonutSMP shard-grind economy with a nicer storefront and an auction house. QuickShop chest-shops + auctions is what most economy servers already run. The dupe-quarantine backbone is the real novelty; the player-market surface itself is genre-standard, not a moat.
  • Spawners + sell-wands + /shop remain implied as untouched current mechanics. Nothing in the roadmap retires the canned AFK-money loops that most define the Donut-clone feel; the new loops are added ALONGSIDE them, so the clone DNA persists underneath.
  • Drobne Wzmocnienia / 'super minor boosts' is the same buff-stack pattern (potions/multipliers) that economy clones use; capping it to 'minor' doesn't differentiate, it just makes it weaker. It reads as a Donut-style booster system that's been nerfed, not a new idea.
  • Season pass with Free + Premium tiers is now industry-standard across Hypixel/Donut-adjacent servers; it is table stakes, not differentiation. The Polish theming is the only thing making it not-generic, and theming is cosmetic.

Apendyks

Wszystkie pomysły (177)

PomysłPitchPętlaSoczewka
Pieczatka Dnia (Daily Stamp Calendar) A 30-day visual stamp calendar (think 'karta lojalnościowa' from a Polish kawiarnia) that the player fills one square per day. The art and ritual are the product, not the loot. daily Daily login streaks & reward calendars
Plomien Serii (Streak Flame + Ulga/Streak-Freeze) A continuous consecutive-day streak counter with a Duolingo-style 'freeze' item ('Ulga') players can buy/earn to survive a missed day — turning a hard streak into a manageable, monetizable one. long-term Daily login streaks & reward calendars
Kalendarz Sezonowy (Seasonal Advent-Style Event Calendar) A limited-time, themed event calendar that runs only during a real-world window (Boze Narodzenie / Wielkanoc / Wakacje / server anniversary) with hand-curated exclusive cosmetics behind each day — a FOMO-driven seasonal ritual. seasonal Daily login streaks & reward calendars
Wspolne Logowanie (Server-Wide Community Login Goal) A collective daily login bar: if ENOUGH unique players claim their daily today, the WHOLE server unlocks a shared bonus tomorrow — turning individual logins into a social obligation. social Daily login streaks & reward calendars
Zlecenia z Tablicy (Town Job Board) - location-bound daily pickup Daily quests are NOT auto-assigned in a menu. Players walk to a physical Tablica Zleceń (job board) at each server's spawn/town and pull 3 paper 'zlecenia' for the day. The board is a real in-world structure with NPC flavor, and the act of physically claiming is the daily ritual. daily Daily quest rotation
Reroll z kosztem (Costed reroll + one free Przekleństwo swap) Players hate a daily they can't do (e.g. 'win a KOTH' for a builder). Give ONE free reroll per day plus paid rerolls priced in a soft currency, so the system bends to playstyle without becoming a slot machine you spam for the easiest quest. daily Daily quest rotation
Pieczęcie i Seria (Daily seal streak with insurance, not a punishing reset) Completing your daily set stamps a pieczęć and grows a streak. But the streak uses a forgiving 'protect one miss' insurance model instead of a brutal reset-to-zero, because punishing streaks drive guilt-churn, not retention. daily Daily quest rotation
Zlecenie Gildii (One shared weekly mega-quest stitched from daily contributions) On top of personal dailies, the whole server (or a town/guild) contributes toward ONE big rotating weekly objective via a community progress bar. Daily play feeds a server goal, so logging in matters even on days your personal RNG quest is boring. weekly Daily quest rotation
Kontrakty Fachowca (Vocation-tagged dailies that feed the jobs system) Dailies are tagged by vocation (drwal, gornik, rybak, lowca...) and completing on-vocation contracts grants job-XP, tying the owner's planned jobs/vocations system directly into the daily rotation so the two loops reinforce instead of competing for attention. long-term Daily quest rotation
Tablica Tygodnia (Weekly Board with 3-tier milestone track) A persistent weekly board of 8-10 goals (mix of PvE/economy/exploration, NOT just kills), but the hook is a single shared MILESTONE TRACK: every goal you complete dumps 'punkty tygodnia' into one bar with 5 milestone chests at 25/50/75/90/100%. You almost never finish everything, so the bar — not the checklist — is what pulls you back. weekly Weekly challenge boards — bigger weekly goals, weekly leaderboards, milestone chests
Liga Tygodniowa (reset-every-week competitive leaderboards in NON-kill categories) Five parallel weekly leaderboards that hard-reset every Monday — but deliberately NOT 'most kills'. Categories like najwięcej wykopanych bloków (blocks mined), najdalsza ekspansja (new chunks explored), najwięcej zarobione z jobs, najlepszy budowniczy (votes on /plot builds), najwięcej ukończonych questów. Top 10 each board get a visible weekly tag + reward; everyone sees their rank and 'X to overtake next player'. weekly Weekly challenge boards — bigger weekly goals, weekly leaderboards, milestone chests
Wyzwanie Gildii (guild/team weekly co-op challenge with a shared chest) Opt into a small squad (3-6 players, or your existing town/guild) and the board gives you a GIANT shared weekly target — e.g. 'wspólnie sprzedaj 50k plonów' or 'pokonajcie 2000 mobów razem'. One communal milestone chest unlocks for the whole team. Turns the solo weekly grind into a social obligation: people log in because their teammates are counting on their contribution. social Weekly challenge boards — bigger weekly goals, weekly leaderboards, milestone chests
Sezon Wyzwań (rotating weekly THEMES that re-skin the whole board) Instead of a static goal list, each week has a flavored THEME that re-skins the entire board: 'Tydzień Górnika' (mining week — mining goals pay double, deepslate boss event), 'Tydzień Żniw' (harvest week), 'Tydzień Łowcy' (hunt week), 'Tydzień Budowniczego' (build week). Same engine, totally different feel every Monday. Players track which theme is coming and plan their week around it. seasonal Weekly challenge boards — bigger weekly goals, weekly leaderboards, milestone chests
Skrzynia Wytrwałości (anti-FOMO weekly streak chest that survives one miss) A lightweight weekly LAYER on top of the board: complete at least 3 board goals in a week to bank a 'tydzień' on your streak. Streak unlocks escalating weekly milestone chests at 2/4/8/12/24 weeks. Crucially it's MISS-FORGIVING — one skipped week freezes (doesn't reset) the streak, so the mechanic rewards long-term loyalty without the brutal punish that makes players ragequit streak systems. long-term Weekly challenge boards — bigger weekly goals, weekly leaderboards, milestone chests
Kroniki Pustkowi (Chronicles of the Wastes) — a server-original NPC story campaign A hand-authored, voice-of-the-server lore campaign delivered through named NPCs at spawn and in the overworld. Not 'kill 10 zombies' filler — a serialised PL-language story (Akt I-V) where the player uncovers why the world is a lifesteal wasteland, with the economy/PvP framed as the FICTION rather than the whole point. long-term Multi-step quest campaigns / story — branching quest lines, NPC story, lore-driven progression chains
Cechy z fabułą (Vocations-with-a-Storyline) — the owner's jobs idea, but each job IS a branching questline Take the owner's planned jobs/vocations (drwal, górnik, rybak, łowca) and refuse to ship them as a flat XP bar. Each vocation is a multi-chapter master-and-apprentice story with a guild NPC, branching specialisations, and a 'mistrzostwo' finale — so the SUPER-MINOR boosts arrive wrapped in progression you actually remember. weekly Multi-step quest campaigns / story — branching quest lines, NPC story, lore-driven progression chains
Tygodniowy Rozdział (Weekly Chapter) — seasonal episodic story drops A live-ops episodic layer: every week the server publishes one new short 'rozdział' of an ongoing serialised story (3-5 quest steps, ~20-40 min of play) that expires when the next drops. It's the appointment-TV model — miss a week and you miss that chapter forever, with a season-long meta-reward for players who complete the most chapters. weekly Multi-step quest campaigns / story — branching quest lines, NPC story, lore-driven progression chains
Frakcje i Reputacja (Factions & Reputation) — branching allegiance arcs with rival NPC powers Two or three rival in-fiction NPC factions (e.g. Gildia Kupiecka the merchants vs Wolne Pustkowia the raiders) each run their own questline. Doing quests for one EARNS reputation and LOSES it with the rival — so your choices lock you into an allegiance with faction-only unlocks, NPC reactions, and a server-wide narrative tug-of-war. long-term Multi-step quest campaigns / story — branching quest lines, NPC story, lore-driven progression chains
Kroniki Gracza (Polish-flavoured advancement trees) Replace vanilla advancements with hand-authored, Polish-themed trees that gate progression and reward identity, not just currency. long-term Custom achievements / advancements — custom advancement trees, collection completion, hidden achievements
Kolekcje (collection-completion ledger) A 'museum' of grindable sets — fish, mobs, ores, biomes, rare drops — where COMPLETING the set is the reward, paid in cosmetics and prestige. long-term Custom achievements / advancements — custom advancement trees, collection completion, hidden achievements
Sekrety (hidden/secret achievements) A set of undocumented 'easter-egg' achievements players discover by doing weird, specific, or risky things — driving wiki-building, sharing, and replay. social Custom achievements / advancements — custom advancement trees, collection completion, hidden achievements
Mistrzostwo Profesji (vocation mastery advancements) Turn the owner's planned jobs (drwal, górnik…) into a deep, visible mastery advancement track so the 'super minor boost' jobs gain a long retention spine. long-term Custom achievements / advancements — custom advancement trees, collection completion, hidden achievements
Profesje Rzemieslnicze (Craftsman Professions) - unlock VERBS not cash 10 Polish-named professions (Gornik, Drwal, Rolnik, Rybak, Mysliwy, Kowal, Alchemik, Budowniczy, Hodowca, Lowca Potworow). You pick 2 active. XP per relevant action, but levels primarily unlock ABILITIES and RECIPES, not money: e.g. Gornik 25 unlocks vein-mining toggle for coal/iron, Drwal 30 unlocks tree-feller, Kowal 40 unlocks a custom anvil recipe for a server-exclusive tool, Alchemik unlocks brewing recipes that don't exist in vanilla. Cash payout per action is tiny and HARD-CAPPED per hour. long-term Jobs / vocations / professions (Jobs Reborn-style XP-per-action, level perks, minor stat boosts, Polish vocation framing)
Gildie Zawodowe (Profession Guilds) - regional economy interdependence Each profession ladders into a server-wide GUILD with weekly collective goals (e.g. 'Cech Gornikow: wydobyc 5M blokow rudy w tym tygodniu'). Hitting the guild goal unlocks a temporary buff for ALL members of that profession that week (e.g. +1 fortune-tier chance) and contributes to a season-long profession leaderboard. Critically, some end-tier recipes require materials from a DIFFERENT profession, forcing trade between players. weekly Jobs / vocations / professions (Jobs Reborn-style XP-per-action, level perks, minor stat boosts, Polish vocation framing)
Mistrzostwo i Prestiz (Mastery & Prestige) - the long-tail endgame ladder When a profession hits max level (say 100), you can PRESTIGE it: reset to level 1 in exchange for a permanent cosmetic Polish title (Czeladnik -> Mistrz -> Arcymistrz -> Legenda), a prestige badge in tab/chat, and one tiny permanent passive (e.g. +2% relevant XP gain). Each prestige is harder. Wall-mounted 'Tablica Mistrzow' (Masters' Board) at spawn shows top prestige players per profession. long-term Jobs / vocations / professions (Jobs Reborn-style XP-per-action, level perks, minor stat boosts, Polish vocation framing)
Kontrakty Zawodowe (Profession Contracts) - the daily-quest bridge for jobs An NPC 'Cechmistrz' (Guild Master) at spawn offers 3 rotating daily profession contracts tied to your active professions: 'Drwal: scinaj 256 debowych klod', 'Rybak: zlow 5 rzadkich ryb'. Completing one gives a chunk of profession XP, a small currency reward, and 'Punkty Cechu' (Guild Points) - a SEPARATE soft currency spent in a Cechmistrz shop on cosmetics, profession-exclusive gear skins, and minor consumable boosts. daily Jobs / vocations / professions (Jobs Reborn-style XP-per-action, level perks, minor stat boosts, Polish vocation framing)
Profesje — Folia-safe vocation skill core (drwal/górnik/rybak/łowca/zielarz/kowal) A custom Polish-identity skill spine where every core action levels a named vocation that unlocks ABILITIES and identity, not raw DPS — the backbone the owner's jobs idea should actually run on. daily Skill leveling systems (mcMMO / AuraSkills style: skills, ability unlocks, caps, prestige)
Mistrzostwo — skill caps + prestige rebirth (cosmetic/identity only) A long-horizon rebirth loop: cap a vocation, then 'rebirth' it back to 0 for a permanent prestige tier, a flex title, and a micro-passive — giving veterans a non-pay reason to never leave. long-term Skill leveling systems (mcMMO / AuraSkills style: skills, ability unlocks, caps, prestige)
Zdolności — active ability unlocks with a limited loadout (3 equipped slots) mcMMO-style active super-abilities, but you can only EQUIP a few at once — turning unlocks into a build-craft decision players re-theorise every session instead of a power pile. long-term Skill leveling systems (mcMMO / AuraSkills style: skills, ability unlocks, caps, prestige)
Strefy Mistrzów — skill-gated zones (level unlocks ACCESS, not stats) Convert skill levels into keys to physical content: a deep diamond stratum only Górnik 60 can enter, an enchanted forest for Drwal, a legendary fishing pier for Rybak — pulling players across servers every session. daily Skill leveling systems (mcMMO / AuraSkills style: skills, ability unlocks, caps, prestige)
Profesja Tygodnia + drużyny — weekly double-XP rotation, party XP & cross-server leaderboards A rotating 'skill of the week' double-XP event plus proximity-gated party XP sharing and network-wide leaderboards — the social + concurrency engine that makes leveling a group activity. social Skill leveling systems (mcMMO / AuraSkills style: skills, ability unlocks, caps, prestige)
Odrodzenie (Rebirth Ascension Ladder) A voluntary full economy wipe — burn your Voyager balance + reset NotRanks rank back to zero — in exchange for one permanent 'Odrodzenie' star next to your name and a tiny stacking permanent perk. The flex stops being your balance and becomes how many times you had the guts to throw it all away. long-term Prestige / rebirth / ascension — reset-for-permanent-progress loops that create a long-term horizon ABOVE the DonutSMP grind, where the wipe is voluntary and the reward is identity/permanence, not raw currency. The strategic move: DonutSMP's whole identity is "number go up, flex the balance." Prestige inverts that — it makes VOLUNTARILY BURNING your wealth the flex. That single inversion is the cleanest way to stop reading as a clone while reusing the exact same grind plugins (Jobs, NotRanks, Voyager, ExcellentCrates) we already run. Defensive economy design is non-negotiable here: every loop must be sink-positive (prestige DESTROYS money/levels) given the prior 44.8B Voyager dupe — a prestige system that mints currency would be catastrophic, so all rewards are cosmetic/utility/multiplier, never raw balance.
Mistrzostwo Zawodu (Job Mastery Prestige) Each Jobs vocation (drwal/górnik/rybak…) gets its OWN prestige track. Hit level 100 in górnik, prestige it: your górnik level resets to 1 but you earn a permanent Mastery rank in that one job — a title, a unique tool skin, and a micro-perk SPECIFIC to that profession. Turns the owner's 'super minor boost jobs' idea into a deep, per-profession long-game. long-term Prestige / rebirth / ascension — reset-for-permanent-progress loops that create a long-term horizon ABOVE the DonutSMP grind, where the wipe is voluntary and the reward is identity/permanence, not raw currency. The strategic move: DonutSMP's whole identity is "number go up, flex the balance." Prestige inverts that — it makes VOLUNTARILY BURNING your wealth the flex. That single inversion is the cleanest way to stop reading as a clone while reusing the exact same grind plugins (Jobs, NotRanks, Voyager, ExcellentCrates) we already run. Defensive economy design is non-negotiable here: every loop must be sink-positive (prestige DESTROYS money/levels) given the prior 44.8B Voyager dupe — a prestige system that mints currency would be catastrophic, so all rewards are cosmetic/utility/multiplier, never raw balance.
Sezon i Dziedzictwo (Seasonal Wipe + Legacy Vault) The survival economy runs in ~10-week SEASONS that fully wipe (balances, land, ranks). What carries over is a permanent cross-season 'Dziedzictwo' (Legacy) account: prestige-style account levels and a cosmetic vault earned by your placement each season. Every season is a fresh fair start AND a step up your eternal account — the anti-DonutSMP answer to permanent-world stagnation. seasonal Prestige / rebirth / ascension — reset-for-permanent-progress loops that create a long-term horizon ABOVE the DonutSMP grind, where the wipe is voluntary and the reward is identity/permanence, not raw currency. The strategic move: DonutSMP's whole identity is "number go up, flex the balance." Prestige inverts that — it makes VOLUNTARILY BURNING your wealth the flex. That single inversion is the cleanest way to stop reading as a clone while reusing the exact same grind plugins (Jobs, NotRanks, Voyager, ExcellentCrates) we already run. Defensive economy design is non-negotiable here: every loop must be sink-positive (prestige DESTROYS money/levels) given the prior 44.8B Voyager dupe — a prestige system that mints currency would be catastrophic, so all rewards are cosmetic/utility/multiplier, never raw balance.
Ołtarz Wniebowstąpienia (Ascension Altar — Sink-Powered Server Perks) A physical altar where players collectively BURN currency and rare items toward server-wide 'Ascension' milestones that unlock permanent perks for EVERYONE. Individuals who contribute most get a permanent personal Ascension rank. It's a prestige sink disguised as a community raid boss made of money — the more the rich players burn, the higher everyone's status. social Prestige / rebirth / ascension — reset-for-permanent-progress loops that create a long-term horizon ABOVE the DonutSMP grind, where the wipe is voluntary and the reward is identity/permanence, not raw currency. The strategic move: DonutSMP's whole identity is "number go up, flex the balance." Prestige inverts that — it makes VOLUNTARILY BURNING your wealth the flex. That single inversion is the cleanest way to stop reading as a clone while reusing the exact same grind plugins (Jobs, NotRanks, Voyager, ExcellentCrates) we already run. Defensive economy design is non-negotiable here: every loop must be sink-positive (prestige DESTROYS money/levels) given the prior 44.8B Voyager dupe — a prestige system that mints currency would be catastrophic, so all rewards are cosmetic/utility/multiplier, never raw balance.
Przepustka Sezonowa (Seasonal Pass) — playstyle-XP, not paystyle-XP A 60-tier seasonal pass where Punkty Przepustki (Pass Points) come ONLY from doing varied things in-world — never from cash, never from raw playtime idling. Free track for everyone, premium 'Przepustka Premium' unlocks a parallel reward column. Season = 6 weeks, then a HARD reset with a brand-new theme. seasonal Season pass / battle pass — free + premium tracks, seasonal XP, tier rewards, FOMO timing
Tygodniowe Wyzwania (Weekly Challenge Rotation) — the engine that feeds the pass A weekly-refreshing set of 9 objectives (3 easy / 3 medium / 3 hard) that are the PRIMARY source of Pass Points. New batch every Monday 18:00 PL. This is the daily/weekly heartbeat that makes the season pass actually pull people back, instead of being a passive playtime bar. weekly Season pass / battle pass — free + premium tracks, seasonal XP, tier rewards, FOMO timing
Przepustka+ Awansowanie (Premium upgrade + Tier-Skip economy) — the monetization that isn't pay-to-win Premium track is sold for real money (or in-store credits), and players can ALSO buy individual tier-skips. Crucially everything purchasable is cosmetic/QoL or just time-skips on cosmetic rewards — never power. This is how you monetize retention without becoming DonutSMP's pay-for-power machine. seasonal Season pass / battle pass — free + premium tracks, seasonal XP, tier rewards, FOMO timing
Bursztynowa Liga (Seasonal Prestige Ladder) — what the pass FOMO converts into long-term Layered ON the pass: finishing the free pass (tier 60) grants a permanent, dated seasonal badge/title (e.g. 'Bursztyn — Sezon 1') that can NEVER be earned again after the season ends. A '/liga' wall of past-season badges becomes a visible veteran-status collection. This turns 6-week FOMO into multi-year retention. long-term Season pass / battle pass — free + premium tracks, seasonal XP, tier rewards, FOMO timing
Skrzynia Rzemieslnicza (Crafted Crate — keys are MADE, not bought) Players forge their own crate keys from materials gathered through play instead of buying them. A 'Klucz Drwala' is crafted from oak logs + a rare 'okucie' (fitting) that only drops from chopping; a 'Klucz Gornika' from deepslate + diamond fittings. Each key opens a themed crate whose loot is biased toward that profession's gear. daily Crates, keys & loot
Litosciowy Licznik (Hard Pity + Visible Pity Bar) Every crate has a transparent pity counter shown live in the crate GUI: 'Do gwarantowanej Legendy: 38 otwarc'. After N opens without a top-tier reward, the next open is GUARANTEED legendary. The counter is per-player, per-crate, and visible BEFORE you open — you always know how close you are. weekly Crates, keys & loot
Skrzynia Tygodnia (Rotating Weekly Crate + Loot-Table Telegraph) One special crate that rotates its entire loot table every Monday with a publicly previewed theme ('W tym tygodniu: Skrzynia Zimowa — limitowane skiny i pety'). Keys for it are earned ONLY through weekly play objectives, and the items inside vanish from the pool forever when the week ends. seasonal Crates, keys & loot
Wspolne Otwarcie (Communal Crate Event — server-wide drop pool) A few times a day a 'Skrzynia Spoleczna' spawns at spawn/hub. Anyone online contributes a key to a shared pot; when the pot hits a threshold the crate cracks open and EVERYONE who contributed shares in a synchronized loot shower with a big animation. Bigger pot = better loot tier for all. social Crates, keys & loot
Kowadlo Losu (Reforge Bench — spend duplicates, no new gambling currency) Instead of dead duplicate crate rewards piling up, players bring unwanted loot to a 'Kowadlo Losu' and reforge 3 duplicates of a rarity into 1 guaranteed roll at the NEXT tier up. It's a deterministic sink that turns crate junk into a slow, controllable climb — and a hard drain on the item economy. long-term Crates, keys & loot
Seria Glosow A daily vote streak with a monthly rescue token. daily Vote rewards and serverlist loops: rewards grant time/cosmetic value not raw currency to dodge the 44.8B dupe risk; differentiates from DonutSMP via streaks, a server-wide event, and voter status.
Vote Party Szturm Glosow A network-wide bar every vote fills; at 75 votes all online players get a 60s buff event. social Vote rewards and serverlist loops: rewards grant time/cosmetic value not raw currency to dodge the 44.8B dupe risk; differentiates from DonutSMP via streaks, a server-wide event, and voter status.
Kroluje Wyborca A monthly leaderboard of top voters; top 3 win an expiring cosmetic crown and a spawn statue. seasonal Vote rewards and serverlist loops: rewards grant time/cosmetic value not raw currency to dodge the 44.8B dupe risk; differentiates from DonutSMP via streaks, a server-wide event, and voter status.
Ognisko (Campfire Presence Pool) — active-only playtime fund A shared, server-wide hourly reward pool that ONLY accrues from genuinely active players. The more real humans online and moving, the fatter everyone's hourly payout. AFK people see it but earn nothing — and watch others get paid. daily Playtime / loyalty / AFK rewards — time-based rewards, loyalty tiers, AFK-fishing/zones, anti-AFK-abuse
Stały Bywalec (Loyalty Tiers) — cumulative + streak playtime ranks A permanent, non-pay-to-win loyalty ladder (Nowy → Bywalec → Stały Bywalec → Weteran → Legenda) driven by lifetime active hours AND login-day streaks, unlocking cosmetics, QoL perks, and prestige — never raw power. long-term Playtime / loyalty / AFK rewards — time-based rewards, loyalty tiers, AFK-fishing/zones, anti-AFK-abuse
Przystań Rybacka (Active-AFK Fishing Coves) — engagement-gated idle zone Designated cozy fishing/idle zones where you CAN earn slowly while semi-AFK — but only if you periodically prove you're at the keyboard via a lightweight, diegetic fishing-reel minigame. Turns the 'players want to AFK-fish' demand into a low-attention-but-present retention surface instead of a bot farm. daily Playtime / loyalty / AFK rewards — time-based rewards, loyalty tiers, AFK-fishing/zones, anti-AFK-abuse
Codzienna Premia z Mnożnikiem (Daily Login Streak Chest + Comeback Hook) A 7-day rotating daily reward calendar with an escalating streak multiplier and a deliberately juicy Day-7 payoff — plus a 'comeback' offer that re-baits lapsed players the moment they return, targeting D1/D7 directly. daily Playtime / loyalty / AFK rewards — time-based rewards, loyalty tiers, AFK-fishing/zones, anti-AFK-abuse
Strażnik Obecności (Anti-AFK-Abuse Engine) — the shared backbone Not a player-facing feature but the cross-cutting activity-detection + anti-farm layer EVERY reward above depends on. One authoritative 'is this player genuinely present?' signal, server-authoritative and Folia-safe, so no reward system can be farmed by autoclickers, AFK pools, water-current macros, or alt armies. onboarding Playtime / loyalty / AFK rewards — time-based rewards, loyalty tiers, AFK-fishing/zones, anti-AFK-abuse
Clan Levels with Shared XP Vault (Gildie / Klany) A persistent clan you join with /klan, leveling 1-50 by pooling member activity (playtime, mob kills, blocks mined, quests, jobs XP) into a shared Skarbiec Doświadczenia. Each level unlocks clan-wide perks members keep across every server. long-term Clans / guilds / parties / co-op — shared identity, group progression, and cooperative objectives that make players log in FOR each other, not just for loot. The strategic wedge against DonutSMP: DonutSMP is a solo-grind, kill-and-rob server where "the group" is just a temporary alliance to extract value. Our differentiation is to make the CLAN the primary unit of identity and progression — a persistent home, a shared economy you co-build, and seasonal team competition. That converts solo churn into social obligation (the single strongest retention lever in MMO-likes). All clan state must be MySQL-backed and cross-server (NATS-synced) because the network is multi-server; survival-world mechanics must be Folia/Canvas region-thread-aware; and every shared-currency surface must be designed against the known 44.8B dupe (append-only ledger, server-side caps, audit log).
Shared Clan Bank with Anti-Dupe Ledger & Role Permissions A pooled clan treasury (currency + item vault) members deposit into and officers spend, with granular withdraw caps per rank — the co-op economy DonutSMP refuses to have because it only rewards solo hoarding. weekly Clans / guilds / parties / co-op — shared identity, group progression, and cooperative objectives that make players log in FOR each other, not just for loot. The strategic wedge against DonutSMP: DonutSMP is a solo-grind, kill-and-rob server where "the group" is just a temporary alliance to extract value. Our differentiation is to make the CLAN the primary unit of identity and progression — a persistent home, a shared economy you co-build, and seasonal team competition. That converts solo churn into social obligation (the single strongest retention lever in MMO-likes). All clan state must be MySQL-backed and cross-server (NATS-synced) because the network is multi-server; survival-world mechanics must be Folia/Canvas region-thread-aware; and every shared-currency surface must be designed against the known 44.8B dupe (append-only ledger, server-side caps, audit log).
Weekly Clan Co-op Objectives (Kontrakty Klanu) A rotating board of clan-wide goals — 'wydobądźcie 50k bloków', 'pokonajcie 2000 mobów', 'sprzedajcie towar za 1M' — that ONLY complete through combined member effort and pay out clan XP, bank currency, and a cosmetic reward. weekly Clans / guilds / parties / co-op — shared identity, group progression, and cooperative objectives that make players log in FOR each other, not just for loot. The strategic wedge against DonutSMP: DonutSMP is a solo-grind, kill-and-rob server where "the group" is just a temporary alliance to extract value. Our differentiation is to make the CLAN the primary unit of identity and progression — a persistent home, a shared economy you co-build, and seasonal team competition. That converts solo churn into social obligation (the single strongest retention lever in MMO-likes). All clan state must be MySQL-backed and cross-server (NATS-synced) because the network is multi-server; survival-world mechanics must be Folia/Canvas region-thread-aware; and every shared-currency surface must be designed against the known 44.8B dupe (append-only ledger, server-side caps, audit log).
Seasonal Clan Wars & Ranking Ladder (Wojny Klanów) A scheduled, opt-in season (4-6 weeks) where clans earn War Points from PvP objectives and co-op contracts, climb a public ladder, and the top clans win cosmetic/prestige rewards — turning the existing KOTH/PvP into a TEAM sport with stakes that reset. seasonal Clans / guilds / parties / co-op — shared identity, group progression, and cooperative objectives that make players log in FOR each other, not just for loot. The strategic wedge against DonutSMP: DonutSMP is a solo-grind, kill-and-rob server where "the group" is just a temporary alliance to extract value. Our differentiation is to make the CLAN the primary unit of identity and progression — a persistent home, a shared economy you co-build, and seasonal team competition. That converts solo churn into social obligation (the single strongest retention lever in MMO-likes). All clan state must be MySQL-backed and cross-server (NATS-synced) because the network is multi-server; survival-world mechanics must be Folia/Canvas region-thread-aware; and every shared-currency surface must be designed against the known 44.8B dupe (append-only ledger, server-side caps, audit log).
Proxy-Side Parties for Casual Co-op (Drużyny) Lightweight, instant /party (Drużyna) groups — separate from formal clans — for shared chat, cross-server warping to teammates, friendly-fire toggle, and shared mob/quest credit, lowering the barrier to playing together for the 90% who'll never run a clan. social Clans / guilds / parties / co-op — shared identity, group progression, and cooperative objectives that make players log in FOR each other, not just for loot. The strategic wedge against DonutSMP: DonutSMP is a solo-grind, kill-and-rob server where "the group" is just a temporary alliance to extract value. Our differentiation is to make the CLAN the primary unit of identity and progression — a persistent home, a shared economy you co-build, and seasonal team competition. That converts solo churn into social obligation (the single strongest retention lever in MMO-likes). All clan state must be MySQL-backed and cross-server (NATS-synced) because the network is multi-server; survival-world mechanics must be Folia/Canvas region-thread-aware; and every shared-currency surface must be designed against the known 44.8B dupe (append-only ledger, server-side caps, audit log).
Śluby (Marriage) + Więź level Two players /oswiadczyny (propose), hold a short ceremony at a spawn wedding altar, and become married. Marriage is not a one-time toggle — it has a 'Więź' (Bond) level 1-10 that ranks up ONLY from time spent online together and shared activities, unlocking partner perks as it grows. daily Marriage & social bonds — turning a solo grind-and-PvP DonutSMP clone into a network where your relationships (spouse, best friend, crew, mentor) are the thing that keeps you logging in. The wedge is identity: DonutSMP is fundamentally lonely-by-design (everyone is a rival), so any durable, named, two-sided bond is something they structurally cannot copy without abandoning their format. Every mechanic here is built to survive Folia/Canvas region-threading and to never multiply or transfer raw currency (given the 44.8B dupe history) — bonuses are time/activity-gated buffs and cosmetics, not money faucets.
Najlepsi Przyjaciele (Best-Friend pact, non-romantic) A platonic, gender-neutral parallel to marriage so players who won't 'marry' still bond. Two players form a Pakt Przyjaźni — same online-together progression, but the perks lean toward co-op utility (revive assist, shared quest credit) rather than the cosmetic/romance flavor of marriage. daily Marriage & social bonds — turning a solo grind-and-PvP DonutSMP clone into a network where your relationships (spouse, best friend, crew, mentor) are the thing that keeps you logging in. The wedge is identity: DonutSMP is fundamentally lonely-by-design (everyone is a rival), so any durable, named, two-sided bond is something they structurally cannot copy without abandoning their format. Every mechanic here is built to survive Folia/Canvas region-threading and to never multiply or transfer raw currency (given the 44.8B dupe history) — bonuses are time/activity-gated buffs and cosmetics, not money faucets.
Mentor & Uczeń (mentorship onboarding bond) Veterans 'adopt' new players as Uczeń (apprentice). The mentor earns cosmetic prestige and tiny boosts as their apprentice hits playtime milestones; the newbie gets a guaranteed helpful human + starter perks. Directly attacks the brutal D1 cliff that kills SMP newcomers. onboarding Marriage & social bonds — turning a solo grind-and-PvP DonutSMP clone into a network where your relationships (spouse, best friend, crew, mentor) are the thing that keeps you logging in. The wedge is identity: DonutSMP is fundamentally lonely-by-design (everyone is a rival), so any durable, named, two-sided bond is something they structurally cannot copy without abandoning their format. Every mechanic here is built to survive Folia/Canvas region-threading and to never multiply or transfer raw currency (given the 44.8B dupe history) — bonuses are time/activity-gated buffs and cosmetics, not money faucets.
Rody / Klany (player-founded houses with a social shrine) Lightweight named groups bigger than a duo — a Ród (house/clan) of up to ~15 players with a shared identity, a tag, a leaderboard rank, and a buildable 'Ognisko' (hearth) that grants a faint passive presence buff scaled to how many members are online together right now. social Marriage & social bonds — turning a solo grind-and-PvP DonutSMP clone into a network where your relationships (spouse, best friend, crew, mentor) are the thing that keeps you logging in. The wedge is identity: DonutSMP is fundamentally lonely-by-design (everyone is a rival), so any durable, named, two-sided bond is something they structurally cannot copy without abandoning their format. Every mechanic here is built to survive Folia/Canvas region-threading and to never multiply or transfer raw currency (given the 44.8B dupe history) — bonuses are time/activity-gated buffs and cosmetics, not money faucets.
Walentynki / Sezon Więzi (seasonal bond events + relationship cosmetics) A recurring limited-time 'Bond Season' (anchored to real dates like Walentynki/Andrzejki) where marriages, pacts, and clans earn exclusive, never-returning cosmetics by doing PAIRED activities together during the window — turning the social systems above into a repeatable seasonal spike. seasonal Marriage & social bonds — turning a solo grind-and-PvP DonutSMP clone into a network where your relationships (spouse, best friend, crew, mentor) are the thing that keeps you logging in. The wedge is identity: DonutSMP is fundamentally lonely-by-design (everyone is a rival), so any durable, named, two-sided bond is something they structurally cannot copy without abandoning their format. Every mechanic here is built to survive Folia/Canvas region-threading and to never multiply or transfer raw currency (given the 44.8B dupe history) — bonuses are time/activity-gated buffs and cosmetics, not money faucets.
Przebudzenie (The Awakening) — server-HP world boss with public contribution ladder A single colossal raid boss spawns at a fixed arena on a published schedule (e.g. Sat 19:00, Wed 20:00). It has a server-wide shared HP pool shown on a boss bar + FancyHologram leaderboard. EVERY player who lands damage gets a personal contribution % tracked in MySQL; rewards are tiered by contribution bracket, not by last-hit, so casuals and whales both get paid. Loot is cosmetic/account-bound key fragments, NOT tradeable currency. weekly Server bosses & world events
Najazd (The Raid) — town-defence co-op siege with shared loot vault On a schedule, an NPC army (waves of mobs) besieges a central PvE-safe 'fort' that all players defend together. The fort has a shared loot vault that fills as waves are cleared; if the fort's gate HP hits zero the raid FAILS and the vault is reduced — so the whole server has skin in defending it. Reward = per-player wave-participation points spent at a dedicated NPC vendor for account-bound gear skins and consumables. daily Server bosses & world events
Sezon Plag (Plague Season) — rotating multi-week server meta-event with a community goal bar A 2-4 week themed 'season event' (e.g. 'Plaga Nieumarłych' / The Undead Plague) overlays the whole network: themed mob spawns everywhere, a single SERVER-WIDE community goal bar ('kill 1,000,000 zombies as a network'), and event-only quests in the existing BattlePass. Hitting community milestones unlocks server-wide buffs and exclusive cosmetics for EVERYONE who participated. Resets and rotates to a new theme next season. seasonal Server bosses & world events
Strażnik Lochów (Dungeon Guardian) — instanced 4-player co-op boss run with weekly lockout A repeatable instanced dungeon (small party, 3-5 players) ending in a mini-boss, on a dedicated Paper 'dungeon' backend. Parties queue via an NPC/GUI, get their own private copy, fight through it, and the boss drops account-bound gear with a WEEKLY per-player lockout on the best loot (you can re-run for fun/minor drops, but the jackpot is once-a-week). Designed for the friend-group / small-team player, not the zerg. social Server bosses & world events
Sezon (Season Pass) — Przepustka Sezonowa with a separate burn-on-reset token An 8-week Polish-themed seasonal track (Jesien/Zima/Wiosna/Lato + holiday micro-events) with a free lane and a paid lane. Progress comes from PLAYING (daily logins, quests, jobs XP, KOTH wins), not from buying levels. Rewards are cosmetic + tiny-utility, and the seasonal currency is wiped at season end so it can never feed the dupe economy. seasonal Seasonal / holiday content — limited-time holiday events, seasonal maps/cosmetics, and recurring calendar moments that create appointment-based return habits and a content cadence DonutSMP clones never bother to build.
Zimowe Miasteczko — a separate seasonal lobby/world that physically rotates 4x a year Instead of decorating spawn, you swap the entire hub to a fully themed seasonal world: a snowy Polish town for Zima (with Mikolajki Dec 6 + Wigilia events), a spring fair, a summer beach, an autumn harvest village. Each season the hub looks like a different game. Returning players SEE the change in the first 3 seconds. seasonal Seasonal / holiday content — limited-time holiday events, seasonal maps/cosmetics, and recurring calendar moments that create appointment-based return habits and a content cadence DonutSMP clones never bother to build.
Kalendarz Adwentowy + holiday login streaks (appointment mechanic) A 24-door advent calendar in December (and lighter 7-day calendars for majowka, Wielkanoc, summer holidays) where each real-world day unlocks ONE reward — but only if you log in that day. Miss a day, miss that door. This is the purest daily-return habit engine and it maps perfectly onto the Polish holiday calendar. daily Seasonal / holiday content — limited-time holiday events, seasonal maps/cosmetics, and recurring calendar moments that create appointment-based return habits and a content cadence DonutSMP clones never bother to build.
Halloweenowa Inwazja / Wydarzenia Bossowe — recurring network-wide live boss events Scheduled, hyped live events tied to holidays: a Halloween night where a giant boss (Dynia/Pumpkin King) spawns in a special event arena and the WHOLE network gets pulled in to fight it together; a Sylwester (NYE) fireworks + countdown moment; a Wielkanoc egg hunt. These are appointment TV — announced days ahead, happen at a set time, everyone shows up at once. seasonal Seasonal / holiday content — limited-time holiday events, seasonal maps/cosmetics, and recurring calendar moments that create appointment-based return habits and a content cadence DonutSMP clones never bother to build.
Kolekcja Sezonowa — a permanent seasonal cosmetic dex with 'never again' FOMO Every season's cosmetics (tags, trails, pets, particle hats, seasonal armor skins) are logged in a permanent /kolekcja almanac that shows what each player owns AND what they missed. Past-season exclusives are visibly greyed-out and marked 'Niedostepne' (unavailable). This converts a one-time event into a permanent, compounding reason to never skip a season. long-term Seasonal / holiday content — limited-time holiday events, seasonal maps/cosmetics, and recurring calendar moments that create appointment-based return habits and a content cadence DonutSMP clones never bother to build.
Burza (Storm Hour) — nightly server-wide flash event Every night at a fixed prime-time hour (e.g. 20:00 Europe/Warsaw) a 30-min server-wide 'Burza' fires across ALL backends at once: a rotating modifier night — Noc Łowcy (mob heads drop), Żyła (ore/spawner yields x1.5), Krew (PvP bonus loot), Targ (vendor prices spike). Proxy boss-bar + title countdown warns everyone 15 min before. Miss it and that modifier won't repeat for days. daily Limited-time FOMO events & drops — time-gated drops, flash events, "play tonight or miss it" mechanics
Skrzynia Sezonu (Seasonal Battle-Pass Crate) — FOMO cosmetics, not power A 4-to-6-week rotating 'Sezon' with a free + paid track. Rewards are almost entirely COSMETIC/identity (particle trails, kill effects, /hat items, prefixes, pets, a dated trophy block) plus tiny QoL. When the season ends those exact items are GONE forever and replaced by next season's set. Progress comes from playtime + quests, NOT from spending. seasonal Limited-time FOMO events & drops — time-gated drops, flash events, "play tonight or miss it" mechanics
Meteoryt (Falling Drop Event) — geo-located 'be there in 10 minutes' Randomly a few times per evening, the server announces 'Meteoryt spadł w okolicy X' with rough coordinates / a compass. A loot beacon/structure lands in the survival world for ~10 minutes; first players to reach and crack it split tiered loot, then it despawns. Bigger meteor tiers (rare) are announced network-wide and draw a crowd + PvP. daily Limited-time FOMO events & drops — time-gated drops, flash events, "play tonight or miss it" mechanics
Ostatnia Szansa (Vault Window) — weekly limited-stock rotating shop A premium NPC/GUI 'Skarbiec' opens only Fri 18:00 → Sun 23:00 each week. It sells a SMALL rotating stock of limited cosmetics, seasonal blocks, and named convenience items — with GLOBAL stock counters ('17/50 sztuk') and a window timer. When the window closes or stock hits zero, that item is gone until it rotates back (maybe never). Priced partly in event-only tokens earned that week. weekly Limited-time FOMO events & drops — time-gated drops, flash events, "play tonight or miss it" mechanics
Liga Wieczoru (Nightly Leaderboard Sprint) — reset-and-reward race A short rolling leaderboard that RESETS daily (and a bigger one weekly): 'kto dziś zdobył najwięcej w Burzy / na jobach / w PvP'. Top N at the nightly cutoff get a same-night reward drop (cosmetic token + small prize) announced network-wide. Because it resets, yesterday's win means nothing tonight — you must show up again. daily Limited-time FOMO events & drops — time-gated drops, flash events, "play tonight or miss it" mechanics
Aukcje na żywo — timed bidding with anti-snipe & outbid push Replace the fixed-price-only DonutAuction with a real timed bidding house: sellers can list as a 'Licytacja' (auction) with a start price and end time; players place rising bids, get a chat/title 'PRZEBITO!' (outbid) ping with a one-click re-bid, and any bid in the last 30s extends the timer by 30s (anti-snipe). High-value lots (>500k, reuse BROADCAST-PRICE-THRESHOLD) broadcast network-wide via NATS with a clickable [Licytuj] that warps the player to the AH. daily Auction house / player market — global AH, bidding, market history, price discovery, market mini-games
Cena rynkowa — price-discovery ticker & 7-day market index Every completed AH sale writes to a price-history table. The AH GUI shows each item a live 'Cena rynkowa' (median of last N real sales) plus a 7-day sparkline and a green/red arrow (↑/↓ vs last week). A /rynek board and a web widget on the network site rank today's biggest movers ('Netherite +18% w tym tygodniu'). This makes the player economy legible instead of guesswork. weekly Auction house / player market — global AH, bidding, market history, price discovery, market mini-games
Skup tygodnia — rotating server bulk-buy contract (sink + price floor) Each week the server itself posts a public 'Skup tygodnia' (buy contract): e.g. 'Network is buying up to 50,000 Iron Ingots @ 8 coins, total pool 400k'. Players sell into it from the AH/order screen until the pool drains, then it rotates to a new item. It's an NPC mega-order that drip-feeds demand for a different material each week and acts as a soft price floor. weekly Auction house / player market — global AH, bidding, market history, price discovery, market mini-games
Pakiety hurtowe — shulker/stack lots & a 'sklep gracza' rentable stall Two linked features: (1) first-class bulk lots — list a full shulker or a 64-stack as one priced unit with a per-item price shown ('64x Diament — 12,800 / 200 za szt.'), and (2) rentable 'Sklep gracza' stalls: a player rents a named AH storefront for a weekly coin fee where all their listings live under their name, browsable via /sklep <nick>, turning power-sellers into recognisable shop brands. long-term Auction house / player market — global AH, bidding, market history, price discovery, market mini-games
Zgadnij cenę — daily price-guess mini-game off real market data A lightweight daily 'Zgadnij cenę' (guess the price): once a day each player is shown a real recently-sold AH lot with the price hidden and guesses the sale price; closeness to the actual median scores points on a weekly leaderboard with a small coin/cosmetic reward for the top guessers. It piggybacks entirely on the price-history data from feature 2. daily Auction house / player market — global AH, bidding, market history, price discovery, market mini-games
Bazar / Shop District with rented stalls (Targowisko) A dedicated, protected build-free 'Targowisko' world (or spawn district) where players RENT a numbered stall plot for in-game money, place QuickShop-Hikari chest shops inside it, and get a warp + searchable directory. Rent is a weekly money sink; unpaid stalls auto-evict and re-list. weekly Chest shops / player-run economy
Dynamic server shop prices (supply-driven Giełda) Make the SERVER shop prices float based on how much players are selling — sell 10k cobblestone and its buy-back price drops; rare items that nobody sells stay high. A live /gielda board shows today's prices, ups and downs like a stock ticker. daily Chest shops / player-run economy
Player supply chains via Skup Kontraktowy (buy orders / commissions) Let players post BUY orders, not just sell shops: 'I'll pay 30$/ea for up to 2,000 redstone' on a public board. Anyone can fulfil it from anywhere in the network; money + items are escrowed so neither side can scam. This wires the jobs/vocations players into a real demand market. social Chest shops / player-run economy
Shop reputation, tax sink & 'Kupiec' progression Every player chest-shop sale is taxed a small % (a money sink that fights inflation), and successful sellers earn a public 'Kupiec' (Merchant) reputation rank with perks — more stalls, lower tax, a verified badge buyers can trust. Turns trading itself into a progression track. long-term Chest shops / player-run economy
Druga Mapa - swiat panstw (parallel civilization world) A second, slower world reached through the lobby where players found towns, claim chunks, recruit residents and grow nations - the network's anti-DonutSMP identity pillar, not a feature bolted onto the grind map. social Land claims / towns / nations (Towny-style territory, taxes, progression, politics)
Podatki i Utrzymanie (daily upkeep as login forcing-function + currency sink) Towns pay daily upkeep from a town bank funded by resident taxes; let the bank run dry and your claims fall into ruin - a daily stewardship loop that doubles as the network's first real money sink. daily Land claims / towns / nations (Towny-style territory, taxes, progression, politics)
Wojny i Sejm (scheduled objective wars + nation politics) Nations declare war through a formal system that fires only in scheduled windows with capture-the-node objectives, territory transfer and reparations - structured, consequential PvP plus elections and treaties, not 24/7 lifesteal ganking. weekly Land claims / towns / nations (Towny-style territory, taxes, progression, politics)
Awans Miasta (communal town leveling + town-quests) Towns level up through resident activity and shared town-quests, unlocking more claims and super-minor town-wide perks - turning the owner's quest and jobs ideas into a social progress bar the whole town grinds together. long-term Land claims / towns / nations (Towny-style territory, taxes, progression, politics)
Rynek Miast (player-driven, town-taxed marketplace) Towns rent out market plots where residents run real chest shops, and the town skims a transaction tax that funds its upkeep - a genuine player-to-player economy that replaces the canned NPC /shop and sell-wand dump. daily Land claims / towns / nations (Towny-style territory, taxes, progression, politics)
Działka jako baza domowa (Plot-as-Home-Base on a dedicated Paper island-server) Every player claims a private działka on a separate /wyspa island-server (Paper 26.1.2, routed by Travertine) that persists forever, is fully buildable, raid-immune, and is the player's permanent identity anchor — the one thing DonutSMP physically cannot offer because its world is wipe-prone PvP chaos. long-term Personal islands / plots
Poziom wyspy + Liga Wysp (Island Level + weekly Island League leaderboard) Islands earn a Poziom (level) from a block-value scan, and the network runs a weekly/seasonal Liga Wysp leaderboard with rotating themed cups — turning 'I built a base' into a competitive, repeatable, status-driven loop that resets often enough to keep mid-tier players hooked. weekly Personal islands / plots
Odwiedziny i Wystawa (Island Visiting + curated public Showcase warps) A frictionless /odwiedz <gracz> visiting system plus a player-applied Wystawa (public showcase) gallery turns private plots into a social, browsable destination — players come back to see who visited, who left a like, and to tour the featured builds, manufacturing the social graph DonutSMP clones lack. social Personal islands / plots
Wspólnota Wysp (shared Island Co-op / guild islands with member roles) Let players form a co-owned Wspólnota island with up to ~6 members, shared bank/level, and ranked roles — converting solo retention into group retention where friends pull each other back online to not let the shared island fall behind in the Liga. social Personal islands / plots
Szafa Sezonowa (Seasonal Wardrobe + Battle-Pass cosmetic track) A central /szafa GUI wardrobe holding all trails, hats, pets, gadgets and nametag styles, fed by a free, rotating seasonal cosmetic track ("Przepustka") earned purely through playtime/quest XP — not paid, not P2W. Every season retires its exclusive cosmetics so they become permanent flex. seasonal Cosmetics / particles / vanity
Pets-as-Companion (cosmetic only, with /siad and naming) Vanity follower pets built on 1.21 Display Entities — a baby drwal-axe-wielding wolf, a floating Endermana lantern, a mini-golem — that follow you, can be named, sit on command, and emit idle particles. Zero stats, pure companionship and flex. long-term Cosmetics / particles / vanity
Smugi Osiągnięć (Achievement-locked prestige trails — flex you can't buy) A tier of elite trails and particle auras that are ONLY obtainable by completing hard, verifiable feats (top-10 on a leaderboard season, 1000 hours played, KOTH win streak, a job maxed to 100). They visibly out-class anything purchasable, making them the server's true status symbols. long-term Cosmetics / particles / vanity
Nametag Kuźnia (modular nametag / chat-tag forge) A cosmetic identity layer where players assemble their own colored, gradient, icon-decorated nametag and chat-tag from earnable parts — gradient palettes, unicode icons, bracket styles, animated color cycles — instead of a flat LuckPerms prefix. weekly Cosmetics / particles / vanity
Witryna Skarbów (cosmetic showcase plot + weekly 'Best Drip' vote) A personal showcase pedestal at spawn where each player can display their equipped cosmetic loadout (pet, hat, trail, aura, tag) as a posable statue, plus a weekly community vote for the best-looking loadout that awards an exclusive rotating cosmetic. social Cosmetics / particles / vanity
Chowańce — bound levelable companions (XP from playstyle, NOT from cash) A single active companion (Polish 'chowaniec') that levels up by doing whatever the player already does — mining, killing, farming — and grants SUPER MINOR passive perks that scale with its level, turning every session into measurable companion progress the player can see crawl upward. long-term Pets / mounts / companions — levelable, packet-driven, breedable companions that create daily care loops, long-tail collection chases, and identity-defining "stable" progression, deliberately avoiding the DonutSMP "buy a cosmetic pet from /shop" pattern in favor of earned, leveled, network-wide creature progression.
Stajnia & hodowla — breedable mounts with a genetics/trait roll A persistent 'Stajnia' (stable) where players breed mounts that pass down rollable traits (speed, jump, stamina, coat), creating a soft collection/min-max chase with rare trait combos that become tradeable status symbols — a horse-breeding minigame bolted onto survival. weekly Pets / mounts / companions — levelable, packet-driven, breedable companions that create daily care loops, long-tail collection chases, and identity-defining "stable" progression, deliberately avoiding the DonutSMP "buy a cosmetic pet from /shop" pattern in favor of earned, leveled, network-wide creature progression.
Towarzysz bojowy — a combat companion with ONE active ability on a long cooldown An optional combat-mode companion that contributes a single, telegraphed, long-cooldown active ability in PvE/PvP (a knockback howl, a brief shield, a marked-target reveal) — giving the existing PvP/lifesteal crowd a skill-expression layer that rewards mastery and loadout choice rather than raw purchased power. weekly Pets / mounts / companions — levelable, packet-driven, breedable companions that create daily care loops, long-tail collection chases, and identity-defining "stable" progression, deliberately avoiding the DonutSMP "buy a cosmetic pet from /shop" pattern in favor of earned, leveled, network-wide creature progression.
Sezonowy szlak chowańca — seasonal companion skins via the existing BattlePass Each season, a limited companion skin/variant line is earnable ONLY through the BattlePass and seasonal challenges, so the permanent levelable-companion system gets a recurring cosmetic refresh that drives return-and-grind without ever selling power — pure collection FOMO on a 4-8 week cadence. seasonal Pets / mounts / companions — levelable, packet-driven, breedable companions that create daily care loops, long-tail collection chases, and identity-defining "stable" progression, deliberately avoiding the DonutSMP "buy a cosmetic pet from /shop" pattern in favor of earned, leveled, network-wide creature progression.
Ligi rankingowe (Bronze→Mistrz) z tygodniowym soft-resetem A 6-tier ranked ladder (Brąz, Srebro, Złoto, Platyna, Diament, Mistrz) where players earn/lose League Points (LP) from PvP kills, KOTH wins, and bounty claims. Every Monday the ladder soft-resets: everyone drops ~1.5 divisions, so even top players must re-grind to re-cement their rank. Visible rank tag in tab + above head + a /liga GUI showing your LP, division, and the cutline to promote. weekly Leaderboards & competitive seasons
Sezony 30-dniowe z dziedzictwem (Legacy) zamiast pełnego wipe A 30-day competitive Season with its own leaderboards (richest, most kills, top job XP, most playtime). At season end the LADDERS reset to zero but the WORLD/economy does NOT wipe (no DonutSMP-style full reset rage). Instead, top finishers in each category earn a permanent, dated 'Legacy' cosmetic — e.g. a name-colour, a particle trail, or a statue at spawn engraved with their name + season number — that can NEVER be obtained again. seasonal Leaderboards & competitive seasons
Cotygodniowe wyzwanie frakcji/gildii (gildie kontra gildie) A weekly GUILD leaderboard: small player-formed guilds (3-15 members) compete on a single rotating objective each week (most blocks mined, most mob kills, most bounties claimed, most KOTH captures). The winning guild gets a server-wide shout-out, a temporary spawn banner with their tag, and a shared cosmetic crate. Solo players are nudged to join a guild to compete, converting lone wolves into socially-bonded cohorts. social Leaderboards & competitive seasons
Tablica łowców (Bounty board) z eskalacją serii zabójstw A live Bounty leaderboard fused with a killstreak system. Any player can place a coin bounty on another via /bounty add <gracz> <kwota>. Killing the target pays the pooled bounty. Separately, each kill builds your personal killstreak; the server auto-places an escalating PUBLIC bounty on YOU as your streak climbs (5 kills = small, 10 = medium, 20 = 'WANTED' broadcast + glowing outline visible to all). A /lowcy board ranks the highest active bounties and the longest current streaks. daily Leaderboards & competitive seasons
Osobiste rekordy + sezonowe odznaki za kamienie milowe (nie tylko top 10) A milestone/achievement ladder that rewards EVERYONE, not just the top 10. Tracks personal bests and lifetime + seasonal stats (blocks mined, distance walked, mobs killed, jobs XP, hours played) and awards tiered 'Odznaki' (badges) at thresholds — e.g. Górnik III at 100k blocks. A /rekordy GUI shows your progress bars to the next badge. Each season grants a parallel set of seasonal-only badges, so even players who'll never top the kills board always have a personal climb with a visible next goal. long-term Leaderboards & competitive seasons
Tarcza Nowicjusza + Krwawe Żniwo (graduated lifesteal with revenge cap) Replace flat DonutSMP lifesteal (you die at 0 hearts, banned/eliminated) with a graduated, anti-snowball heart system: new and low-heart players can never be farmed to elimination, and heart transfer per kill scales DOWN the more hearts the killer already has. Keeps the lifesteal hook but removes the toxic farming death-spiral that makes DonutSMP miserable for everyone except the top 1%. daily PvP loops (lifesteal / KOTH / arenas / bounties / ranked / comeback)
Korona Króla Wzgórza (persistent KOTH with public bounty escalation) A scheduled KOTH where the winner doesn't just get a crate — they wear a network-wide visible Korona (crown) that puts an auto-escalating, server-paid bounty on their head until someone kills them. Turns one PvP event into a multi-hour server-wide manhunt that drags PvE players into PvP. weekly PvP loops (lifesteal / KOTH / arenas / bounties / ranked / comeback)
Liga Krwi — sezonowy ranking PvP z resetem (ranked ELO ladder, soft-reset seasons) A real ranked PvP ladder (ELO/MMR) with named tiers (Drewno → Żelazo → Złoto → Diament → Netheryt → Arcymistrz Krwi), monthly soft-resets, and tier-gated cosmetic rewards. Gives PvP a progression spine and a recurring 'new season' re-engagement spike that DonutSMP completely lacks. seasonal PvP loops (lifesteal / KOTH / arenas / bounties / ranked / comeback)
Kontrakty na Głowę — gracz-zlecane bounties (player bounty market with a twist) A player-funded bounty board where you put a price on a rival's head — but the contract money is held in escrow and the bounty grows as the target keeps killing, creating revenge economies and rivalries. The hunted can pay a 'Okup' (ransom) to clear it, sinking the currency. A pure social/drama engine. social PvP loops (lifesteal / KOTH / arenas / bounties / ranked / comeback)
Ostatni Oddech — comeback buffs i 'underdog' momenty A bundle of pure comeback mechanics layered over all PvP: losing streaks and low-heart states grant temporary underdog buffs ('Ostatni Oddech'), and killing a much stronger/higher-streak player yields outsized rewards. Directly counters the rich-get-richer death-spiral that makes lifesteal servers a ghost town except for the top clan. daily PvP loops (lifesteal / KOTH / arenas / bounties / ranked / comeback)
Akwarium (Wędkarstwo z Dziennikiem) A deep fishing system where every biome/time/weather/bait combo unlocks a distinct fish-dex, with rare legendary catches that take dozens of casts and feed a personal aquarium players show off at their base. daily Fishing / farming / mining skill loops — Stardew-style gathering depth, rare catches, crop tiers, "one more" loops
Plony (Stardew Crop Tiers + Sezonowe Nasiona) Multi-stage custom crops with quality tiers (Zwykły/Srebrny/Złoty/Iridowy) where soil prep, watering streaks, and seasonal seeds matter, turning a farm plot into a daily-tended, optimisable garden rather than a vanilla wheat field. daily Fishing / farming / mining skill loops — Stardew-style gathering depth, rare catches, crop tiers, "one more" loops
Głębia (Warstwy Górnicze + Geody i Skarby) A dedicated mining dimension with depth-tiered strata, where digging deeper unlocks rarer ore tiers and breakable geodes/treasure nodes that pop with a satisfying 'jackpot' moment — a Stardew-mines-style descent loop instead of strip-mining. weekly Fishing / farming / mining skill loops — Stardew-style gathering depth, rare catches, crop tiers, "one more" loops
Mistrzostwo (Wspólny Master-Pasek + Sezonowe Wyzwania Zbierackie) A cross-lens 'Mistrzostwo Zbieractwa' meta-track that ties fishing+farming+mining into one prestige ladder with weekly rotating gathering challenges and a seasonal leaderboard, so the three loops reinforce each other instead of competing. weekly Fishing / farming / mining skill loops — Stardew-style gathering depth, rare catches, crop tiers, "one more" loops
Lochy (Instanced Dungeon Rotation) — daily/weekly tiered runs A dedicated 'Lochy' Paper server holding 4-6 hand-built instanced dungeons. Players queue solo or in a party of 2-4 from any backend (NATS-routed join), get teleported into a private copy, fight through 3-5 hand-scripted rooms ending in a mini-boss, and get pulled out with loot. Each dungeon has a Normal and Heroiczny (Heroic) difficulty. Three rotating dungeons are 'aktywne' each week and pay full rewards; off-rotation ones still run but pay scraps. weekly Dungeons / raids / PvE content — instanced co-op encounters, boss tiers, and gear progression as the network's authored, skill-expression layer that DonutSMP clones structurally lack
Najazd (Weekly Server Raid Boss) — network-wide co-op boss event Once or twice a week a massive co-op raid boss ('Najazd' = invasion/raid) spawns in a dedicated arena instance that ANY player on the network can join for a 30-60 min window. It needs 10-30 players hitting it together. Server-wide damage leaderboard, scaling HP by participant count, and a guaranteed-drop tier table where top-damage contributors and a random-lucky cohort both get rewarded. Announced cross-network via NATS so every backend sees the countdown. weekly Dungeons / raids / PvE content — instanced co-op encounters, boss tiers, and gear progression as the network's authored, skill-expression layer that DonutSMP clones structurally lack
Reliktowy Sprzęt (Bound Relic Gear Progression) — PvE-only gear ladder Dungeon and raid drops feed a SEPARATE, account-bound 'Relikt' gear tier ladder (Pęknięty -> Wzmocniony -> Pradawny -> Mityczny) that exists ONLY for PvE power. Relic gear is useless/disabled in open-world PvP zones, so it never warps the DonutSMP-style PvP economy, but it's the gating mechanic for higher dungeon/raid tiers. You upgrade gear by spending dungeon-only mats + re-clearing content, creating a clean closed-loop progression treadmill. long-term Dungeons / raids / PvE content — instanced co-op encounters, boss tiers, and gear progression as the network's authored, skill-expression layer that DonutSMP clones structurally lack
Codzienne Wyprawy (Daily PvE Expedition Board) — rotating co-op objectives An NPC 'Tablica Wypraw' (expedition board) at every spawn offering 3 daily + 1 weekly rotating PvE co-op objectives that send players into the dungeon/raid content: 'Clear Loch Kopalni on Heroic with a full party', 'Deal 50k damage to the Najazd boss', 'Open 5 dungeon loot chests'. Completing dailies builds a streak and feeds a weekly meta-reward. This is the connective tissue that turns the owner's existing daily-quest idea into a PvE-funnel instead of a generic grind checklist. daily Dungeons / raids / PvE content — instanced co-op encounters, boss tiers, and gear progression as the network's authored, skill-expression layer that DonutSMP clones structurally lack
Cech (Guild Vocations) - co-op jobs replacing the solo /sell grind Turn DonutSMP's lonely solo sell-grind into a Polish GUILD economy: players join a Cech tied to a vocation (Drwal/lumberjack, Gornik/miner, Rolnik/farmer, Lowca/hunter, Rybak/fisher, Kowal/smith) and earn shared guild XP plus a guild treasury whenever ANY member does that job. The guild, not the individual, levels up and unlocks SUPER MINOR boosts. weekly DonutSMP exact feature teardown (verified June 2026: official Fandom wiki, donutsmp.wiki, BuiltByBit). CLONED FEATURES: (1) Lifesteal/Hardcore Life System - killer +1 permanent heart, victim -1; players reach 20-30 hearts; ~3 lives then temp/perm ban; revival via craftable Heart Fragments to a Heart item (/withdraw makes a heart tradeable) plus Beacon of Life; Season 6 capped heart CRAFTING at 7 to stop the infinite snowball. (2) Dual currency - MONEY (tradeable, the real economy) vs SHARDS (account-bound): 1/min in AFK zone, 10/player-kill, plus Amethyst-crate shard boosters. (3) /sell multiplier - per-item 1.0x to 3.0x, the biggest solo grind hook. (4) Spawners - virtual right-click drop items (no live mobs, Folia-friendly), flat 1,500 shards any type, cannot be sold via /sell or AH, primary mid-game income. (5) Crates - 5 tiers: Common (free hourly + buyable), Prime, Gold, Amethyst (paid: amethyst tools + shard booster + bucket). (6) Markets - /ah, /orders automated order-book (cheaper, delayed), Discord market for spawners. (7) Monetization - Donut+ 4.99 USD/mo RECURRING, pure QoL perks: +3 homes, /hide name-scramble, shards without AFK zone, lobby flight, tab priority, fast AH buy, prefix. (8) Leaderboards - money/kills/playtime/shards/blocks via official API, surfaced by donutstats.org and .net. STRUCTURAL GAPS to diverge into: NO native quests, NO levels/prestige, NO jobs/vocations, NO pets, NO login-streak, NO lore/NPCs/tutorial. Their only quests are OUTSOURCED to Medal.tv clip-to-earn (clip to 5,000 shards / Gold key / 3 skeleton spawners, ONLY accounts under 30 days, desktop) - a user-ACQUISITION funnel, not retention. Core loop is brutally thin: kill, steal heart, grind spawners/sell-multi, buy crates, repeat, plus a destructive season WIPE for FOMO. That thinness is where minecraft.pl wins - the owner's daily quests, long quest lines, and jobs/vocations ideas are exactly the systems DonutSMP lacks. COMMODITY BASELINE: BuiltByBit turnkey replicas - DonutSMP Core, Better DonutSMP (Sell GUI + bounties + AFK), Donut Shards (1:1 econ), DonutSpawnersPro (virtual stacked spawners + upgrades); these buy parity, not identity. DEFENSIVE NOTE: a prior dupe hit the tradeable Money economy for 44.8B, so every reward system below routes through account-bound SHARDS or cosmetics, never Money, to contain the blast radius.
Codzienne Zlecenia (Daily Contracts) - native quest board plus login streak A native daily/weekly QUEST BOARD - the exact system DonutSMP refuses to build in-game and instead outsources to Medal.tv. The /zlecenia command opens a GUI of 3 daily plus 1 weekly rotating contracts (zabij 5 graczy, sprzedaj 2000 blokow, otworz 3 skrzynie), players claim shard/key rewards, and build a login STREAK with escalating milestone payouts. daily DonutSMP exact feature teardown (verified June 2026: official Fandom wiki, donutsmp.wiki, BuiltByBit). CLONED FEATURES: (1) Lifesteal/Hardcore Life System - killer +1 permanent heart, victim -1; players reach 20-30 hearts; ~3 lives then temp/perm ban; revival via craftable Heart Fragments to a Heart item (/withdraw makes a heart tradeable) plus Beacon of Life; Season 6 capped heart CRAFTING at 7 to stop the infinite snowball. (2) Dual currency - MONEY (tradeable, the real economy) vs SHARDS (account-bound): 1/min in AFK zone, 10/player-kill, plus Amethyst-crate shard boosters. (3) /sell multiplier - per-item 1.0x to 3.0x, the biggest solo grind hook. (4) Spawners - virtual right-click drop items (no live mobs, Folia-friendly), flat 1,500 shards any type, cannot be sold via /sell or AH, primary mid-game income. (5) Crates - 5 tiers: Common (free hourly + buyable), Prime, Gold, Amethyst (paid: amethyst tools + shard booster + bucket). (6) Markets - /ah, /orders automated order-book (cheaper, delayed), Discord market for spawners. (7) Monetization - Donut+ 4.99 USD/mo RECURRING, pure QoL perks: +3 homes, /hide name-scramble, shards without AFK zone, lobby flight, tab priority, fast AH buy, prefix. (8) Leaderboards - money/kills/playtime/shards/blocks via official API, surfaced by donutstats.org and .net. STRUCTURAL GAPS to diverge into: NO native quests, NO levels/prestige, NO jobs/vocations, NO pets, NO login-streak, NO lore/NPCs/tutorial. Their only quests are OUTSOURCED to Medal.tv clip-to-earn (clip to 5,000 shards / Gold key / 3 skeleton spawners, ONLY accounts under 30 days, desktop) - a user-ACQUISITION funnel, not retention. Core loop is brutally thin: kill, steal heart, grind spawners/sell-multi, buy crates, repeat, plus a destructive season WIPE for FOMO. That thinness is where minecraft.pl wins - the owner's daily quests, long quest lines, and jobs/vocations ideas are exactly the systems DonutSMP lacks. COMMODITY BASELINE: BuiltByBit turnkey replicas - DonutSMP Core, Better DonutSMP (Sell GUI + bounties + AFK), Donut Shards (1:1 econ), DonutSpawnersPro (virtual stacked spawners + upgrades); these buy parity, not identity. DEFENSIVE NOTE: a prior dupe hit the tradeable Money economy for 44.8B, so every reward system below routes through account-bound SHARDS or cosmetics, never Money, to contain the blast radius.
Sezonowy Battle Pass (Przepustka) - the season WIPE turned into a keep-your-cosmetics track DonutSMP manufactures FOMO with a blunt season WIPE. Replace it with a 60-day Polish Przepustka: a FREE track everyone progresses by playing, plus an optional premium track that is recurring revenue WITHOUT being pay-to-win - every reward is cosmetic, QoL, or shards, never combat power or tradeable Money. seasonal DonutSMP exact feature teardown (verified June 2026: official Fandom wiki, donutsmp.wiki, BuiltByBit). CLONED FEATURES: (1) Lifesteal/Hardcore Life System - killer +1 permanent heart, victim -1; players reach 20-30 hearts; ~3 lives then temp/perm ban; revival via craftable Heart Fragments to a Heart item (/withdraw makes a heart tradeable) plus Beacon of Life; Season 6 capped heart CRAFTING at 7 to stop the infinite snowball. (2) Dual currency - MONEY (tradeable, the real economy) vs SHARDS (account-bound): 1/min in AFK zone, 10/player-kill, plus Amethyst-crate shard boosters. (3) /sell multiplier - per-item 1.0x to 3.0x, the biggest solo grind hook. (4) Spawners - virtual right-click drop items (no live mobs, Folia-friendly), flat 1,500 shards any type, cannot be sold via /sell or AH, primary mid-game income. (5) Crates - 5 tiers: Common (free hourly + buyable), Prime, Gold, Amethyst (paid: amethyst tools + shard booster + bucket). (6) Markets - /ah, /orders automated order-book (cheaper, delayed), Discord market for spawners. (7) Monetization - Donut+ 4.99 USD/mo RECURRING, pure QoL perks: +3 homes, /hide name-scramble, shards without AFK zone, lobby flight, tab priority, fast AH buy, prefix. (8) Leaderboards - money/kills/playtime/shards/blocks via official API, surfaced by donutstats.org and .net. STRUCTURAL GAPS to diverge into: NO native quests, NO levels/prestige, NO jobs/vocations, NO pets, NO login-streak, NO lore/NPCs/tutorial. Their only quests are OUTSOURCED to Medal.tv clip-to-earn (clip to 5,000 shards / Gold key / 3 skeleton spawners, ONLY accounts under 30 days, desktop) - a user-ACQUISITION funnel, not retention. Core loop is brutally thin: kill, steal heart, grind spawners/sell-multi, buy crates, repeat, plus a destructive season WIPE for FOMO. That thinness is where minecraft.pl wins - the owner's daily quests, long quest lines, and jobs/vocations ideas are exactly the systems DonutSMP lacks. COMMODITY BASELINE: BuiltByBit turnkey replicas - DonutSMP Core, Better DonutSMP (Sell GUI + bounties + AFK), Donut Shards (1:1 econ), DonutSpawnersPro (virtual stacked spawners + upgrades); these buy parity, not identity. DEFENSIVE NOTE: a prior dupe hit the tradeable Money economy for 44.8B, so every reward system below routes through account-bound SHARDS or cosmetics, never Money, to contain the blast radius.
Polski Lore plus Frakcje NPC - a PvE/identity spine the clone has no answer to Give the network a reason to exist beyond number-go-up: a light Polish-themed STORY layer with NPC factions and a guided hub questline that teaches the server's systems while building world identity. DonutSMP is pure mechanics with zero narrative - a thematic onboarding questline is both a strong D1 retention hook AND the biggest anti-clone branding move available. onboarding DonutSMP exact feature teardown (verified June 2026: official Fandom wiki, donutsmp.wiki, BuiltByBit). CLONED FEATURES: (1) Lifesteal/Hardcore Life System - killer +1 permanent heart, victim -1; players reach 20-30 hearts; ~3 lives then temp/perm ban; revival via craftable Heart Fragments to a Heart item (/withdraw makes a heart tradeable) plus Beacon of Life; Season 6 capped heart CRAFTING at 7 to stop the infinite snowball. (2) Dual currency - MONEY (tradeable, the real economy) vs SHARDS (account-bound): 1/min in AFK zone, 10/player-kill, plus Amethyst-crate shard boosters. (3) /sell multiplier - per-item 1.0x to 3.0x, the biggest solo grind hook. (4) Spawners - virtual right-click drop items (no live mobs, Folia-friendly), flat 1,500 shards any type, cannot be sold via /sell or AH, primary mid-game income. (5) Crates - 5 tiers: Common (free hourly + buyable), Prime, Gold, Amethyst (paid: amethyst tools + shard booster + bucket). (6) Markets - /ah, /orders automated order-book (cheaper, delayed), Discord market for spawners. (7) Monetization - Donut+ 4.99 USD/mo RECURRING, pure QoL perks: +3 homes, /hide name-scramble, shards without AFK zone, lobby flight, tab priority, fast AH buy, prefix. (8) Leaderboards - money/kills/playtime/shards/blocks via official API, surfaced by donutstats.org and .net. STRUCTURAL GAPS to diverge into: NO native quests, NO levels/prestige, NO jobs/vocations, NO pets, NO login-streak, NO lore/NPCs/tutorial. Their only quests are OUTSOURCED to Medal.tv clip-to-earn (clip to 5,000 shards / Gold key / 3 skeleton spawners, ONLY accounts under 30 days, desktop) - a user-ACQUISITION funnel, not retention. Core loop is brutally thin: kill, steal heart, grind spawners/sell-multi, buy crates, repeat, plus a destructive season WIPE for FOMO. That thinness is where minecraft.pl wins - the owner's daily quests, long quest lines, and jobs/vocations ideas are exactly the systems DonutSMP lacks. COMMODITY BASELINE: BuiltByBit turnkey replicas - DonutSMP Core, Better DonutSMP (Sell GUI + bounties + AFK), Donut Shards (1:1 econ), DonutSpawnersPro (virtual stacked spawners + upgrades); these buy parity, not identity. DEFENSIVE NOTE: a prior dupe hit the tradeable Money economy for 44.8B, so every reward system below routes through account-bound SHARDS or cosmetics, never Money, to contain the blast radius.
Posterunki — Contested 24/7 Outpost Capture (PL: Posterunek) A handful of always-on capture points in the survival world that one guild holds at a time; standing in the ring channels the cap, holding it drips a passive buff + currency to the whole guild until someone takes it. Dying in the ring = 8-min deathban from re-entry. This is CosmicPvP's single best retention engine ported to an SMP shell. daily Top EN economy SMP servers (OPLegends, CosmicPvP, LoverCraft/LoverFella, IcePlanetMC). The pattern that beats DonutSMP-clone fatigue: these servers do NOT win on "more grind" — they win on (1) contested territorial PvP objectives that create scheduled appointment-play and faction rivalry (CosmicPvP Outposts/KOTH), (2) extreme gear DEPTH with a built-in gambling sink (CosmicPvP/AdvancedEnchantments: 190-500+ tiered enchants + Tinkerer secret-dust gamble), (3) horizontal collection meta-progression that survives resets (OPLegends 33 stackable Artifacts giving switchable Token/Money/EXP boosts; pets with Overlevel/Tamer caps 115-120), and (4) seasonal resets paired with leaderboard prestige (OPLegends biweekly resets + Gang Top/Island Top; LoverCraft LoverBux from daily logins + McMMO + daily challenges). DonutSMP is flat: one currency, lifesteal, /shop, no contested world objectives, no deep gear tree, no collections, no seasons. Stealing these four vectors is the fastest way to feel like a different genre while keeping the SMP shell. All economy additions must be sink-heavy because of the known 44.8B dupe history.
Kuźnia Mocy — Deep Tiered Enchants + Tinkerer Gamble Sink Replace flat vanilla gear with a 60-100+ custom-enchant tree where books have rarity tiers and success/destroy rates, plus a Tinkerer NPC where players gamble unwanted books into 'secret dust' that buys success-rate boosts. This is the CosmicPvP gear-depth + money-sink loop, and it's the single biggest currency sink you can add. long-term Top EN economy SMP servers (OPLegends, CosmicPvP, LoverCraft/LoverFella, IcePlanetMC). The pattern that beats DonutSMP-clone fatigue: these servers do NOT win on "more grind" — they win on (1) contested territorial PvP objectives that create scheduled appointment-play and faction rivalry (CosmicPvP Outposts/KOTH), (2) extreme gear DEPTH with a built-in gambling sink (CosmicPvP/AdvancedEnchantments: 190-500+ tiered enchants + Tinkerer secret-dust gamble), (3) horizontal collection meta-progression that survives resets (OPLegends 33 stackable Artifacts giving switchable Token/Money/EXP boosts; pets with Overlevel/Tamer caps 115-120), and (4) seasonal resets paired with leaderboard prestige (OPLegends biweekly resets + Gang Top/Island Top; LoverCraft LoverBux from daily logins + McMMO + daily challenges). DonutSMP is flat: one currency, lifesteal, /shop, no contested world objectives, no deep gear tree, no collections, no seasons. Stealing these four vectors is the fastest way to feel like a different genre while keeping the SMP shell. All economy additions must be sink-heavy because of the known 44.8B dupe history.
Relikwie — Stackable Artifact Collection That Survives Resets A set of ~30 collectible Artifacts dropped from grinding/events; owning more stacks a switchable boost (Tokens / Money / EXP / your shard currency), and the collection is account-bound so it PERSISTS through seasonal resets. Straight from OPLegends' 33-artifact system — the best 'reason to keep grinding after you're rich' mechanic in the lens. long-term Top EN economy SMP servers (OPLegends, CosmicPvP, LoverCraft/LoverFella, IcePlanetMC). The pattern that beats DonutSMP-clone fatigue: these servers do NOT win on "more grind" — they win on (1) contested territorial PvP objectives that create scheduled appointment-play and faction rivalry (CosmicPvP Outposts/KOTH), (2) extreme gear DEPTH with a built-in gambling sink (CosmicPvP/AdvancedEnchantments: 190-500+ tiered enchants + Tinkerer secret-dust gamble), (3) horizontal collection meta-progression that survives resets (OPLegends 33 stackable Artifacts giving switchable Token/Money/EXP boosts; pets with Overlevel/Tamer caps 115-120), and (4) seasonal resets paired with leaderboard prestige (OPLegends biweekly resets + Gang Top/Island Top; LoverCraft LoverBux from daily logins + McMMO + daily challenges). DonutSMP is flat: one currency, lifesteal, /shop, no contested world objectives, no deep gear tree, no collections, no seasons. Stealing these four vectors is the fastest way to feel like a different genre while keeping the SMP shell. All economy additions must be sink-heavy because of the known 44.8B dupe history.
Sezony i Tablica Chwały — Biweekly Soft-Reset + Permanent Prestige Leaderboard Run the survival economy in 2-4 week seasons that soft-reset the grind world and leaderboards, but bank each season's Gang-Top/Island-Top winners into a PERMANENT hall-of-fame with cosmetic-only rewards. This is OPLegends' biweekly-reset + Gang Top/Island Top model — it manufactures recurring urgency without P2W creep. seasonal Top EN economy SMP servers (OPLegends, CosmicPvP, LoverCraft/LoverFella, IcePlanetMC). The pattern that beats DonutSMP-clone fatigue: these servers do NOT win on "more grind" — they win on (1) contested territorial PvP objectives that create scheduled appointment-play and faction rivalry (CosmicPvP Outposts/KOTH), (2) extreme gear DEPTH with a built-in gambling sink (CosmicPvP/AdvancedEnchantments: 190-500+ tiered enchants + Tinkerer secret-dust gamble), (3) horizontal collection meta-progression that survives resets (OPLegends 33 stackable Artifacts giving switchable Token/Money/EXP boosts; pets with Overlevel/Tamer caps 115-120), and (4) seasonal resets paired with leaderboard prestige (OPLegends biweekly resets + Gang Top/Island Top; LoverCraft LoverBux from daily logins + McMMO + daily challenges). DonutSMP is flat: one currency, lifesteal, /shop, no contested world objectives, no deep gear tree, no collections, no seasons. Stealing these four vectors is the fastest way to feel like a different genre while keeping the SMP shell. All economy additions must be sink-heavy because of the known 44.8B dupe history.
Towarzysze — Pet Companions With Capped Leveling + Fusion Sink Collectible pets that follow the player and give SUPER-MINOR boosts (matching the owner's stated 'minor boost' design intent), with hard level caps, an XP-food sink, and a fusion mechanic that destroys duplicates to upgrade rarity. Lifted from OPLegends' pet system (Overlevel/Tamer caps 115-120, fusion menu, pet food). long-term Top EN economy SMP servers (OPLegends, CosmicPvP, LoverCraft/LoverFella, IcePlanetMC). The pattern that beats DonutSMP-clone fatigue: these servers do NOT win on "more grind" — they win on (1) contested territorial PvP objectives that create scheduled appointment-play and faction rivalry (CosmicPvP Outposts/KOTH), (2) extreme gear DEPTH with a built-in gambling sink (CosmicPvP/AdvancedEnchantments: 190-500+ tiered enchants + Tinkerer secret-dust gamble), (3) horizontal collection meta-progression that survives resets (OPLegends 33 stackable Artifacts giving switchable Token/Money/EXP boosts; pets with Overlevel/Tamer caps 115-120), and (4) seasonal resets paired with leaderboard prestige (OPLegends biweekly resets + Gang Top/Island Top; LoverCraft LoverBux from daily logins + McMMO + daily challenges). DonutSMP is flat: one currency, lifesteal, /shop, no contested world objectives, no deep gear tree, no collections, no seasons. Stealing these four vectors is the fastest way to feel like a different genre while keeping the SMP shell. All economy additions must be sink-heavy because of the known 44.8B dupe history.
Kolekcje (Collections) — manual-only gather ladders that gate recipes & perks A per-resource collection ladder (Dąb, Żelazo, Pszenica, Ziarna Endu...) where only blocks you personally break/mob you personally kill count — never Bazaar, /shop, trade, or sell-wand. Each milestone (50/250/1k/10k...) unlocks a custom recipe, a cosmetic, or a tiny stat, viewable in a /kolekcje GUI with a progress bar per tier. long-term Hypixel SkyBlock progression psychology — why it retains for years: grind loops, collections, minions, time-gating, and a meta-progression umbrella that makes every action "count."
Łowcy (Slayers) — PvE boss grind with an RNG-Meter pity system Summonable solo boss fights per archetype (np. Łowca Nieumarłych, Pajęcza Matka) bought with a quest item. You grind normal mobs to fill a summon bar, fight a tiered boss (T1–T5), earn Slayer XP that levels a dedicated track, and roll a loot table. Crucially each boss has an RNG Meter: pick one rare drop and every kill fills a pity bar that GUARANTEES the drop when full. daily Hypixel SkyBlock progression psychology — why it retains for years: grind loops, collections, minions, time-gating, and a meta-progression umbrella that makes every action "count."
Poziom Konta (Account Level) — a single meta-number that absorbs ALL progression One server-wide level (osobny od skill/combat levels) that ticks up from EVERYTHING: collection milestones, Slayer tiers, quests, jobs, first-time achievements, bestiary kills. 1 level per 100 SkyBlock-style XP. Each level grants a tiny permanent stat (+HP/+speed/+luck) and unlocks gated content/cosmetic prefixes. Shown as a tag in tab/chat and a /poziom dashboard. long-term Hypixel SkyBlock progression psychology — why it retains for years: grind loops, collections, minions, time-gating, and a meta-progression umbrella that makes every action "count."
Skille zawodowe via AuraSkills — Folia-native vocations with micro-perks + milestone unlocks Adopt the owner's jobs idea (Drwal, Górnik, Rolnik, Rybak, Wojownik) as leveled SKILLS, not just paydays: every action grants skill XP; every 5 levels unlocks a passive ability (np. Górnik: szansa na podwójną rudę), plus tiny stat drips. Caps at a high level so it's a months-long climb, with a /skille GUI showing each track's bar and next unlock. long-term Hypixel SkyBlock progression psychology — why it retains for years: grind loops, collections, minions, time-gating, and a meta-progression umbrella that makes every action "count."
Codzienne Zlecenia + Kontrakty (rotating daily commissions & timed contests) A daily-reset board of 5 rotating tasks (Górnik: wykop 500 diamentów; Rolnik: zbierz 1000 pszenicy) plus a recurring timed contest every few hours (Hypixel-Jacob-style: a 20-min farming/mining sprint with a server leaderboard and ranked rewards). Daily streak counter escalates rewards; missing a day resets the streak. daily Hypixel SkyBlock progression psychology — why it retains for years: grind loops, collections, minions, time-gating, and a meta-progression umbrella that makes every action "count."
Gildie z terytorium i Wojnami Weekendowymi (Guild Territory + Weekend Sieges) Guilds claim a flag-anchored territory in the overworld; every Friday-Sunday a scheduled 'Wojna o teren' window opens where enemy guilds can contest the flag, and the top guild on the season ladder gets a visible spawn statue + tag. This is THE feature every top PL survival (Jemerald, FunCraft) has and DonutSMP does not. weekly Polish MC server landscape — cultural fit, payment norms (BLIK/Przelewy24/PSC), ranks, and the events/seasons PL players expect. Grounded in current top PL servers: Jemerald (Towny, 3-month city resets), KociakMC (/praca jobs, /nagroda daily, "Kocie odłamki" event currency, marriage), FunCraft (factions/outpost wars), CreeperPL (class+dungeon RPG), GommeHD (largest, minigame network). Core PL expectations confirmed: reject pay-to-win but accept pay-for-convenience + cosmetics, demand responsive admin ("reaguje w minutach, nie dniach") and anti-toxicity, love seasonal resets with rankings, guilds/gildie, and cyclical weekend events. The DonutSMP clone problem is that it has none of the local "polski survival" identity layers (gildie/miasta, sezony z TOP-listą, prace, eventy weekendowe) that every successful PL server runs.
Sezony z Listą TOP i Prestiżem (3-Month Seasons + Persistent Prestige) Run the survival economy in 3-month sezony like Jemerald/most serious PL servers: at season end the live economy/territory resets, a /toplista crowns winners, and each player keeps a permanent cosmetic Prestiż badge + a tiny carry-over. Fresh start = the single biggest re-engagement event PL servers have. seasonal Polish MC server landscape — cultural fit, payment norms (BLIK/Przelewy24/PSC), ranks, and the events/seasons PL players expect. Grounded in current top PL servers: Jemerald (Towny, 3-month city resets), KociakMC (/praca jobs, /nagroda daily, "Kocie odłamki" event currency, marriage), FunCraft (factions/outpost wars), CreeperPL (class+dungeon RPG), GommeHD (largest, minigame network). Core PL expectations confirmed: reject pay-to-win but accept pay-for-convenience + cosmetics, demand responsive admin ("reaguje w minutach, nie dniach") and anti-toxicity, love seasonal resets with rankings, guilds/gildie, and cyclical weekend events. The DonutSMP clone problem is that it has none of the local "polski survival" identity layers (gildie/miasta, sezony z TOP-listą, prace, eventy weekendowe) that every successful PL server runs.
Prace z Awansem i Codziennym Kontraktem (Jobs Progression + Daily Job Contract) Ship the owner's jobs/vocations idea (drwal, górnik, rolnik, rybak) the way KociakMC's /praca does it, but bolt a rotating Daily Job Contract on top: each job gets one bite-sized daily objective ('zetnij 256 drewna') that pays a chunky bonus + job XP, giving a concrete reason to log in every single day. daily Polish MC server landscape — cultural fit, payment norms (BLIK/Przelewy24/PSC), ranks, and the events/seasons PL players expect. Grounded in current top PL servers: Jemerald (Towny, 3-month city resets), KociakMC (/praca jobs, /nagroda daily, "Kocie odłamki" event currency, marriage), FunCraft (factions/outpost wars), CreeperPL (class+dungeon RPG), GommeHD (largest, minigame network). Core PL expectations confirmed: reject pay-to-win but accept pay-for-convenience + cosmetics, demand responsive admin ("reaguje w minutach, nie dniach") and anti-toxicity, love seasonal resets with rankings, guilds/gildie, and cyclical weekend events. The DonutSMP clone problem is that it has none of the local "polski survival" identity layers (gildie/miasta, sezony z TOP-listą, prace, eventy weekendowe) that every successful PL server runs.
Kalendarz Eventów Weekendowych z NPC-Animatorem (Scheduled Weekend Event Calendar) Publish a fixed, recurring weekend event calendar (Sobota = boss świata, Niedziela = DropParty/podwójna ekonomia) announced in-game and on Discord, run by an at-spawn 'Animator' NPC. CraftServe and every serious PL server run weekly events — a predictable calendar turns 'maybe I'll log in' into a standing weekend ritual. weekly Polish MC server landscape — cultural fit, payment norms (BLIK/Przelewy24/PSC), ranks, and the events/seasons PL players expect. Grounded in current top PL servers: Jemerald (Towny, 3-month city resets), KociakMC (/praca jobs, /nagroda daily, "Kocie odłamki" event currency, marriage), FunCraft (factions/outpost wars), CreeperPL (class+dungeon RPG), GommeHD (largest, minigame network). Core PL expectations confirmed: reject pay-to-win but accept pay-for-convenience + cosmetics, demand responsive admin ("reaguje w minutach, nie dniach") and anti-toxicity, love seasonal resets with rankings, guilds/gildie, and cyclical weekend events. The DonutSMP clone problem is that it has none of the local "polski survival" identity layers (gildie/miasta, sezony z TOP-listą, prace, eventy weekendowe) that every successful PL server runs.
Przepustka Sezonowa (Story-Skinned Battle Pass) A 50-tier, 6-week seasonal pass where XP comes ONLY from playing the world (quests, jobs, builds, events) — never from buying tiers or AFK — with a free track everyone sees and a premium track, wrapped in a Polish seasonal narrative (e.g. 'Sezon: Mroźna Granica') so each season has its own lore, cosmetics and named villain. seasonal Mobile F2P retention loops — porting gacha pity, energy/stamina, daily streaks with break-protection, FOMO limited-time events, and battle passes to a Folia-aware Polish survival network, deliberately rebuilt so the loops are SKILL/ACTIVITY-gated rather than the AFK-shard + paywall loop that defines DonutSMP.
Energia Wypraw (Stamina-Gated Mega-Loot, anti-AFK) A Genshin-style 'resin' meter ('Energia') that regenerates over real time and is the ONLY thing that unlocks the server's richest loot sources (elite mob arenas, treasure dungeons, boss keys) — explicitly designed so the best rewards require SPENDING ENERGY THAT REGENERATES WHILE OFFLINE, killing the incentive to sit AFK all day for income. daily Mobile F2P retention loops — porting gacha pity, energy/stamina, daily streaks with break-protection, FOMO limited-time events, and battle passes to a Folia-aware Polish survival network, deliberately rebuilt so the loops are SKILL/ACTIVITY-gated rather than the AFK-shard + paywall loop that defines DonutSMP.
Pity-Gwarancja w Skrzyniach (Pity-System Crates with Public Odds) Rework the existing crate/key system to add a Genshin-style PITY counter with a visible 'gwarancja' (guarantee) bar — after N opens without a legendary, the next is guaranteed — plus publicly displayed drop rates, turning the loot box from a frustrating gamble into a transparent, climbable progression players chase to completion. long-term Mobile F2P retention loops — porting gacha pity, energy/stamina, daily streaks with break-protection, FOMO limited-time events, and battle passes to a Folia-aware Polish survival network, deliberately rebuilt so the loops are SKILL/ACTIVITY-gated rather than the AFK-shard + paywall loop that defines DonutSMP.
Seria Dni + Tarcza Serii (Daily Streak with Break-Protection) A daily-login + daily-quest streak with escalating milestone rewards at 3/7/14/30/60/100 days, PLUS a 'Tarcza Serii' (streak freeze / forgiveness token) earned by long streaks that auto-saves your run if you miss ONE day — the Duolingo mechanic that makes streaks sticky instead of rage-quit-on-break fragile. daily Mobile F2P retention loops — porting gacha pity, energy/stamina, daily streaks with break-protection, FOMO limited-time events, and battle passes to a Folia-aware Polish survival network, deliberately rebuilt so the loops are SKILL/ACTIVITY-gated rather than the AFK-shard + paywall loop that defines DonutSMP.
Wydarzenia 48h (Rotating 48-Hour FOMO Events with Exclusive Cosmetics) A calendar of short, rotating limited-time events (every weekend + holidays) — e.g. 'Weekend Podwójnej Energii', a 48h Halloween boss with a cosmetic that NEVER returns, a 24h double-XP storm — each announced cross-server with a live countdown, manufacturing the 'log in now or miss it forever' urgency that drives F2P weekend spikes. weekly Mobile F2P retention loops — porting gacha pity, energy/stamina, daily streaks with break-protection, FOMO limited-time events, and battle passes to a Folia-aware Polish survival network, deliberately rebuilt so the loops are SKILL/ACTIVITY-gated rather than the AFK-shard + paywall loop that defines DonutSMP.
Sezon (6-tygodniowy battle pass z fabułą) Fixed 6-week seasons with a named theme (e.g. 'Sezon: Mróz', 'Sezon: Otchłań') and a dual-track Przepustka (Battle Pass): a free lane everyone earns and a paid/premium lane bought with real money OR with an in-game premium currency you can only earn by PLAYING, not by grinding raw economy. Each season has a published calendar (start date, 3-4 scheduled events, finale) pinned in /sezon, a hologram at spawn, and a website countdown. XP comes from playtime, quests and event participation — NOT from selling items, so it can't be bought with duped/inflated currency. seasonal Live-service game seasons (Fortnite/Apex/Valorant): fixed-length seasons, dual-track battle pass with FOMO/sunk-cost compulsion, a published content calendar, and scheduled live-events that create a "surge → dip → recovery" attendance rhythm. The transplant target is a Polish v5 network that currently feels like a DonutSMP clone (endless flat grind, US-timezone events, alt-farmable giveaways, runaway inflation). The seasons lens fixes exactly those weaknesses: seasons give a narrative arc and a reason to come back on a schedule instead of grinding forever; a battle pass replaces the bottomless economy faucet with a CAPPED, mostly-cosmetic progression sink that is inflation-proof; appointment live-events (run at PL prime time, ~19:00-21:00 CET) manufacture concurrency spikes DonutSMP literally cannot serve to Europeans. Build note: Canvas/Folia overworld means any event/boss logic must be region-thread-aware; off-the-shelf battle-pass plugins (BattlePass, GBattlePass, RevampBattlePass) run fine on the Paper proxy/lobby side, but server-wide live-event orchestration is best custom over NATS so a single trigger fans out to all backends at once.
Wydarzenie na żywo (PL prime-time appointment events over NATS) Fortnite-style scheduled LIVE EVENTS announced days ahead on the season calendar and run at Polish prime time (19:00-21:00 CET) — exactly the window DonutSMP can't serve Europeans. Examples: a server-wide boss ('Inwazja Otchłani') that all online players damage together with a shared BossBar HP pool; a 30-minute global 2x event; a one-time map-changing 'finale' that ends the season (terrain scar, new region unlocks next season). A single operator trigger fans out over NATS to every backend simultaneously so the whole network sees the same countdown and the same event at once. weekly Live-service game seasons (Fortnite/Apex/Valorant): fixed-length seasons, dual-track battle pass with FOMO/sunk-cost compulsion, a published content calendar, and scheduled live-events that create a "surge → dip → recovery" attendance rhythm. The transplant target is a Polish v5 network that currently feels like a DonutSMP clone (endless flat grind, US-timezone events, alt-farmable giveaways, runaway inflation). The seasons lens fixes exactly those weaknesses: seasons give a narrative arc and a reason to come back on a schedule instead of grinding forever; a battle pass replaces the bottomless economy faucet with a CAPPED, mostly-cosmetic progression sink that is inflation-proof; appointment live-events (run at PL prime time, ~19:00-21:00 CET) manufacture concurrency spikes DonutSMP literally cannot serve to Europeans. Build note: Canvas/Folia overworld means any event/boss logic must be region-thread-aware; off-the-shelf battle-pass plugins (BattlePass, GBattlePass, RevampBattlePass) run fine on the Paper proxy/lobby side, but server-wide live-event orchestration is best custom over NATS so a single trigger fans out to all backends at once.
Liga Sezonowa (seasonal leaderboard reset + legacy cosmetics) A seasonal competitive ladder (Liga) that RESETS every season — playtime, quest, event-points and a couple of skill stats roll into a per-season ranking. Top players each season earn permanent, season-stamped LEGACY cosmetics they keep forever (a dated title 'Mistrz Sezonu 3', a unique particle/tag, a spot on a permanent hall-of-fame hologram at spawn). The ladder is built from the same anti-inflation point sources as the pass, so it rewards engagement, not whoever duped the most coins. seasonal Live-service game seasons (Fortnite/Apex/Valorant): fixed-length seasons, dual-track battle pass with FOMO/sunk-cost compulsion, a published content calendar, and scheduled live-events that create a "surge → dip → recovery" attendance rhythm. The transplant target is a Polish v5 network that currently feels like a DonutSMP clone (endless flat grind, US-timezone events, alt-farmable giveaways, runaway inflation). The seasons lens fixes exactly those weaknesses: seasons give a narrative arc and a reason to come back on a schedule instead of grinding forever; a battle pass replaces the bottomless economy faucet with a CAPPED, mostly-cosmetic progression sink that is inflation-proof; appointment live-events (run at PL prime time, ~19:00-21:00 CET) manufacture concurrency spikes DonutSMP literally cannot serve to Europeans. Build note: Canvas/Folia overworld means any event/boss logic must be region-thread-aware; off-the-shelf battle-pass plugins (BattlePass, GBattlePass, RevampBattlePass) run fine on the Paper proxy/lobby side, but server-wide live-event orchestration is best custom over NATS so a single trigger fans out to all backends at once.
Mapa Sezonowa: nowa kraina co sezon (fresh-region rotation, not a full wipe) Each season opens a brand-new, themed survival REGION (a fresh map area / dimension portal) that becomes the season's hotspot, while older regions are preserved or soft-retired. New region = fresh resources, a new themed POI/dungeon tied to the season story, and the season's live-event finale happens there. This mirrors Fortnite/Pika/Jartex 'new themed map each reset' without the brutal full-economy wipe that would nuke our existing playerbase's bases. seasonal Live-service game seasons (Fortnite/Apex/Valorant): fixed-length seasons, dual-track battle pass with FOMO/sunk-cost compulsion, a published content calendar, and scheduled live-events that create a "surge → dip → recovery" attendance rhythm. The transplant target is a Polish v5 network that currently feels like a DonutSMP clone (endless flat grind, US-timezone events, alt-farmable giveaways, runaway inflation). The seasons lens fixes exactly those weaknesses: seasons give a narrative arc and a reason to come back on a schedule instead of grinding forever; a battle pass replaces the bottomless economy faucet with a CAPPED, mostly-cosmetic progression sink that is inflation-proof; appointment live-events (run at PL prime time, ~19:00-21:00 CET) manufacture concurrency spikes DonutSMP literally cannot serve to Europeans. Build note: Canvas/Folia overworld means any event/boss logic must be region-thread-aware; off-the-shelf battle-pass plugins (BattlePass, GBattlePass, RevampBattlePass) run fine on the Paper proxy/lobby side, but server-wide live-event orchestration is best custom over NATS so a single trigger fans out to all backends at once.
Frakcje (Reputation Factions) — pick a guild, grind Przyjazny → Czczony → Wywyższony 3-4 in-world factions (np. Gildia Górnicza, Liga Łowców, Kupcy z Doliny, Zakon Strażników) each with a named NPC hub and a reputation bar. Players earn rep by completing that faction's daily/weekly tasks, and unlock tiered, rep-gated rewards (cosmetics, NPC vendors selling exclusive blocks/tags/access — NOT raw currency) as they climb Neutralny → Przyjazny → Życzliwy → Czczony → Wywyższony. long-term MMORPG dailies & reputation grinds (WoW/FFXIV daily quests, reputation factions, weekly lockouts) — healthy long-term engagement
Cotygodniowy Najazd (Weekly Lockout PvE Event) — one big co-op clear per character per week A scripted weekly PvE encounter (a mob-wave siege / mini-raid boss in an instanced arena) that each account can clear ONCE per reset week (Monday 00:00 PL). Clearing it drops a guaranteed bound 'Pieczęć Najazdu' token + a chance at a rare cosmetic, and counts toward a seasonal collection. The lockout is the point: you can't grind it infinitely, so it stays valuable and creates a fixed weekly appointment. weekly MMORPG dailies & reputation grinds (WoW/FFXIV daily quests, reputation factions, weekly lockouts) — healthy long-term engagement
Reputacja Codzienna z Walutą Honoru (Daily Hub with a separate Honor currency) A daily-quest hub (3 rotating dailies + 1 'emisariusz'/emissary bonus quest that rotates which faction it favours) that pays out in a dedicated soft currency — 'Punkty Honoru' — completely separate from the Voyager economy. Honoru buys time-gated, account-bound goods from a Honor vendor: cosmetics, faction rep boosts, the next tier of a long collection. Keeping it OFF the main economy is the whole defensive design. daily MMORPG dailies & reputation grinds (WoW/FFXIV daily quests, reputation factions, weekly lockouts) — healthy long-term engagement
Drogi Mistrzostwa (Vocation Mastery Paths) — turn jobs into a reputation-style mastery grind Take the owner's drwal/górnik/etc. vocations and bolt a long, account-bound MASTERY track onto each (levels 1-100 with named tiers: Czeladnik → Rzemieślnik → Ekspert → Mistrz → Arcymistrz). Mastery unlocks cosmetic recipes, vocation-flavoured titles, micro-perks, and a capstone soulbound tool skin. The 'super minor boosts' the owner wants stay minor; the RETENTION comes from the long bar and the title, not the power. long-term MMORPG dailies & reputation grinds (WoW/FFXIV daily quests, reputation factions, weekly lockouts) — healthy long-term engagement
Sezon + Kronika: horizontal seasonal reset with a permanent legacy wall Run 8-10 week seasons that wipe the survival economy/leaderboards but bank every player's name, rank and best feats forever into a /kronika hall at spawn — so the grind has a finish line AND nothing you earned emotionally is ever deleted. seasonal Why players quit MC servers — churn causes (pay-to-win, grind walls, empty-server perception, toxicity, no goals) and their retention fixes, applied to a Polish v5 network that currently plays like a DonutSMP clone.
Strażnik: victim-empowering anti-toxicity + AI chat shield When a new or low-level player gets dogpiled with insults, the system auto-detects it, hands the VICTIM a temporary mute-hammer over the offender, and quietly shadow-throttles toxic chat — so the first-week experience that usually drives quitters away instead makes them feel protected. onboarding Why players quit MC servers — churn causes (pay-to-win, grind walls, empty-server perception, toxicity, no goals) and their retention fixes, applied to a Polish v5 network that currently plays like a DonutSMP clone.
Cech: player-run guilds with a shared goal bank (jobs feed the guild, not just you) Turn the owner's jobs/vocations idea into a SOCIAL engine — drwal/górnik XP and earnings also fill a shared Cech (guild) treasury and weekly guild objectives, so players log in because their team needs them, which is the single strongest D7/D30 retention force. social Why players quit MC servers — churn causes (pay-to-win, grind walls, empty-server perception, toxicity, no goals) and their retention fixes, applied to a Polish v5 network that currently plays like a DonutSMP clone.
Pierwszy Tydzień: a guided 7-day onboarding quest line with a free starter path Replace the 'spawn into a confusing P2W server and leave' experience with a hand-held 7-day quest chain that teaches the server, hands out escalating daily rewards, and guarantees a viable free start — directly targeting the D1->D7 cliff where you lose players before they ever see the fun. daily Why players quit MC servers — churn causes (pay-to-win, grind walls, empty-server perception, toxicity, no goals) and their retention fixes, applied to a Polish v5 network that currently plays like a DonutSMP clone.
Żywy Spawn: real activity feed + live events instead of fake bots Beat the 'dead server' perception that kills joiners WITHOUT resorting to the fake-bot plugins everyone uses — surface genuine live activity (recent trades, KOTH starting, who just ranked up) and run small scheduled spawn events so even at low population the world feels alive and gives a reason to stay logged in. daily Why players quit MC servers — churn causes (pay-to-win, grind walls, empty-server perception, toxicity, no goals) and their retention fixes, applied to a Polish v5 network that currently plays like a DonutSMP clone.
Daily streak ladder (proxy-side) Login-streak plus cumulative-playtime reward ladder living on the Travertine proxy, not the Canvas overworld; rewards claimed through NATS to whichever backend the player is on. daily Folia/Canvas feasibility: no global main thread, use the three schedulers, flag BukkitRunnable
Profesje (drwal/gornik/rybak) on EntityScheduler The owner's jobs idea done the only Folia-correct way: XP and micro-boosts driven purely by block-break, fish-catch and mob-kill EVENTS that already fire on the owning region thread, no world scanning. Pick 2 trades; each level grants +2% sell on that resource or a 1-in-50 double-drop. long-term Folia/Canvas feasibility: no global main thread, use the three schedulers, flag BukkitRunnable
Networkwide weekly goal (NATS plus proxy bossbar) A network-wide cooperative weekly objective (razem wykopcie 2,000,000 diamentow) with a live progress bar on a proxy bossbar across EVERY server; fill it and the whole network gets a 48h buff weekend (2x crate rates, special warp). Fresh goal weekly. weekly Folia/Canvas feasibility: no global main thread, use the three schedulers, flag BukkitRunnable
Bezpieczna Aukcja PL: player auction house (DB escrow) A cross-server player-to-player auction house where listing, browsing and buying are 100% GUI plus async-DB with ZERO world ticking; list items for shards, queryable from any backend via shared MySQL. Items are escrowed in DB, not as dropped or ticked entities, which is what makes it Folia-safe. social Folia/Canvas feasibility: no global main thread, use the three schedulers, flag BukkitRunnable
Codzienne Wyzwania: rotating daily quests on the event thread The owner's daily-quest idea done Folia-safe: 3 rotating challenges (sprzedaj za 5,000; otworz 3 skrzynie; przejdz 2,000 blokow) tracked purely from events the player already triggers, claimed from a /dzienne GUI; completing all 3 gives a streak point that feeds the daily ladder, chaining the loops. daily Folia/Canvas feasibility: no global main thread, use the three schedulers, flag BukkitRunnable
Zawody / Profesje (Jobs-Vocations) — BUY UniverseJobs, reskin to Polish, gate boosts behind it The owner already wants drwal/górnik/rolnik vocations with 'super minor' boosts. Don't build the engine — UniverseJobs on SpigotMC is natively Folia/Purpur/Paper compatible (1.20-1.21.10, actively shipped Dec 2025) and is purpose-built as the Jobs Reborn replacement (Jobs Reborn is NOT Folia-safe — it uses sync Bukkit schedulers and will break regionised ticking on Canvas). You author the job definitions yourself, so the 'super minor boost' tuning and Polish naming stay 100% in your control. daily Reuse vs build vs buy — marketplace plugins (BuiltByBit / Polymart / SpigotMC) that deliver each retention loop Folia-aware on Canvas 1.21.11, vs the cost of building custom. Verdict logic: BUY the generic, well-trodden loops where 5-20 EUR off-the-shelf beats weeks of Folia-aware dev; BUILD only the differentiating identity layer and anything touching the Voyager economy (where a marketplace plugin's dupe surface is a liability after the 44.8B incident). The DonutSMP-clone look comes from a specific plugin family (DonutCrates, DonutSell, DonutSMPCore, Donut Economy on BuiltByBit) — escaping the clone identity = layering RPG/custom-content plugins that those servers structurally cannot run, NOT writing more sell-wand code.
Sezony + Prestiż (Seasonal ladder with prestige reset) — BUY XLeaderboards + DriftPrestiges The strongest anti-clone, anti-dupe retention structure: run the survival world in 6-8 week SEASONS with a public ranked ladder that resets, plus an opt-in prestige that converts a player's progress into permanent cosmetic status. Both halves exist off-the-shelf and Folia-safe: XLeaderboards (SpigotMC #120231) 'now fully supports Folia' with in-game-editable daily/weekly/monthly reset times; DriftPrestiges (BuiltByBit #67209) is a full prestige-for-permanent-perks system with leaderboard integration. seasonal Reuse vs build vs buy — marketplace plugins (BuiltByBit / Polymart / SpigotMC) that deliver each retention loop Folia-aware on Canvas 1.21.11, vs the cost of building custom. Verdict logic: BUY the generic, well-trodden loops where 5-20 EUR off-the-shelf beats weeks of Folia-aware dev; BUILD only the differentiating identity layer and anything touching the Voyager economy (where a marketplace plugin's dupe surface is a liability after the 44.8B incident). The DonutSMP-clone look comes from a specific plugin family (DonutCrates, DonutSell, DonutSMPCore, Donut Economy on BuiltByBit) — escaping the clone identity = layering RPG/custom-content plugins that those servers structurally cannot run, NOT writing more sell-wand code.
Własna treść: custom bossy + dungeony (PvE identity layer) — BUY MythicMobs + ModelEngine/BetterModel The single highest-leverage 'stop being a clone' move, and it's almost entirely buy-not-build. Add handcrafted Polish-themed bosses and a rotating dungeon/event so the server has PvE content DonutSMP has none of. MythicMobs ships Folia patches in recent builds (5.6+; free version on SpigotMC #5702) and BetterModel (SpigotMC #121561) is an explicitly 'Folia supported' BlockBench model engine — so you get fully custom modelled bosses without touching the economy or writing combat code. weekly Reuse vs build vs buy — marketplace plugins (BuiltByBit / Polymart / SpigotMC) that deliver each retention loop Folia-aware on Canvas 1.21.11, vs the cost of building custom. Verdict logic: BUY the generic, well-trodden loops where 5-20 EUR off-the-shelf beats weeks of Folia-aware dev; BUILD only the differentiating identity layer and anything touching the Voyager economy (where a marketplace plugin's dupe surface is a liability after the 44.8B incident). The DonutSMP-clone look comes from a specific plugin family (DonutCrates, DonutSell, DonutSMPCore, Donut Economy on BuiltByBit) — escaping the clone identity = layering RPG/custom-content plugins that those servers structurally cannot run, NOT writing more sell-wand code.
Daily/Weekly Quests + Battle Pass (sezonowa przepustka) — BUY BattlePass (Tasks/Quests), don't custom-build The owner explicitly wants daily quests and long quest lines. This is the most commoditised loop in MC — building it custom is wasted weeks. BattlePass / Tasks-Quests (Polymart #833, ~19.99 EUR) bundles Free/Premium passes, daily + weekly quests AND built-in seasons that reset progress, and shipped Folia scheduler support in 4.9.3 (Feb 2025, actively patched through 4.9.4). One purchase covers the entire 'come back daily AND chase a seasonal track' loop, with ready-made config packs (144/200-quest configs sold on Polymart) to skip authoring. daily Reuse vs build vs buy — marketplace plugins (BuiltByBit / Polymart / SpigotMC) that deliver each retention loop Folia-aware on Canvas 1.21.11, vs the cost of building custom. Verdict logic: BUY the generic, well-trodden loops where 5-20 EUR off-the-shelf beats weeks of Folia-aware dev; BUILD only the differentiating identity layer and anything touching the Voyager economy (where a marketplace plugin's dupe surface is a liability after the 44.8B incident). The DonutSMP-clone look comes from a specific plugin family (DonutCrates, DonutSell, DonutSMPCore, Donut Economy on BuiltByBit) — escaping the clone identity = layering RPG/custom-content plugins that those servers structurally cannot run, NOT writing more sell-wand code.
Własna ekonomia: aukcje + sklep gracza (player-driven market) — BUILD custom on Voyager, do NOT buy a Donut* clone This is the one loop you must BUILD, not buy. A player-to-player auction house / chest-shop economy is a deep retention loop (logging in to check bids, restock, undercut), but every off-the-shelf option here is either a DonutSMP-clone plugin (Donut Economy, DonutSell, DonutSMPCore on BuiltByBit) that re-cements the clone identity, or a generic AH whose dupe surface you don't control — and you already lost 44.8B to an economy dupe. Build a thin auction/market layer directly on the Voyager economy DB with server-authoritative, transactional, idempotent trades and full audit logging. weekly Reuse vs build vs buy — marketplace plugins (BuiltByBit / Polymart / SpigotMC) that deliver each retention loop Folia-aware on Canvas 1.21.11, vs the cost of building custom. Verdict logic: BUY the generic, well-trodden loops where 5-20 EUR off-the-shelf beats weeks of Folia-aware dev; BUILD only the differentiating identity layer and anything touching the Voyager economy (where a marketplace plugin's dupe surface is a liability after the 44.8B incident). The DonutSMP-clone look comes from a specific plugin family (DonutCrates, DonutSell, DonutSMPCore, Donut Economy on BuiltByBit) — escaping the clone identity = layering RPG/custom-content plugins that those servers structurally cannot run, NOT writing more sell-wand code.
Konto Sieciowe (one progression identity, live everywhere) Twoje questy, poziomy zawodów, ranga i postęp w Karnecie są te same na każdym serwerze sieci — i aktualizują się na żywo, gdy grasz. Zabij moba na survivalu, a pasek questa drgnie zanim wrócisz do lobby. long-term Network-wide sync (NATS/MySQL): making quests, jobs, passes, and leaderboards a single coherent player identity across every v5 server, using MySQL as the authoritative ledger and NATS as the real-time nervous system. The strategic thesis: DonutSMP and its clones are single-server experiences where progression dies at the server border. If a player's quest progress, job XP, pass tier, and rank are GLOBAL and visibly update in real time no matter which server they're on, the network itself becomes the retention product — you can't get this anywhere else, and it makes leaving any single server feel like abandoning your whole account. Every feature below treats the economy-dupe history (44.8B incident) as a design constraint: progression state is event-sourced and idempotent, never trust-the-client increment.
Karnet Sieciowy (network-wide season pass, progress from any server) Jeden sezonowy Karnet (darmowy tor + premium) na całą sieć. Wykonuj zadania gdziekolwiek — na survivalu, w minigrach, na PvP — a pasek Karnetu rośnie wspólnie. Nagrody odbierasz na dowolnym serwerze. seasonal Network-wide sync (NATS/MySQL): making quests, jobs, passes, and leaderboards a single coherent player identity across every v5 server, using MySQL as the authoritative ledger and NATS as the real-time nervous system. The strategic thesis: DonutSMP and its clones are single-server experiences where progression dies at the server border. If a player's quest progress, job XP, pass tier, and rank are GLOBAL and visibly update in real time no matter which server they're on, the network itself becomes the retention product — you can't get this anywhere else, and it makes leaving any single server feel like abandoning your whole account. Every feature below treats the economy-dupe history (44.8B incident) as a design constraint: progression state is event-sourced and idempotent, never trust-the-client increment.
Tablice na Żywo (real-time network leaderboards + holograms) Globalne rankingi sieci — najlepszy drwal, górnik, top PvP, top Karnet — widoczne jako hologramy w lobby i na /top, aktualizowane na żywo z każdego serwera. Wyprzedź kogoś, a hologram zmieni się w tej samej sekundzie. social Network-wide sync (NATS/MySQL): making quests, jobs, passes, and leaderboards a single coherent player identity across every v5 server, using MySQL as the authoritative ledger and NATS as the real-time nervous system. The strategic thesis: DonutSMP and its clones are single-server experiences where progression dies at the server border. If a player's quest progress, job XP, pass tier, and rank are GLOBAL and visibly update in real time no matter which server they're on, the network itself becomes the retention product — you can't get this anywhere else, and it makes leaving any single server feel like abandoning your whole account. Every feature below treats the economy-dupe history (44.8B incident) as a design constraint: progression state is event-sourced and idempotent, never trust-the-client increment.
Zadania Sieciowe (server-spanning quest chains that route you across the network) Długie linie questów, których etapy celowo prowadzą cię przez różne serwery: 'Wykop 500 diamentów na survivalu → wygraj 3 KOTH-y na PvP → ukończ minigrę' — postęp synchronizuje się natychmiast, więc po przejściu portalu zadanie już wie, że jesteś gotów na kolejny krok. weekly Network-wide sync (NATS/MySQL): making quests, jobs, passes, and leaderboards a single coherent player identity across every v5 server, using MySQL as the authoritative ledger and NATS as the real-time nervous system. The strategic thesis: DonutSMP and its clones are single-server experiences where progression dies at the server border. If a player's quest progress, job XP, pass tier, and rank are GLOBAL and visibly update in real time no matter which server they're on, the network itself becomes the retention product — you can't get this anywhere else, and it makes leaving any single server feel like abandoning your whole account. Every feature below treats the economy-dupe history (44.8B incident) as a design constraint: progression state is event-sourced and idempotent, never trust-the-client increment.
Puls Sieci (live network-wide events & shared community goals) Cała sieć dąży do wspólnego celu naraz: 'Sieć wykopała 1 000 000 bloków w ten weekend' — pasek postępu rośnie ze WSZYSTKICH serwerów jednocześnie, a po jego zapełnieniu każdy online dostaje nagrodę. Plus globalne ogłoszenia: gdy ktoś zdobędzie rzadki drop, widzi to cała sieć. weekly Network-wide sync (NATS/MySQL): making quests, jobs, passes, and leaderboards a single coherent player identity across every v5 server, using MySQL as the authoritative ledger and NATS as the real-time nervous system. The strategic thesis: DonutSMP and its clones are single-server experiences where progression dies at the server border. If a player's quest progress, job XP, pass tier, and rank are GLOBAL and visibly update in real time no matter which server they're on, the network itself becomes the retention product — you can't get this anywhere else, and it makes leaving any single server feel like abandoning your whole account. Every feature below treats the economy-dupe history (44.8B incident) as a design constraint: progression state is event-sourced and idempotent, never trust-the-client increment.
Skarbiec Krajowy (National Treasury) — server-wide dynamic sink that buys back the economy A live, server-wide gold sink that publicly tracks how much currency has been burned this week and auto-tunes prices so the economy can never run away again — the way the 44.8B incident did. Players SEE inflation being fought in real time and compete to be the biggest contributor. weekly Economy integration & anti-inflation — tie engagement rewards into the Voyager economy via a server-authoritative ledger with hard reward caps, wealth-scaling sinks, and a tagged non-tradeable reward currency that quarantines duped/laundered funds out of the prestige economy. Inverts the DonutSMP pure-faucet model into a deflationary, prestige-gated one.
Żetony (Tokens) — a tagged, non-tradeable reward currency that quarantines all engagement payouts All quest/job/daily rewards pay out in Żetony, a SECOND currency that can never be traded, dropped, or paid between players — so even if someone dupes or RMTs, the duped money can't buy prestige cosmetics or rank perks. It's the structural fix that makes the whole reward economy dupe-proof. long-term Economy integration & anti-inflation — tie engagement rewards into the Voyager economy via a server-authoritative ledger with hard reward caps, wealth-scaling sinks, and a tagged non-tradeable reward currency that quarantines duped/laundered funds out of the prestige economy. Inverts the DonutSMP pure-faucet model into a deflationary, prestige-gated one.
Dzienny Limit Wypłat (Daily Payout Ceiling) — a hard, transparent cap on all faucet income Every source of 'free' money — jobs, quests, daily login, mob-farm sell — shares a visible daily earning ceiling shown on a progress bar. It's the faucet governor that mathematically prevents another runaway-money event, and it doubles as a daily-return hook because players want to 'cap out' before reset. daily Economy integration & anti-inflation — tie engagement rewards into the Voyager economy via a server-authoritative ledger with hard reward caps, wealth-scaling sinks, and a tagged non-tradeable reward currency that quarantines duped/laundered funds out of the prestige economy. Inverts the DonutSMP pure-faucet model into a deflationary, prestige-gated one.
Aukcja Skarbów (Treasure Auction) — weekly server-sink auction that retires currency permanently Once a week the server auctions a small batch of EXCLUSIVE bound items (a limited cosmetic, a one-week perk, a leaderboard cape). Players bid in gold, but the winning bids are BURNED — deleted from the money supply, not paid to anyone. It's a high-engagement event that's secretly a giant, voluntary inflation sink. weekly Economy integration & anti-inflation — tie engagement rewards into the Voyager economy via a server-authoritative ledger with hard reward caps, wealth-scaling sinks, and a tagged non-tradeable reward currency that quarantines duped/laundered funds out of the prestige economy. Inverts the DonutSMP pure-faucet model into a deflationary, prestige-gated one.
Reputacja & Ubezpieczenie Kont (Reputation + dupe-tripwire holdback) — anti-abuse layer that gates reward velocity Every account builds a Reputacja (trust) score from legitimate playtime and milestones. New/low-rep accounts have slower reward velocity and a short payout 'hold' on large sums; the system also runs live conservation-of-money checks that freeze and flag any balance jump with no matching ledger event — so the next 44.8B dupe gets caught in minutes, not after it's spent. onboarding Economy integration & anti-inflation — tie engagement rewards into the Voyager economy via a server-authoritative ledger with hard reward caps, wealth-scaling sinks, and a tagged non-tradeable reward currency that quarantines duped/laundered funds out of the prestige economy. Inverts the DonutSMP pure-faucet model into a deflationary, prestige-gated one.