Tags
Creators
Details
1.0.9
Compatibility
Changes
AMCTimber 1.0.9
Recommended security, stability, and compatibility update for all servers.
This release fixes 2×2 jungle trees, strengthens WorldGuard and Towny integration, reduces large-tree performance spikes, and makes item recovery safer across restarts.
Gameplay fixes
- Fixed 2×2 jungle trees leaving the wrong 1×1 stump.
- All four original stump blocks are now preserved correctly.
- Improved cleanup and drops for vines, moss, and other supported foliage attached to a falling tree.
- Ordinary 1×1 trees continue to behave as before.
Protection compatibility
- WorldGuard and Towny permissions are now checked for the actual operation being performed: block breaking, landing, interaction, item drops, and crush damage.
- The complete landing area and fallen-trunk hitbox are checked before the original tree is removed.
- Final Bukkit cancellation and item-drop decisions are respected before AMCTimber changes the world.
- Crush damage is attributed to the player who felled the tree, allowing combat and PvP protection rules to apply correctly.
Performance and abuse protection
- Added global and per-player limits before expensive tree scanning begins.
- Large scans, protection checks, animations, entity operations, and crush detection now have bounded work budgets.
- Heavy operations are distributed fairly across ticks instead of running as one large burst.
- Repeated clicks on a fallen trunk are rejected by the cooldown before expensive protection checks.
- Large deferred item yields are delivered through a paced, round-robin queue.
These changes are intended to reduce lag spikes from very large trees or repeated automated attempts without changing normal tree-felling gameplay.
Recovery and item safety
- Deferred drops now preserve the responsible player and recheck item-drop permission before delivery.
- Recovery capacity no longer consumes the normal live-tree capacity.
- Pending rewards are retained safely when a journal write temporarily fails.
- Item delivery progress is checkpointed during the same delivery tick.
- Legacy recovery records without a known player fail closed when region protection is active.
Release security
This version follows a completed deep security review. All 18 confirmed reportable findings were addressed.
The published JAR is:
- built from the exact tagged commit on
main; - tested on Paper 1.20.6 and Paper 1.21.11;
- checked with the built-in self-test;
- accompanied by SHA-256 checksums;
- supplied with SPDX and CycloneDX SBOMs;
- signed with Sigstore;
- covered by GitHub build-provenance attestations.
Download and verification files on GitHub
Compatibility
- Minecraft 1.20.x
- Minecraft 1.21.x
- Paper
- Paper-compatible servers such as Purpur
Folia is not currently runtime-tested.
Upgrade instructions
- Stop the server.
- Back up the
plugins/AMCTimberdata folder. - Replace the previous AMCTimber JAR with
AMCTimber-1.0.9.jar. - Start the server normally.
- Optionally run
/amctimber selftestand confirm that it reports a pass.
A full server restart is recommended instead of hot-replacing the plugin.
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:ri1Ibgnf:OJLjhPU3"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ri1Ibgnf:OJLjhPU3"
}

