FoodSpoilage
0
First released July 15, 2020 · Last updated October 4, 2026
Downloads from this site
115 total
17 latest (v3.0.4)
Makes food items turn into rotten flesh after a certain period of time.
Verified before release
Version 3.0.4 was started on a real server before it was published. The jar you download is the exact one that passed. How releases work
Versions
All releases on GitHubAutomated build of master at 6daa98dde5e623de2a71a27828e5f5acbd71ddf7.
This is not a release. It is unreleased, unreviewed code that has not been through any release check, and a broken build can stop a server from starting. Do not run it on a server you care about without a backup.
Install it with Dan's Plugin Manager:
/dpm get foodspoilage --experimentalReturn to published releases with /dpm get foodspoilage --stable.
3.0.4
This release has the same code as v3.0.3: the only change since v3.0.3 is the version number in build.gradle. Commands, permissions, configuration and stored data are unchanged, so there is no reason to upgrade from v3.0.3.
Correction
These notes first said this release made food items use the expiry date saved in their persistent data (#278). That fix was merged into the develop branch, not master, so it is in neither v3.0.3 nor v3.0.4; it will ship in a later release once it reaches master. The release notes generator listed a pull request from the wrong branch (a known defect in the release automation that is being fixed).
Version
v3.0.3 → 3.0.4 — PATCH. Mechanical floor from comparing the two jars: PATCH.
Judgment: the diff from v3.0.3 is the version number in build.gradle alone (checked against the tags when these notes were corrected on 2026-09-27); nothing justifies going above the patch floor.
- no interface or storage difference observed between the jars
Verification
Verified on a real Spigot server before publication; this release carries the exact jar that was verified.
- boot gate run: booted twice on a fresh Spigot server (10 assertions passed).
Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.
drafted by Claude on behalf of Daniel Stephenson
3.0.3
A maintenance release with no gameplay change. The plugin's behaviour, commands and configuration are identical to 3.0.2 — the class list of the two jars is the same — and a server on 3.0.2 can drop this build in with nothing to migrate.
Changes
Build
bungeecord-chatpinned to a version that still resolves, so the plugin builds again from a clean checkout (#250)- Builds run on
master, the repository's default branch (#251)
Release pipeline
- A rolling
devpre-release is published from every push tomaster, with a retry (#252, #255) release.ymltriggers on a published release and skips when a JAR is already attached (#269)
Documentation
- README restructured;
USER_GUIDE.md,COMMANDS.md,CONFIG.mdandCONTRIBUTING.mdadded; repository aligned with the DPC conventions (#239, #243)
Correction (2026-09-20)
The notes originally published with this release listed ten further pull requests — waxing (#242), the spoiled-food-material and timestamp-furnace-output config options (#266, #237), usage reporting (#268, #270) and fixes #244, #245, #262, #263, #254. None of those are in this build. They were merged into the develop branch, not master, and the release automation's notes generator listed every merged PR without a branch filter. Those changes are tracked for a future release in #275. The README.md on master describes usage reporting for the same reason; this build does not report anything.
Version
3.0.2 → 3.0.3 — PATCH, derived from the change itself: no interface or storage difference observed.
Verification
Booted twice on a real Spigot server before publication — boot gate run (8 assertions passed). This release carries the exact jar that was verified.
Install with Dan's Plugin Manager: /dpm get foodspoilage. How stable releases are made: Release channels.
drafted by Claude on behalf of Daniel Stephenson
Snapshot release marking FoodSpoilage's move to an AI-first development approach.
Day-to-day feature work, grooming, review and maintenance now run through AI agents working directly against this repository, with the maintainers setting direction and approving what lands. The version bump marks that change in how the project is built — it is not a compatibility break. Behaviour, configuration and stored data are unchanged, and existing installations can upgrade in place.
This is a dated snapshot, not a finished release. It follows the precedent set by Medieval
Factions' 6.0.0-SNAPSHOT-7-25-2026: the AI-first line has not yet been verified in live operation,
and the snapshot designation stays until it has.
Version changes
build.gradle:3.0.2→4.0.0-SNAPSHOT-8-8-2026
Opened as https://github.com/Dans-Plugins/FoodSpoilage/pull/249.
Note on this release
This release was originally published without a jar: the build failed because
net.md-5:bungeecord-chat:1.13-SNAPSHOT, a transitive dependency of spigot-api, is no longer
hosted by Spigot's snapshot repository. The dependency was repinned in
https://github.com/Dans-Plugins/FoodSpoilage/pull/250 and the release was re-cut against that fix,
so the tag now points at a commit that builds. No plugin behaviour was changed.
Drafted by Claude on behalf of Daniel Stephenson.
No release notes were published for this version.
What's Changed
- Fix recipe registry overflow causing PacketTooLargeException on player join by @Copilot in https://github.com/Dans-Plugins/FoodSpoilage/pull/228
- Fix furnace stopping after first item when cooking a stack of food by @Copilot in https://github.com/Dans-Plugins/FoodSpoilage/pull/230
New Contributors
- @Copilot made their first contribution in https://github.com/Dans-Plugins/FoodSpoilage/pull/231
Full Changelog: https://github.com/Dans-Plugins/FoodSpoilage/compare/3.0.1...3.0.2
What's Changed
- Fixed all items acquired through fishing getting timestamped. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/211
Full Changelog: https://github.com/Dans-Plugins/FoodSpoilage/compare/3.0.0...3.0.1
Note
When upgrading from a pre-3.0.0 version of the plugin, the config.yml will need to be deleted in order to get this version to work.
What's Changed
- Migrate to gradle by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/186
- Fix package names by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/187
- Fetch bstats from gradle by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/188
- Refactor services by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/189
- Use plugin logger for logging by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/191
- Refactor commands by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/192
- Apache 2.0 License by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/193
- Add further event coverage & improve existing listeners by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/194
- Non-Edible Item Spawn Fix by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/195
- Fixed all crafted items getting timestamped. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/198
- Fix shift clicking resulting in loss of items, closes #197 by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/199
- Store food expiry in the item's persistent data store by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/200
- Made only edible items get assigned timestamps in the Block Cook Listener. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/201
- Switched over to using ISO_OFFSET_DATE instead of ISO_OFFSET_DATE_TIME. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/202
- Made rotten flesh not spoil. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/203
- Add RPKit integration by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/205
- Parse errors are no longer logged to the console. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/206
New Contributors
- @alyphen made their first contribution in https://github.com/Dans-Plugins/FoodSpoilage/pull/186
Full Changelog: https://github.com/Dans-Plugins/FoodSpoilage/compare/2.1.1...3.0.0
What's Changed
- Switched over to using ISO_OFFSET_DATE instead of ISO_OFFSET_DATE_TIME. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/202
- Made rotten flesh not spoil. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/203
Full Changelog: https://github.com/Dans-Plugins/FoodSpoilage/compare/3.0.0-ALPHA-6-9-2022...3.0.0-ALPHA-6-17-2022
Note
Servers updating from pre-3.0.0 will need to delete their config.yml and restart the server to regenerate it.
What's Changed
- Non-Edible Item Spawn Fix by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/195
- Fixed all crafted items getting timestamped. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/198
- Fix shift clicking resulting in loss of items, closes #197 by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/199
- Store food expiry in the item's persistent data store by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/200
- Made only edible items get assigned timestamps in the Block Cook Listener. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/201
Full Changelog: https://github.com/Dans-Plugins/FoodSpoilage/compare/3.0.0-ALPHA-5-25-2022...3.0.0-ALPHA-6-9-2022
Note
Servers updating from pre-3.0.0 will need to delete their config.yml and restart the server to regenerate it.
What's Changed
- Migrate to gradle by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/186
- Fix package names by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/187
- Fetch bstats from gradle by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/188
- Refactor services by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/189
- Use plugin logger for logging by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/191
- Refactor commands by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/192
- Apache 2.0 License by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/193
- Add further event coverage & improve existing listeners by @alyphen in https://github.com/Dans-Plugins/FoodSpoilage/pull/194
New Contributors
- @alyphen made their first contribution in https://github.com/Dans-Plugins/FoodSpoilage/pull/186
Full Changelog: https://github.com/Dans-Plugins/FoodSpoilage/compare/2.1.1...3.0.0-ALPHA-5-25-2022
What's Changed
- Fixed config.yml not getting properly initialized upon startup. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/185
Full Changelog: https://github.com/Dans-Plugins/FoodSpoilage/compare/2.1...2.1.1
What's Changed
- Spoilage By Day by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/180
- Reorganized the project. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/182
- Further project reorganization. by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/183
- Ponder Integration by @dmccoystephenson in https://github.com/Dans-Plugins/FoodSpoilage/pull/184
Full Changelog: https://github.com/Dans-Plugins/FoodSpoilage/compare/v2.0...2.1
Note
This version of the plugin doesn't work due to an error with config initialization.
Changes in Food Spoilage v2.0
- Undead_Zeratul overhauled some parts of the plugin, cleaning up the code.
- Undead_Zeratul fixed spoiled food always resulting in one food, rather than the number of items that spoiled.
- Integrated bStats into the plugin in order to collect usage data.
- Created an EventRegistry class to handle the creation of the EventHandler classes.
- Caibinus fixed players being able to remove timestamps from Wheat by crafting Haybales and then crafting Wheat from the Haybales.
- Caibinus fixed players being able to remove timestamps from Melons by crafting Melon Blocks and then crafting Melons from the Melon Blocks.
- Removed the Creation Date from timestamped items.
- Added the /fs timeleft command.
- Updated the plugin.yml and /fs command with no arguments to include other authors.
- Renamed the StorageManager class to ConfigManager.
- Overhauled the ConfigManager class to be a lot more like Medieval Factions
- Callum fixed the version not getting updated in Config.yml upon a version mismatch.
- Callum implemented a caching system for looking up food spoilage times.
- Incremented the version to v2.0 because for some reason the timestamps of existing food don't match the new system and there is a high chance of spoilage before reaching the expiration date for food items.
Changes in Food Spoilage v1.10-beta-1
- Undead_Zeratul overhauled some parts of the plugin, cleaning up the code.
- Undead_Zeratul fixed spoiled food always resulting in one food, rather than the number of items that spoiled.
- Integrated bStats into the plugin in order to collect usage data.
- Created an EventRegistry class to handle the creation of the EventHandler classes.
- Caibinus fixed players being able to remove timestamps from Wheat by crafting Haybales and then crafting Wheat from the Haybales.
- Caibinus fixed players being able to remove timestamps from Melons by crafting Melon Blocks and then crafting Melons from the Melon Blocks.
Changes in Food Spoilage v1.9
- This plugin now uses a config.yml instead of .txt files for configuration.
- Config.yml now gets created if there isn't one.
- If save files from pre v1.9 are discovered, they will be loaded in and then saved in the new format. This means values you've changed before should transfer over.
- If there is a version mismatch, the config.yml will be saved as config.yml.old and a new config.yml with default values will be created.
Changes in Food Spoilage v1.8
- food items cooked on campfires now get timestamps assigned to them
- cleaned up some event handlers
Changes in Food Spoilage v1.7
- added a system for saving/loading custom text
- you can now change the no permission text
- you can now change the reload text
- you can now change the 'expiry date' text
- you can now change the 'created' text.
Changes in Food Spoilage v1.6
- added the ability to toggle food spoilage for food items. If the food spoilage value of a food item in food-spoilage-times.txt is changed to 0, it will not be timestamped and it will not spoil.
Changes in Food Spoilage v1.5
- Egg items now get timestamped
- Cake items now get timestamped
- Pumpkin Pie items now get timestamped
- Sugar items now get timestamped
- Sugar Cane items now get timestamped
- Apple items now get timestamped
- Baked Potato items now get timestamped
- Cookie items now get timestamped
- Poisonous Potato items now get timestamped
- Chorus Fruit items now get timestamped
- Dried Kelp items now get timestamped
Changes in Food Spoilage v1.3
- Melon Slices now get timestamped
- Nether Warts now get timestamped
- Brown Mushrooms now get timestamped
- Red Mushrooms now get timestamped
- Pumpkins now get timestamped
- Melons now get timestamped
- Wheat now get timestamped
Changes in Food Spoilage v1.2
- Cooked Cod items now gets timestamped
- Cooked Rabbit items now gets timestamped
- Cooked Mutton items now gets timestamped
- Cooked Salmon items now gets timestamped
- Cooked Porkchop items now gets timestamped
- Cooked Chicken items now gets timestamped
- Cooked Beef items now gets timestamped
Changes in Food Spoilage v1.1
- beetroop soup now gets timestamped when it is crafted
- rabbit stew now gets timestamped when it is crafted
- mushroom stew now gets timestamped when it is crafted
- added a console alert for mismatched versions letting server owners know that default values will be used until the 'Food-Spoilage' folder is deleted
Related plugins
Something wrong, or something missing?
Bugs go to the plugin's issue tracker, where they can actually be fixed and tracked. Ideas for new behaviour go to the Dev Portal, where the community can upvote them.