Tags
Creators
Details
1.0.2
Compatibility
Changes
⚡ New in Version 1.0.2 (Performance Overhaul)
This update introduces a massive refactor of the drone's movement and scanning logic. By moving away from expensive per-tick operations and constant teleportation, DeliveryDrones 1.0.2 offers a significantly lighter footprint for high-population servers.
🚄 Optimized Flight Engine
- Velocity-Based Movement: Drones now utilize
setVelocity()for cruise flight. This allows the server to handle the physics naturally, ensuring Armor Stand entities only "tick" while in motion. - Smart Snap Logic: Teleportation is now strictly reserved for dimension shifts, final landing snaps, or emergency relocation, eliminating "jitter" and reducing packet overhead.
🎯 Intelligent Landing & Scanning
- Landing Spot Cache: The
computeLandingFrom()function now runs once per target change. Drones no longer re-calculate their landing spot every single tick during the descent. - High-Speed Ground Scanning:
- Highest-Block Shortcut: Uses internal world heightmaps to find the ground instantly.
- Coarse-to-Fine Search: Scans the landing area in broad steps before narrowing down, saving hundreds of iterations.
- Safety Failsafes: Automatically skips scanning in unloaded chunks to prevent accidental "chunk-loading lag."
📊 Performance Impact
| Logic | Old Method (1.0.1) | New Method (1.0.2) | Benefit |
|---|---|---|---|
| Movement | Per-tick Teleport | Physics-based Velocity | Lower CPU & smoother visuals |
| Pathfinding | Every Tick | Cached on target change | Massive reduction in main-thread load |
| Scanning | Dense Radius Scan | Coarse-to-Fine + Heightmap | Near-instant landing calculations |
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:4VBq9J3l:Vu4prj6c"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:4VBq9J3l:Vu4prj6c"
}

