COWMODSКаталог модов

GD656FrontVoice

GD656FrontVoice adds faction-based combat voice callouts — reloads, grenades, kills, suppression alerts — with CN/US/RU voice packs. Works with TACZ, detects enemies by vanilla team.

Автор: Minecraft_GD656706 тыс.3обновлён 29 июл. 2026 г.
Утилиты

Описание

Overview

GD656FrontVoice is a Minecraft mod that adds a dynamic combat voice-line system to multiplayer servers. It plays faction-specific voice cues — Chinese (CN), American (US), and Russian (RU) — triggered by combat events: taking damage, throwing grenades, reloading, killing enemies, being suppressed by gunfire, and more.

Last updated: July 25, 2026. Some features may not be fully documented or are subject to change.

Compatibility

  • TACZ (Timeless and Classics Zero) 1.1.7-hotfix or later is strongly recommended — most combat event triggers depend on TACZ's event system and gun type API;
  • Soft compatibility with LR Tactical — detects throwable entities for grenade alert and throw cues, plus fire debuff for burning detection;
  • Soft compatibility with GD656Conquest — resolves faction/camp information for voice pack routing;
  • Currently supports Minecraft 1.20.1 Forge only.

Server Installation

This mod is split into client-side and server-side functionality. Both sides require installation for full functionality.

Server-only features:

FeatureNotes
Combat event detectionListens to TACZ gun fire, reload, kill events and vanilla damage/death events
Suppression fire corridor systemAccumulates suppression stacks when bullets pass near a player, triggers voice cues at thresholds
Projectile near-miss detectionTracks sniper bullets and RPG rockets, alerts players when projectiles pass nearby
Grenade alert scanningScans nearby hostile throwables each tick and warns threatened players
Ammo-empty pollingChecks player's held TACZ gun ammo state each tick
Burn detectionDetects when a player is on fire (vanilla or LR Tactical flammable effect)
Grenade-throw detectionDetects when a player starts priming a grenade/molotov/smoke
Camp-aware voice routingResolves which voice pack (CN/US/RU) to use per player
Audio packet broadcastingSends ClientboundPlayAudioPacket to target clients

Client-only features:

FeatureNotes
Voice cue playbackReceives packets, resolves voice cues via CueRouter, and plays sounds
First-person / third-person routingPlays local (non-positional) sounds for self, positional sounds for others
Audio throttlingLimits simultaneous sounds per player and per type to prevent spam
Config & command system/gdfv client commands for debugging and config management
Camp perspective overrideClient-side ally/enemy detection can override server-assigned voice pack

In short: the server detects and triggers all voice events; the client handles playback, routing, and throttling. Network traffic is minimal (a single self-describing packet type, ClientboundPlayAudioPacket).

Configuration & Commands

All parameters can be adjusted via the Forge mod config screen, or through in-game commands:

/gdfv debug summary              Show audio manifest statistics
/gdfv debug list [filter]        List registered sound events
/gdfv debug play local <sound_event> [volume] [pitch]
/gdfv debug play position <sound_event> <pos> [volume] [pitch] [distance]
/gdfv debug play entity <sound_event> <entity> [volume] [pitch] [distance]
/gdfv debug play cue <voice_cue> <camp> <entity> [volume]
/gdfv config reload              Hot-reload configuration files

Commands require permission level 2 (server operator). Config changes take effect immediately; runtime hot-reload is supported via reflection-based config reloading.

Key Config Options

Server (common) config:

ConfigDefaultDescription
audio.serverEnabledtrueMaster server switch for broadcasting audio
audio.serverMasterVolume1.0Global volume multiplier (0.0–4.0)

Client config:

ConfigDefaultDescription
audio.enabledtrueMaster client playback switch
audio.friendlyVoicePackCNVoice pack for allied players (when Conquest not installed or ignored)
audio.enemyVoicePackUSVoice pack for enemy players (when Conquest not installed or ignored)
audio.detectEnemyByVanillaTeamtrueDetect enemy players using vanilla team (isAlliedTo), works without Conquest
audio.ignoreConquestCampfalseIgnore Conquest camp assignment, use friendly/enemy config instead
audio.fallbackThirdPersonForLocaltrueFall back to 3P sound if 1P variant is missing
audio.masterVolume1.0Master client volume (0.0–4.0)
audio.firstPersonVolume1.0Additional volume multiplier for first-person sounds (0.0–4.0)
audio.thirdPersonVolume1.0Additional volume multiplier for third-person sounds (0.0–4.0)
audio.maxSimultaneousSingleTpSound2Max same-type 3P sounds playing at once
audio.maxSimultaneousTpPlayersFriendly3Max friendly players emitting 3P sounds at once
audio.maxSimultaneousTpPlayersEnemy3Max enemy players emitting 3P sounds at once
audio.maxThirdPersonDistance48.0Max distance to hear 3P sounds (blocks)

