All versions
1.1.0
Release
Economy Machina 1.1.07 months ago 54
Compatibility
Minecraft: Java Edition
1.21
1.20.x
1.19
1.18
1.17
1.16
1.15
1.14
1.13
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
[1.1.0] — 2026-03-12
Added
- Milestone rewards — one-time coin bonuses for crossing stat thresholds (MOB_KILLS, FISH_CAUGHT, ANIMALS_BRED, and any UNTYPED Bukkit statistic). Milestones are claimed once per player and persisted to disk.
- Daily login streak — players who log in on consecutive days earn escalating streak rewards. Streak day and last-login date are tracked per-player and survive server restarts.
- Lifetime stats — every player now has a persistent
lifetimeEarnedandlifetimeLostrecord, saved toplayerdata.ymland autosaved every 5 minutes. - Top earners leaderboard — async-refreshed top-10 list cached every 5 minutes. Zero main-thread overhead.
- PlaceholderAPI expansion —
%economymachina_balance%,%economymachina_lifetime_earned%,%economymachina_lifetime_lost%,%economymachina_streak%,%economymachina_rank%,%economymachina_top_N_name%,%economymachina_top_N_amount%(N = 1–10). Registers automatically if PlaceholderAPI is installed. - Sound feedback — configurable sounds for earn, penalty, milestone, and streak events. Each sound is independently togglable with volume and pitch control.
- New misc triggers —
LEVEL_UP(XP level up),RECIPE_DISCOVER(recipe unlock),WORLD_CHANGE(dimension travel). All configurable with chance and cooldown. - Donor & rank bonus system — permission nodes
economymachina.bonus.chance.<n>andeconomymachina.bonus.multiplier.<n>grant VIPs higher reward chance and coin multipliers. Highest node wins; no stacking abuse possible. - Split exempt permissions —
economymachina.exempt.earnandeconomymachina.exempt.penaltyare now independent.economymachina.exemptis a parent node that grants both. - Adventure/MiniMessage messaging — all player-facing messages now use MiniMessage format with brand color tags
<paper>and<forest>. Full hex color and gradient support.
Changed
- Action bar notifications replace chat messages for all reward and penalty feedback.
- Primary command changed to
/em(aliases:economymachina,machina). api-versionbumped to1.20to opt out of legacy Paper shims.
Fixed & Optimized
BonusResolvernow caches per-player bonus lookups — single permission scan on first reward, O(1) map lookups for all subsequent rewards in the same session. Cache is invalidated on join and cleared on quit.CooldownManager.clearPlayer()is now called on quit — previously cooldown entries accumulated in memory for the lifetime of the server.- Async autosave timer now calls
saveAll()directly rather than scheduling a second async task. - Progression event handler uses
EventPriority.NORMAL(wasMONITOR) — reward-granting logic must not run at monitor priority. - All command feedback uses
MessageUtil.send()— no remainingChatColorlegacy code.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:TFWq7WxH:cdSq9QJR"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:TFWq7WxH:cdSq9QJR"
}

