SiteZero
Plant. Defend. Defuse. SiteZero is a tactical round-based bomb-defusal game mode for Paper β buy your loadout, manage your economy and outplay the enemy across objective-driven rounds with a deep weapon arsenal, grenades, stats and a clean shop GUI.
1.2.1
Compatibility
Changes
[1.2.1] - 2026-06-20
Added
- Weapon recoil: every shot kicks the camera upward with a small random horizontal sway. CS-style - there is no auto-recovery, the player pulls back down manually. Per-weapon strength via
recoilin weapons.yml (sensible defaults by type); global on/off and scaling underrecoilin config.yml. Aiming down the sights reduces it. - Iron-sight aiming (light ADS): right-clicking a non-scoped gun aims down the sights for a minimal zoom plus reduced recoil; right-click again lowers the weapon. Scoped weapons (AWP/Scout/AUG/SG553) keep their stronger scope. Tunable under
aimingin config.yml.
Fixed
- Stat persistence under concurrency:
PlayerStatscounters are nowvolatile, so the async save thread always sees the latest main-thread increment instead of occasionally persisting a stale value. - Shutdown order: scheduled tasks are now cancelled before the database connection pool is closed, so no match or auto-save task can fire a database write during pool shutdown.
Changed
- Flashbang facing: looking away from the blast now prevents the flash entirely instead of only shortening it. The detonation must be inside the player's view cone (
grenades.flash-view-threshold, the cosine of the view angle) to blind them. plugin.ymlnow takes its version from the Gradle project version at build time instead of a hardcoded value, so a single version bump inbuild.gradle.ktskeeps everything in sync.
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:r0c1obLk:bVko6pLS"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:r0c1obLk:bVko6pLS"
}