Features

Event-Driven Voice Cues

The following voice cues are triggered by specific in-game events on the server:

Voice CueTrigger ConditionPlayback
DEATHPlayer dies (LivingDeathEvent), not a spectatorLayered: 1P death + SFX to self; 3P ally death reaction to nearby teammates
EXPLOSION_CLOSEPlayer takes explosion damage but survives (health > 0)1P to self, 1-second cooldown
LOW_HEALTH_PANICPlayer health drops below 5.0 (half a heart × 5)1P to self, fires once per low-health episode
HEAVY_HURTPlayer takes damage from a TACZ bullet (non-sniper, non-RPG, non-explosion), survives1P to self, 10-second cooldown, suppressed if higher-priority cue fires same tick
BURNINGPlayer is on fire (vanilla) or has LR Tactical lrtactical:flammable effectLayered 1P: scream + flame + spark, fires once per burning episode
REQUEST_AMMOPlayer's held TACZ gun has zero magazine ammo, zero barrel ammo, and no matching ammo in inventory1P to self, fires once per empty episode; rechecks every 1s when empty, 3s when loaded
GRENADE_ALERTAn enemy LR Tactical explosive grenade is within a 5-block radius1P to self, scans every 5 ticks; excludes own grenades
THROW_GRENADEPlayer starts priming an LR Tactical explosive grenade or molotov (right-click hold)3P broadcast to tracking players
THROW_SMOKEPlayer starts priming an LR Tactical smoke grenade (right-click hold)3P broadcast to tracking players
RELOADINGPlayer reloads TACZ gun (GunReloadEvent)3P broadcast to tracking players, 1-second cooldown
SUPPRESSED6+ suppression stacks from non-MG fire accumulate in 1 second (see Suppression Fire Corridor)1P to target, 4-second cooldown
MACHINE_GUN_ALERT6+ suppression stacks from MG fire accumulate in 1 second1P to target, 4-second cooldown
SUPPRESSING_HOSTILEShooter accumulates 9+ suppression stacks on enemies in 1 second1P to shooter, 4-second cooldown, gated by 1-second aggressive-cue separation
SNIPER_ALERTSniper bullet passes within 5 blocks of player, OR player is first hit by a sniper1P to target, 3-second cooldown
RPG_ALERTRPG rocket passes within 10 blocks of player, OR player is first hit by an RPG1P to target, 3-second cooldown
KILL_ENEMYPlayer kills an enemy with a TACZ gun (non-headshot, or no nearby allies for nice-shot)1P to killer
NICE_SHOTPlayer gets a headshot kill and an allied observer is within 5 blocks3P to nearby allied observer
FRIENDLY_FIREPlayer kills a teammate and an allied observer is within 2 blocks3P to nearby allied observer, 4-second cooldown
TEAMMATE_DOWNEDA teammate is killed nearby3P broadcast to nearby allies (triggered via GDCQ death deferral)

Suppression Fire Corridor

When a player fires a TACZ gun, the server computes a fire corridor — a cylindrical volume extending 24 blocks forward from the shooter's eye position with a 1.6-block radius along their look direction. Every hostile, alive, non-spectator player inside this corridor receives one suppression stack.

  • Suppression stacks per target expire after 20 ticks (1 second) from the first stack
  • 6 stacks: triggers SUPPRESSED on the target (or MACHINE_GUN_ALERT if all stacks came from an MG)
  • 9 stacks: additionally triggers SUPPRESSING_HOSTILE on the shooter
  • Cooldowns prevent repeated spam: 4 seconds per target for suppressed, 4 seconds per shooter for suppressing hostile, with a 1-second aggressive-cue separation gate

Projectile Near-Miss Detection

When TACZ bullet entities spawn (EntityJoinLevelEvent), the server begins tracking them. Each tick, tracked projectiles are classified by gun type:

  • Sniper bullets (gun type sniper): near-pass radius 5 blocks
  • RPG rockets (gun type rpg): near-pass radius 10 blocks

For each projectile, the movement segment between its last and current position is tested against the bounding boxes of nearby hostile players using a segment-vs-inflated-box intersection. Detection also fires on the first direct hit from a sniper or RPG. Both cues have a 3-second cooldown per target.

Unrecognized projectiles are removed after 5 probe ticks; dead or removed projectiles are cleaned up automatically.

