Sueta

Dynatrade - Dynamic Economy

v0.8.7

A dynamic economy engine that creates a player-driven, living market.

·Plugin
  1. v0.8.7latestResponsive Markets & Market States4 weeks ago
    DynaTrade v0.8.7 Spigot/Paper 1.21.4 · Vault + economy plugin Technical Preview​ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ TL;DR DynaTrade can now optionally trigger market cycles from real confirmed trade volume, instead of reacting only on the normal scheduled timer. Added 7 player-facing market states directly to the market GUI: Stable, Rising, Falling, High Activity, Thin Market, Volatile, and Insufficient Data. Market states include short explanations so players can understand why an item is being classified that way. Volume cycles include cooldown, coalescing and recovery handling so multiple triggers cannot create duplicate or empty market generations. Existing configurations remain compatible — the new volume trigger is disabled by default and requires no migration. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ How to Update Stop your server Replace the jar Start your server No extra migration is required. Existing servers continue using scheduled market cycles exactly as before unless the new volume trigger is explicitly enabled. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Known Limitations (Technical Preview) Volume-triggered cycles are global market cycles — they do not process individual items independently. Market states describe recent market behavior only. They are not predictions and do not affect pricing. Some display states depend on recent in-memory market history and may temporarily show a more conservative state after restart until new cycles rebuild enough history. Network-wide market synchronization, Redis/SQL backends and shared market authority are not included in this release. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ .SpoilerTarget">Spoiler: Full technical details Responsive Volume Cycles DynaTrade now supports an optional second way to start a market cycle. Previously, normal automatic cycles were primarily triggered by the configured TIME interval. 0.8.7 adds: VOLUME — start the same global pricing cycle once enough confirmed market activity has accumulated. New configuration: Code (YAML): pricing: volume-trigger: enabled : false global-threshold : 500 min-interval-ticks : 1200 Disabled by default — existing servers keep the previous behavior unless this feature is enabled. Global threshold — BUY and SELL quantity both contribute toward activity. Confirmed trades only — quotes, rejected trades, failed journal writes and unsuccessful operations do not contribute. Same pricing pipeline — VOLUME does not introduce a second pricing engine. It triggers the existing market cycle pipeline. Minimum interval — prevents extremely active markets from repeatedly cycling without a cooldown. Reload-aware — changing the volume-trigger configuration through reload updates the policy used by future cycles. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Market States The market GUI can now translate DynaTrade's existing trend, volatility, activity and participation signals into a simple player-facing state. The seven states are: Insufficient Data — there is not enough recent information to classify the market reliably. Thin Market — recent prices are based on limited market participation. Volatile — recent price behavior has been unstable. High Activity — current trading activity is above the item's normal level. Rising — recent prices have moved upward consistently. Falling — recent prices have moved downward consistently. Stable — recent prices are broadly balanced. The classifier uses a deterministic priority when multiple conditions exist: Code (Text): Insufficient Data → Thin Market → Volatile → High Activity → Rising / Falling → Stable Important: these states are completely observational. They do not modify prices, spread, calibration, VREF, momentum, risk scoring, trade admission or cycle scheduling. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Market State Reasons Item details now show not only the state but also a short explanation. Examples include: Insufficient History — recent history is limited. Thin Participation — recent prices reflect limited participation. High Volatility — recent price behavior has been unstable. High Activity — recent activity is above normal. Bullish Trend — recent prices have risen consistently. Bearish Trend — recent prices have fallen consistently. Balanced Market — recent prices have been broadly balanced. The market list shows the compact state, while the item detail view includes the explanation. English and Portuguese translations were added for the complete feature. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ High Activity Detection High market activity is now exposed separately from volatility classification. Previously, a high-volume condition could be represented only as part of broader risk/volatility information. 0.8.7 keeps the existing risk model intact while exposing a dedicated read-only activity signal for the GUI. This allows an item to be shown as: High Activity without requiring it to also be classified as volatile. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Volume Trigger Safety The new automatic trigger includes several protections for busy markets. Busy-cycle coalescing — if the market is already processing a cycle, repeated volume triggers collapse into one pending request. Revalidation — once the active cycle finishes, DynaTrade checks the live buffer again before starting another VOLUME cycle. If another cycle already consumed the qualifying activity, the stale request is dropped. TIME + VOLUME serialization — scheduled and responsive cycles share the same cycle state and cannot run concurrently. MANUAL compatibility — manual cycles continue using the existing administrative behavior. Cooldown after successful cycles — rejected or failed cycle attempts do not incorrectly consume the automatic-cycle interval. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Transaction Buffer Improvements The transaction buffer now maintains an O(1) active-volume counter. This means the plugin does not need to rebuild or scan the full pending transaction map after every trade just to decide whether the volume threshold was reached. The counter: Counts BUY + SELL quantity Resets with buffer rotation Restores correctly after failed cycle persistence Rejects numeric overflow before mutating the buffer Preserves exact volume across concurrent record/drain operations ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Recovery & Exactly-Once Hardening Several edge cases were found while certifying the responsive cycle path and were fixed in this release. Fixed: restoring the same drained snapshot more than once could duplicate recovered market activity. Fixed: repeated persistence callbacks could attempt to apply the same market cycle again. Fixed: stale pending volume requests could remain marked after they were no longer eligible. Fixed: the runtime could return to IDLE before cycle cleanup had actually completed. Fixed: a repeated durable trade callback could publish/count the same confirmed volume more than once. Changed: cleanup now remains part o
    2 downloads
  2. v0.8.6Adaptive MarketsJul 16, 2026
    DynaTrade v0.8.6 Spigot/Paper 1.21.4 · Vault + economy plugin Technical Preview​ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ TL;DR Pricing now reacts to market risk and volatility through an adaptive spread system Adaptive spread is applied to real buy/sell quotes only after an item has completed calibration warm-up Added an extensible foundation for external/custom item identities and future provider integrations Added a read-only market API foundation for external integrations Config and data from 0.8.5 remain fully compatible — no migration required Downgrade from 0.8.4+ to 0.8.3 is not supported — back up before updating ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ How to Update Stop your server Replace the jar Start your server No extra steps required. Existing configuration continues to work with safe defaults. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Known Limitations (Technical Preview) External item support is foundation-only — no automatic ItemsAdder, Oraxen, MMOItems, or MythicMobs integration yet The market read API is read-only and has no public API stability guarantee yet Adaptive spread falls back to the configured spread while calibration is disabled, warming up, or lacks valid risk data ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ .SpoilerTarget">Spoiler: Full technical details Risk Signals and Volatility DynaTrade now derives bounded, item-level market risk signals from market behavior. Risk score — calculates a bounded risk value for each item Volatility profile — classifies item behavior from cycle-to-cycle market changes Thin-market dampening — reduces overreaction when participation or volume is too low Market-only model — signals remain item-scoped and market-driven; no player profiling or punishment logic Adaptive Spread Adaptive spread turns risk signals into controlled adjustments for real trade quotes. Adaptive spread bonus — derived from risk score and a configurable maximum bonus Safe bounds — bonus is clamped to configured limits Per-item overrides — maximum adaptive spread bonus can be configured globally or per item Live quote integration — the adjustment is applied to real buy/sell quotes after calibration is ready Safe fallback — configured spread remains in use when calibration is disabled, warming up, invalid, or missing risk data Momentum compatibility — adaptive spread stays disabled when the momentum-spread layer is active Diagnostics in /dt item The /dt item <item> output now includes adaptive market-risk information: Risk score — current bounded risk signal Volatility profile — current market volatility classification Adaptive spread bonus — currently calculated extra spread Maximum adaptive spread — active configured limit Adaptive spread active — whether the bonus is currently affecting quotes Reason — why adaptive spread is active or suppressed External Item Identity Foundation A new provider-based identity layer prepares DynaTrade for richer external item ecosystems. External identities — items can be identified by provider, namespace, and external ID PersistentData matching — typed PersistentData criteria can participate in item matching Provider registry — detection, capability reporting, bridge support, and safe no-op fallback Multi-provider resolution — item resolution can safely evaluate multiple providers Current scope — infrastructure only; concrete third-party item-provider integrations are not included yet Market Read API Foundation New read-only integration views and hooks expose market data without allowing external code to mutate pricing state. Market quotes — read current quote information Market summary — inspect market-level state Item support status — inspect whether and how an item is supported Provider status — inspect detected item providers and their capabilities Read hooks/events — integration points for observing market reads Runtime Reliability Atomic pricing-state deltas — pricing updates are computed as atomic state changes Transaction recovery — drained transaction snapshots are retained for recovery Persistence isolation — a cycle persistence failure no longer takes down the complete cycle Trade lifecycle hardening — runtime startup/shutdown and trade-service lifecycle handling were reinforced Concurrency validation — added a high-concurrency trade stress-test harness Full Changelog New: Item-level risk scoring and volatility classification New: Thin-market dampening for risk signals New: Adaptive spread calculation with global and per-item limits New: Adaptive spread consumed by real buy/sell quote paths New: Risk, volatility, and adaptive-spread diagnostics in /dt item New: External item identity, matcher, serializer, and PersistentData criteria foundation New: External item-provider registry, detection, bridge, and safe fallback New: Read-only market API views, hooks, and events New: High-concurrency trade stress-test harness Changed: Pricing pipeline now computes atomic state deltas Changed: Item market profiles now carry calibration and risk metadata Fixed: Drained transaction snapshots are preserved for recovery Fixed: Cycle persistence failures are isolated from the rest of the runtime cycle Fixed: Trade runtime lifecycle handling is more resilient
    30 downloads
  3. 0.8.6previewExpanded Calibration EngineJul 7, 2026
    DynaTrade v0.8.6 Spigot/Paper 1.21.4 · Vault + economy plugin Technical Preview​ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ TL;DR · Market calibration state now survives restarts/reloads — prices no longer "reset" every time you restart the server · Added a diagnostics panel (/dt item <item>) so you can see exactly what's happening with each item's calibration · Config and data from 0.8.5 are fully compatible — no changes needed · Downgrade from 0.8.4+ to 0.8.3 is not supported — back up before updating ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ How to Update · Stop your server · Replace the jar · Start your server No extra steps required. New calibration parameters use safe defaults if not present in your config. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Known Limitations (Technical Preview) · Calibration covers effective VREF only — no risk scoring, volatility profiles, or adaptive spread behavior yet · Custom item support is MVP only — no automatic ItemsAdder, Oraxen, or MMOItems provider support · No public API guarantees yet ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ .SpoilerTarget">Spoiler: Full technical details Expanded VREF Calibration The calibration engine has been expanded from a 3-parameter prototype to a full 7-parameter system with persistence and diagnostics. · 7 tuning parameters: smoothing-alpha, max-effective-vref-multiplier, min-samples, history-size, blend-weight, max-change-per-update, and enabled · EMA smoothing — exponential moving average over observed volume (default 0.25) · Ring buffer — fixed-size runtime history (default 8) for observed volume values · Blend weight — balance between configured VREF and smoothed observed VREF (default 0.65 favors configured) · Warm-up — effective VREF only starts moving after min-samples (default 5) cycles with observed data State Persistence Calibration state is now persisted in market-state.yml and restored on startup and /dt reload. · smoothedObservedVref, sampleCount, and lastUpdatedCycle survive restarts · No forced re-warmup after server restart or plugin reload · Safe fallback to configured VREF when state is missing, disabled, or invalid Diagnostics in /dt item The /dt item <item> command now shows a dedicated -- Calibration -- section: · State — classification label (CALIBRATED, WARMING_UP, INSUFFICIENT_DATA, FALLBACK) · Reason — why the item is in that state · VREF ratio — effective / configured VREF with multiplier · Samples — current sample count vs. min-samples requirement · History — ring buffer fill count · Cap flags — whether the max-change cap or max-multiplier cap is active · Floor flag — whether the configured floor was used · Last updated cycle — the cycle that last updated calibration state Calibration Architecture Formal documentation establishing the principle: "calibrate the market, not the player." The plugin adapts to market-level conditions (volume, pressure, participation) without profiling, punishing, or tracking individual players. Per-Phase Trade Observability New per-phase distribution snapshots track timing for each trade phase: buyEconomy, buyDelivery, sellInventory, sellRetry, sellCredit. Exposed via /dt status when admin-benchmark-status-enabled is true. Full Changelog · New: Expanded VREF calibration with 7 tuning parameters · New: Calibration state persistence in market-state.yml · New: Calibration diagnostics section in /dt item · New: Formal calibration ethics documentation · New: Per-phase trade observability metrics · Changed: CalibrationConfig expanded from 3 to 7 parameters · Changed: /dt item output migrated to section-based format · Changed: Public documentation updated to 0.8.6 · Fixed: max-effective-vref-multiplier validation ensures finite >= 1 · Fixed: smoothing-alpha validation clamps to [0.0, 1.0]
    12 downloads
  4. 0.8.5DynaTrade v0.8.5 — Custom Items & Admin DiagnosticsJul 6, 2026
    DynaTrade v0.8.5 Spigot/Paper 1.21.4 · Vault + economy plugin ​ ―――――――――――――――――――――――――――― What's New Admin Diagnostics DynaTrade 0.8.5 introduces new diagnostic tools so server operators can monitor market health at a glance. New in this update: · New /dt diagnose triage command · Severity-sorted output, capped at 10 items · Read-only, safe to run anytime · Enhanced /dt item output · Current state separated from last completed cycle · 5 diagnostic flags: VREF_DRIFT, HIGH_VOLATILITY, LOW_PARTICIPATION, STALE_CYCLE, NO_RECENT_ACTIVITY · Pressure data included · Operator-readable interpretation notes · Full EN/PT i18n coverage across all diagnostic messages ―――――――――――――――――――――――――――― Cleaner Command Output All admin and player commands now share a single unified formatting system instead of scattered per-command logic. It now includes: · Consistent money formatting with thousands separators · Proper i18n trend and trigger labels · Dynamic command alias placeholders ({label}) · Section-based output with one field per line for /dt status, /dt item, and /dt diagnose Cleanup performed alongside the rework: · 4 dead formatting methods removed from the codebase · 5 unused i18n keys removed from EN/PT message files ―――――――――――――――――――――――――――― Custom Item Support (MVP) DynaTrade 0.8.5 adds initial support for custom items, built on Bukkit Material and CustomModelData, with optional display name and lore matching. Available now: · New items.yml fields: material, custom-model-data, match-display-name, lore-match · Buy custom items via /buy — the received ItemStack carries the configured metadata · Sell matching custom items via /sell — exact, case-sensitive, order-sensitive matching enforced · Custom item icons render correctly in the market GUI, trade history, and insights · Pending deliveries (offline buys) preserve custom item metadata · Legacy items.yml format remains fully compatible — no migration required See the Custom Items documentation for full config examples and troubleshooting. ―――――――――――――――――――――――――――― Full Changelog · New: /dt diagnose triage command with severity-sorted output · New: Enhanced /dt item output with diagnostic flags and interpretation notes · New: Unified CommandOutputFormatter API across all admin commands · New: Initial custom item support (Material + CustomModelData + display name/lore matching) · New: Custom item GUI icon rendering in market list, item detail, trade history, and insights · New: Custom item deferred delivery metadata persistence · New: Public Custom-Items.md documentation page · Changed: Cleaner, more consistent command output across all commands · Changed: Player commands now use a dynamic {label} placeholder for correct aliases · Changed: /dt premium status renamed to /dt pricingstatus · Fixed: Diagnostics display now has consistent formatting · Fixed: Removed 4 dead private formatting methods and 5 unused i18n keys ―――――――――――――――――――――――――――― How to Update · Stop your server · Replace the jar · Start your server Config and data from 0.8.4 remain compatible. Custom items require adding a material field to entries in items.yml — see the Custom Items documentation linked above. Downgrading from 0.8.4+ to 0.8.3 is not supported. ―――――――――――――――――――――――――――― Known Limitations (Technical Preview) · Custom item support is MVP only — Bukkit Material + CustomModelData with optional display name/lore matching · No automatic ItemsAdder, Oraxen, or MMOItems provider support yet (planned for E-21) · No NBT/component matching · Insight rankings are still based on the latest completed cycle · Analytics history remains bounded (288 snapshots, ~24h) · No public API guarantees ―――――――――――――――――――――――――――― Summary DynaTrade 0.8.5 focuses on giving operators real visibility into market health, unifying command output across the plugin, and laying the groundwork for custom item economies — all backed by a much larger validation suite ahead of a stable release.
    7 downloads
  5. v0.8.4THE DEFINITIVE EDITION WOWWWJul 2, 2026
    DynaTrade v0.8.4 Spigot/Paper 1.21.4 · Vault + economy plugin​ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ What's New Market Insights Dashboard DynaTrade 0.8.4 expands the Market Insights screen into a real player-facing dashboard. The previous lightweight summary panel is now a navigable market dashboard with ranking previews, dedicated insight pages, and improved navigation back into item details. New in this update: · Expanded Market Insights dashboard · Top-3 preview directly inside ranking cards · Dedicated paginated ranking screens · Trending UP ranking · Trending DOWN ranking · Most Traded ranking · Most Bought ranking · Most Sold ranking · Improved item-detail return navigation ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ Market Insights Improvements The Market Insights GUI now works as a dashboard instead of a static snapshot screen. It now includes: · A central market overview card · Five actionable ranking cards · Ranking-specific lore · Ranking-specific empty states · Click-to-open ranking navigation Each ranking card shows a short preview before the player opens the full ranking page. This makes the dashboard useful immediately, even before the player clicks deeper. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ Dedicated Ranking Screens Each insight category now has its own paginated ranking screen. Available ranking screens: · Trending UP · Trending DOWN · Most Traded · Most Bought · Most Sold Ranking entries now show more relevant information depending on the ranking type. Trending rankings show: · Current price · Percent delta · Current trade volume when available · Trend direction when available · Trend confidence when available Most Traded shows: · Total volume · Buy volume · Sell volume · Trend summary Most Bought and Most Sold show: · Buy volume · Sell volume · Demand or supply pressure · Trend summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ Better Navigation Flow Item detail navigation has been improved. When a player opens an item from an insight ranking, the back button now returns to the same ranking page instead of sending the player back to the generic market list. This improves the browsing flow for players exploring rankings. Improved flows: · Market list item detail returns to the market list · Insight ranking item detail returns to the same ranking page · Legacy market navigation still works normally ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ Runtime Persistence Improvements Market runtime persistence has been expanded beyond basic price continuity. DynaTrade now preserves important runtime market state across restart and reload. Now persisted across restart/reload: · Analytics history · Adaptive calibration state · Momentum price windows This means the market no longer loses important internal state every time the server restarts. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ Analytics History Persistence Analytics history now survives restart and reload. Persisted analytics data includes: · Multi-cycle analytics history · Top gainers history · Top losers history · Most traded history · Per-cycle market direction summary This improves continuity for trend-related systems after a server restart. Runtime effects: · Item history no longer cold-starts after reboot · Trend output can be available immediately after restore · History restore falls back safely when persisted sections are missing or corrupted ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ Calibration Persistence Adaptive calibration state now survives restart and reload. Persisted calibration data includes: · Smoothed observed reference volume · Sample count · Last updated cycle · Per-item calibration state This prevents calibration from restarting from zero after every reboot. Removed catalog items are filtered during restore, while valid restored calibration state is kept as-is. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ Momentum Window Persistence Momentum windows now survive restart and reload. Persisted momentum data includes: · Per-item price window state · Fully populated momentum windows · Partially populated warm-up windows This improves pricing continuity because momentum no longer resets after a restart. The restore path was validated against next-cycle behavior to ensure restart continuity stays equivalent to uninterrupted runtime. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ Stability & Fixes This update also improves safety and consistency around runtime restore behavior. Fixed and improved: · Market analytics history is restored before trend services need it · Persisted analytics no longer trails live runtime by one cycle · Corrupted analytics sections fall back independently instead of breaking boot · Removed catalog items are dropped during restore · Momentum persistence no longer double-records same-cycle data · Momentum cleanup now avoids long-lived memory growth · Restart-equivalence tests were corrected to exercise the real restore path · An unsafe persistence constructor was removed to avoid partial analytics history writes ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ How to Update · Stop your server · Replace the jar · Start your server Config and data remain compatible with the existing 0.8.4 line. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ Known Limitations · Insight rankings are still based on the latest completed cycle · Insight rankings are not yet full multi-cycle aggregate rankings · There is no market opportunities synthesis layer yet · Ranking pages remain inventory/lore based by design · Last-cycle diagnostics persistence is still in progress ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━​ Summary DynaTrade 0.8.4 now provides a stronger Market Insights experience and better runtime continuity across restarts. Players get a more useful market dashboard with ranking exploration, while the server keeps important analytics, calibration, and momentum state alive after reloads. This update makes the market feel more consistent, more readable, and more reliable during normal server operation.
    19 downloads
  6. 0.8.4Multi-Cycle Market IntelligenceJun 30, 2026
    DynaTrade v0.8.4 — Technical Preview Spigot/Paper 1.21.4 · Vault + economy plugin​ What's New Multi-Cycle Market Intelligence The market now keeps a full analytics history and exposes that data directly to players through the existing GUI. New in this release: · trend-aware browsing in /market · per-item trend direction and confidence · multi-cycle item insights · historical item visualization · simple and advanced item-detail modes Market Browser Improvements (/market) The market listing now supports multiple browsing modes: · Trend · Volume · Appreciation · Depreciation · Activity Each item can now surface: · trend direction · confidence · insufficient-data notice when history is still sparse Item Insights & History The item detail screen now exposes deeper market intelligence. Simple mode shows only: · current price · buy / sell price · trend · confidence · next cycle timer Advanced mode shows: · spread · single-cycle delta · momentum · strength · consistency · coverage · current-cycle volume · directional recent history · historical strip visualization · recent trade activity bar Advanced mode can be opened directly with Shift-click from the market list. Stability & Fixes · More consistent market data: item insights and trend views now draw from the full multi-cycle history instead of only the latest cycle · Safer history lookup: item history is no longer dropped due to inconsistent naming across snapshots · Lower refresh overhead: history lookups are now cached, reducing per-update processing · Cleaner player UX: the default item-detail screen is lighter, with advanced analytics moved behind Shift-click How to Update · Stop your server · Replace the jar · Start your server Config and data from the previous 0.8.4 technical-preview baseline are compatible. Known Limitations (Technical Preview) · historical visualization is read-only, not a true interactive chart · advanced analytics are available only in the advanced detail view · no whale or large-trade interpretation metric yet · custom items are not yet supported
    8 downloads
  7. 0.8.4-previewMarket Insights DashboardJun 26, 2026
    DynaTrade v0.8.4 — Technical Preview Spigot/Paper 1.21.4 · Vault + economy plugin ​ ──────────────────────────────────────── What's New Market Insights Dashboard (/market) A new button in the menu opens a summary screen showing: · Market direction (Bullish / Bearish / Neutral) · Top 5 gainers and losers this cycle · Most traded items · Buy/sell volume and average delta No config changes needed, appears automatically in the existing GUI. ──────────────────────────────────────── Stability & Fixes · Full thread safety — concurrent transactions are now safe across all pricing and trade state · Crash-safe saves — all files use atomic writes; corrupted data on forced shutdown is a thing of the past · Config validation on startup — misconfigurations are flagged before they cause issues, including on /dt reload · Safer reload — the old runtime is fully stopped before a new one is created ──────────────────────────────────────── How to Update · Stop your server · Replace the jar · Start your server Config and data from 0.8.3 are compatible. DO NOT downgrade to 0.8.3 after running 0.8.4, the persistence format has changed. ──────────────────────────────────────── Full Changelog .SpoilerTarget">Spoiler: Show technical details Added · Market Insights dashboard with direction, top gainers/losers, and most traded items Fixed · Thread safety on all concurrent state (player locks, trade history, momentum store) · Race condition in cycle durability worker polling · Memory leak in momentum history (now bounded to 500 entries) · Silent exceptions in 4 features now logged at diagnostic level Changed · All persistence writes use atomic temp → fsync → move pattern · ConfigValidator checks config on startup and reload · PricingService constructor refactored (internal, no config impact) Removed · Legacy MarketTradeService.buy() / sell() now throw UnsupportedOperationException ──────────────────────────────────────── Known Limitations (Technical Preview) · Analytics show only the latest cycle (no multi-cycle history yet) · No player-facing trend metrics or historical charts yet · Item identity is still Material-based (custom items not supported)
    10 downloads
  8. v0.8.3DynaTrade 0.8.3 - Durability, Recovery & Consistency UpdateJun 23, 2026
    This update focuses on crash recovery, data durability, runtime safety and economic consistency. Added: · Offline delivery system for items and Vault credits. · Recovery for pending trades after crashes or unexpected shutdowns. · Recovery for incomplete journal operations detected on startup. · Automatic cleanup of invalid market signals during startup. · Persistent tracking of pending Vault credit obligations. · Player history memory cleanup with configurable inactivity TTL. · Player participation UUID tracking for restored market signals. Improved: · Market signals are now only applied after economic effects and journal persistence are confirmed. · Shutdown now performs additional durability and recovery handling before closing. · Reload process now fully replaces the previous runtime before starting a new one. · Added degraded mode protection when runtime initialization fails after reload. · Critical persistence files now use stronger fsync and atomic write guarantees. · Improved crash resilience across trade processing and recovery flows. Changed: · TradeItemPolicy is now more restrictive and rejects additional unsafe item types and metadata. · Legacy buy() and sell() methods now throw UnsupportedOperationException. Fixed: · Fixed market signals potentially affecting prices before economic effects were fully completed. · Fixed pending applies being lost during shutdown. · Fixed multiple runtime reload race conditions. · Fixed unresolved APPLY_UNKNOWN operations. · Fixed Vault credit duplication edge cases after crashes. · Fixed journal-abandoned trades not being recovered correctly. · Fixed several idempotency, durability and persistence edge cases. · Fixed multiple recovery and shutdown consistency issues. Compatibility: · Downgrade from 0.8.3 to 0.8.2 is NOT supported. · Existing journal and market data remain compatible. · Existing rt1 and rt2 audit logs continue to be read normally. · Some items previously accepted may now be rejected by TradeItemPolicy. Configuration: · Added history.inactive-player-ttl-days (default: 7). · Set to 0 to disable automatic history eviction. Version: 0.8.3
    8 downloads
  9. 0.8.2Market Calibration UpdateJun 18, 2026
    DynaTrade 0.8.2 - Market Calibration Update What's new: · Improved market calibration with adaptive effective VREF. · Item price pressure can now adapt to observed market activity instead of relying only on static VREF. · Common high-volume items now react more consistently to normal trading scale. · Added bounded EMA smoothing for calibration stability. · Added safe fallback behavior when calibration is disabled or unavailable. · Expanded validation coverage for calibration, fallback, restart safety and config parsing. Compatibility: · No journal migration required. · Recovery and replay behavior are preserved. · Calibration can be disabled to preserve legacy VREF behavior. · Existing pricing safety layers remain unchanged. Version: 0.8.2
    6 downloads
  10. 0.8.1DynaTrade 0.8.1 - Market Stability UpdateJun 13, 2026
    What's new: · Improved market stability with player-aware pricing pressure. · Large trades from one player are now handled differently from the same volume coming from multiple players. · Added active participation reach to better distinguish isolated item pressure from broader server activity. · Preserved safe fallback behavior for legacy, recovery and replay signals. · Improved pricing architecture and expanded validation coverage. Compatibility: · No journal migration required. · Recovery behavior is preserved. · Existing pricing safety layers remain unchanged. Version: 0.8.1
    20 downloads
  11. v0.80.8.0 Momentum-basedJun 12, 2026
    DynaTrade 0.8.0 - Technical Preview What's new: · Added momentum-based spread support. · Added configuration layer for momentum behavior. · Added status command for administrators. · Added GUI indicators for market state. Technical notes: · The pricing system now supports a momentum-based spread layer. · This update improves how market pressure can affect spread behavior over time. Version: 0.8.0
    13 downloads
  12. v0.7.3Trade History, Stability & Performance UpdateJun 7, 2026
    DynaTrade 0.7.3 This update focuses on stability, observability, and trading experience improvements. New Features · Player trade history GUI with recent transaction records. · More detailed market and price information. · Additional administrative status messages and monitoring tools. Reliability Improvements · Improved trade admission control under high load. · Safer trade processing pipeline with queue protection. · Better handling of overloaded scenarios through controlled trade rejection. · More robust reload and recovery procedures. Performance & Architecture · Market GUI now uses cached snapshots for more efficient refreshes. · Pricing system refactored for better maintainability and scalability. · Added benchmarking and profiling infrastructure for ongoing performance validation. Summary DynaTrade 0.7.3 builds on the stable 0.7.1 foundation with improved trade history, stronger overload protection, safer recovery mechanisms, better observability, and a solid performance-testing infrastructure.
    8 downloads
  13. 0.7.1May 30, 2026
    14 downloads

Similar projects

Plugin →