Tags
Creators
Details
1.2.0
Compatibility
Required content
Changes
QTeams 1.2.0 - Role-Based Glow, Zero-Lag No-Leak, Alliances & Voice Update
QTeams 1.2.0 is a major feature and performance update introducing ProtocolLib-powered Role-Based Glow Visibility, a surface-culled No-Leak engine with periodic auto-refresh, client chunk render distance caps, a 0.5-damage Friendly Fire Filter, mutual Team Alliances, a Global PvP Switch, and Simple Voice Chat speaking controls.
What is New in 1.2.0
1. Choose Glow Visibility (Role-Based Packet Filtering)
- ProtocolLib Metadata Filtering: Hooked into ProtocolLib's
ENTITY_METADATApacket stream to dynamically strip or preserve the0x40glowing flag per viewer based on their assigned role. - Choose Glow Visibility GUI: Added a dedicated menu in the Team Configuration screen (Slot 19) where admins can toggle glow visibility for
Everyone,Teammates Only,Allied Teams, and every registered Staff, Combat, or Custom role (Admin,Moderator,Member,Tank,Scout,DPS,Healer,Runner,Hunter, etc.).
2. Zero-Lag Surface-Culled No-Leak Engine
- 98% Packet Reduction (Surface Culling): The async chunk scanner now skips buried underground blocks that are occluded on all 6 faces, eliminating server MS spikes and client chunk-remeshing lag.
- Mining & Explosion Exposure: Breaking or exploding blocks immediately masks the 6 newly uncovered adjacent blocks as stone so underground bases remain hidden.
- New Block Placement & Periodic Refresh: Newly placed blocks are masked immediately via
BlockPlaceEventand ProtocolLib'sBLOCK_CHANGEpacket interceptor, backed by an automatic 10-second periodic refresh around active No-Leak players. - GUI & Container Exclusions: All blocks with inventories or interactive UIs (Anvils, Crafters, Brewing Stands, Lecterns, Chiseled Bookshelves, Shulker Boxes, Chests, Furnaces, Workstations, etc.) are excluded from stone masking.
- Instant Chunk Restoration & Batch Toggle: Turning No-Leak off now uses
world.refreshChunk(x, z)for instant restoration, and a Batch No-Leak toggle is available on the Main Dashboard (Slot 50).
3. Client Chunk Render Distance Limiter
- Render Distance Cap (
/qt pv renderdist <2-32|off>): Added a chunk render distance limiter inside the PlayerView Settings GUI (Slots 14 and 15) and command router to cap how many chunks non-exempt players can load.
4. 0.5 Damage Friendly Fire Filter, Alliances & Global PvP
- 0.5 Damage Friendly Fire Filter (
/qt ff): Teammate attacks now preserve swing animations, hurt flashes, and knockback while clamping damage to0.5(half a heart), or can be toggled to Full Damage. - Team Alliances (
/qt ally <team1> <team2>): Added a Team Allies GUI (Slot 15) and command to form mutual alliances that share the 0.5-damage Friendly Fire Filter. - Global PvP Switch (
/qt pvp): Added a master PvP toggle on the Main Dashboard (Slot 46) to disable all player combat while waiting for recording sessions to start.
5. Simple Voice Chat Speaking Control
- Per-Team Voice Mute (
/qt voice <team> <on|off>): Added native management for Simple Voice Chat'svoicechat.speakpermission node per team via the Team Configuration GUI (Slot 14) and command line.
Upgrade Instructions
- Stop your server.
- Replace
QTeams.jarin yourplugins/directory withQTeams-1.2.0.jar. - Ensure
ProtocolLibis installed in yourplugins/directory to enable per-role glow filtering and packet interception. - Start your server. Your
teams.ymlfile will automatically populate the newglobal.pvp_enabled,render_distance_limit_enabled,max_render_distance_chunks,voice_speak,allies, andglow_viewer_rolesfields.
Optional dependencies
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:C4ecAd2k:yDvK7G6k"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:C4ecAd2k:yDvK7G6k"
}

