
Replenish++
Auto-replant crops on Paper/Purpur servers, inspired by Hypixel SkyBlock's Replenish enchantment. Break a crop and it replants itself. Supports wheat, carrots, potatoes, nether wart, cocoa and beetroot, with direct pickup and lag-friendly replanting.
Tags
Creators
Details
7.0.2-26.3
Compatibility
Changes
ReplenishPlusPlus v7.0.2 - "One Carrot Short"
Release Date: 2026-10-07
This is a small but important fix release. Carrots and potatoes were paying out one item less than vanilla on every mature harvest. That's fixed, and a few other rough edges got cleaned up too.
⚠️ Before You Upgrade
- Changed behavior: mature carrots and potatoes now pay
2 + B(fortune)instead of1 + B, matching vanilla 26.3 exactly. - Changed behavior (dev mode): profiler auto-stop timeouts are now only read from
--timeoutor the positional value right afterstart; numbers belonging to other flags no longer trigger a surprise early report.
🎵 What's New
- Pre-release notice in
/rpp version: if a newer beta or alpha exists on Modrinth, you'll now see it listed under your update status with a click-through to its page, while the actual "update available" recommendation stays on stable releases only. Useful if you like testing early builds without ever being told a beta is the new version.
🛠️ Fixes & Tweaks
- Carrot and potato under-payment: the transcription dropped each crop's unconditional first loot pool, so every mature harvest paid one carrot or potato less than vanilla (verified against the actual 26.3 server jar and Paper's patch set). Both crops now encode both pools; wheat, beetroot, nether wart, and cocoa were already exact and are unchanged.
- Update check noise: a newer beta or alpha on Modrinth could previously be advertised as an update to stable users. The check now only recommends
version_type: releaseversions; the JSON parsing, safety filters, and GitHub fallback all work exactly as before. - Dev-mode profiler timeouts:
/spark profiler start --only-ticks-over 100or--interval 4used to schedule an accidental 4 or 100 second auto-stop. Only--timeout Nandstart Nset a window now;start 60still works, and absurd values still clamp to 24 hours. - Seed refund edge: the one replant-failure path that skipped the seed refund (missing age data, effectively unreachable) now refunds like every other failure, keeping the documented "exactly two no-refund cases" true.
/rpp debughardening: the spark-backed lines no longer crash the screen if spark reports null MSPT or CPU statistics on your platform./rpp toggle global: if saving config.yml fails, the leftoverconfig.yml.tmpis now cleaned up properly and a failed cleanup is logged instead of silently ignored.- Code cleanups: inverted-boolean rename in the pad arrival check,
Comparator.comparingin the pad manager, the pad config menu's long loader method split, a duplicated switch branch removed, and unused imports and a dead local deleted. No behavior changes.
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:9rWJrVZX:Dkzq2vje"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:9rWJrVZX:Dkzq2vje"
}