Grenade Alert & Throw Detection

  • Alert scanning: Every 5 ticks, the server scans a 5-block radius around each player for LR Tactical ThrowableItemEntity entities of type EXPLOSIVE_GRENADE. Own grenades are excluded.
  • Throw detection: Each tick, checks if a player is actively using (right-click holding) an LR Tactical throwable item. When the player starts priming or switches to a different grenade type, the appropriate cue fires — THROW_SMOKE for smoke grenades, THROW_GRENADE for explosive grenades and molotovs.

Audio Playback Modes

The client supports three playback modes:

ModeBehaviorUse Case
LOCALNon-positional, flat volume (SoundSource.PLAYERS, relative=true)First-person self feedback (e.g., hurt, death, low health)
POSITIONStatic world position, distance-based attenuationWorld-positioned sounds
ENTITYAttached to a living entity, follows its movement each tick, stops when entity is removedThird-person player-attached sounds (e.g., reloading, throwing grenades)

For first-person playback, the volume is scaled by firstPersonVolume; for third-person, by thirdPersonVolume. If a cue lacks a first-person audio variant, the client can fall back to the third-person variant (controlled by fallbackThirdPersonForLocal).

Audio Throttling

To prevent sound overload in intense firefights, the client enforces throttling:

  • Per-player first-person limit: Only one first-person sound active at a time, except BURNING (own per-cue list) and unlimited-priority cues (DEATH, FINAL_DEATH, and all revive sounds)
  • Per-player third-person limit: A single player cannot have two active third-person sounds
  • Per-type third-person limit: At most maxSimultaneousSingleTpSound (default 2) instances of the same cue type globally
  • Per-camp player limit: At most maxSimultaneousTpPlayersFriendly (default 3) friendly and maxSimultaneousTpPlayersEnemy (default 3) enemy players emitting third-person sounds. When the limit is reached, the furthest player is evicted if the new player is closer

Audio Layering

Certain cues play multiple sound layers simultaneously:

  • DEATH: First-person layer fp.death.death + SFX layer fp.death.sfx; third-person ally reaction via tp.{camp}.death
  • BURNING: Three first-person layers — fp.burning.scream + fp.burning.flame + fp.burning.spark

GD656Conquest Integration

When GD656Conquest is installed on the server, GD656FrontVoice automatically detects it via reflection and uses its API for three purposes:

  1. Camp resolution: resolveCamp(player) returns the player's faction (CN/US/RU) from Conquest's team system. The assigned voice pack follows the player's actual faction rather than falling back to defaults.
  2. Hostility check: isSameCamp(left, right) determines whether two players belong to the same Conquest team. This replaces the vanilla isAlliedTo check for hostility, meaning only players on different Conquest teams are considered hostile for suppression, sniper alert, and RPG alert purposes.
  3. Death cue deferral: shouldDeferDeathCue(player) allows Conquest to control whether a death voice cue plays immediately or is deferred (e.g., for downed/revive systems).

Without GD656Conquest: All players default to the CN voice pack; camp-based hostility falls back to vanilla alliance checks.

On the client, the ignoreConquestCamp config option allows players to override the server-provided camp and use their own friendlyVoicePack / enemyVoicePack settings instead.


Notes

  • This mod requires both client and server installation for full functionality;
  • This mod is in active development (0.x); features may continue to evolve;
  • Portions of the code were assisted by AI technology;
  • Licensed under the MIT License.

Последние версии

Все версии →
beta

GD656FrontVoice 0.0.15-1.20.1-forge

0.0.15-1.20.1-forge
29 июл. 2026 г.705,5 тыс.Minecraft: 1.20.1forge
Скачать
Что нового
- 修复音频路径问题
beta

GD656FrontVoice 0.0.13-1.20.1-forge

0.0.13-1.20.1-forge
29 июл. 2026 г.219Minecraft: 1.20.1forge
Скачать
Что нового
- 将debug模式的config默认值更改为false
beta

GD656FrontVoice 0.0.12-1.20.1-forge

0.0.12-1.20.1-forge
28 июл. 2026 г.181Minecraft: 1.20.1forge
Скачать
Что нового
- 弹药包医疗箱医疗包弹药箱!
beta

GD656FrontVoice 0.0.11-1.20.1-forge

0.0.11-1.20.1-forge
28 июл. 2026 г.45Minecraft: 1.20.1forge
Скачать
Что нового
- 新增快速聊天轮盘; - 新增自定义快速聊天轮盘; - 新增了一些语音类别; - 对现有的资源目录进行整理。
beta

GD656FrontVoice 0.0.7-1.20.1-forge

0.0.7-1.20.1-forge
25 июл. 2026 г.58Minecraft: 1.20.1forge
Скачать
Что нового
- Initial beta