GD656FrontVoice 图标

GD656FrontVoice

作者:rebot | 分类:模组

价格:0 墨喵币 下载量:0 点赞:0 版本 0.0.15-1.20.1-forge
本资源为搬运资源,原资源地址: https://modrinth.com/mod/gd656frontvoice
资源信息

Minecraft 版本: 1.20.1

平台: forge

标签: utility

资源介绍

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:

Feature Notes
Combat event detection Listens to TACZ gun fire, reload, kill events and vanilla damage/death events
Suppression fire corridor system Accumulates suppression stacks when bullets pass near a player, triggers voice cues at thresholds
Projectile near-miss detection Tracks sniper bullets and RPG rockets, alerts players when projectiles pass nearby
Grenade alert scanning Scans nearby hostile throwables each tick and warns threatened players
Ammo-empty polling Checks player's held TACZ gun ammo state each tick
Burn detection Detects when a player is on fire (vanilla or LR Tactical flammable effect)
Grenade-throw detection Detects when a player starts priming a grenade/molotov/smoke
Camp-aware voice routing Resolves which voice pack (CN/US/RU) to use per player
Audio packet broadcasting Sends ClientboundPlayAudioPacket to target clients

Client-only features:

Feature Notes
Voice cue playback Receives packets, resolves voice cues via CueRouter, and plays sounds
First-person / third-person routing Plays local (non-positional) sounds for self, positional sounds for others
Audio throttling Limits simultaneous sounds per player and per type to prevent spam
Config & command system /gdfv client commands for debugging and config management
Camp perspective override Client-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:

Config Default Description
audio.serverEnabled true Master server switch for broadcasting audio
audio.serverMasterVolume 1.0 Global volume multiplier (0.0–4.0)

Client config:

Config Default Description
audio.enabled true Master client playback switch
audio.friendlyVoicePack CN Voice pack for allied players (when Conquest not installed or ignored)
audio.enemyVoicePack US Voice pack for enemy players (when Conquest not installed or ignored)
audio.detectEnemyByVanillaTeam true Detect enemy players using vanilla team (isAlliedTo), works without Conquest
audio.ignoreConquestCamp false Ignore Conquest camp assignment, use friendly/enemy config instead
audio.fallbackThirdPersonForLocal true Fall back to 3P sound if 1P variant is missing
audio.masterVolume 1.0 Master client volume (0.0–4.0)
audio.firstPersonVolume 1.0 Additional volume multiplier for first-person sounds (0.0–4.0)
audio.thirdPersonVolume 1.0 Additional volume multiplier for third-person sounds (0.0–4.0)
audio.maxSimultaneousSingleTpSound 2 Max same-type 3P sounds playing at once
audio.maxSimultaneousTpPlayersFriendly 3 Max friendly players emitting 3P sounds at once
audio.maxSimultaneousTpPlayersEnemy 3 Max enemy players emitting 3P sounds at once
audio.maxThirdPersonDistance 48.0 Max 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 Cue Trigger Condition Playback
DEATH Player dies (LivingDeathEvent), not a spectator Layered: 1P death + SFX to self; 3P ally death reaction to nearby teammates
EXPLOSION_CLOSE Player takes explosion damage but survives (health > 0) 1P to self, 1-second cooldown
LOW_HEALTH_PANIC Player health drops below 5.0 (half a heart × 5) 1P to self, fires once per low-health episode
HEAVY_HURT Player takes damage from a TACZ bullet (non-sniper, non-RPG, non-explosion), survives 1P to self, 10-second cooldown, suppressed if higher-priority cue fires same tick
BURNING Player is on fire (vanilla) or has LR Tactical lrtactical:flammable effect Layered 1P: scream + flame + spark, fires once per burning episode
REQUEST_AMMO Player's held TACZ gun has zero magazine ammo, zero barrel ammo, and no matching ammo in inventory 1P to self, fires once per empty episode; rechecks every 1s when empty, 3s when loaded
GRENADE_ALERT An enemy LR Tactical explosive grenade is within a 5-block radius 1P to self, scans every 5 ticks; excludes own grenades
THROW_GRENADE Player starts priming an LR Tactical explosive grenade or molotov (right-click hold) 3P broadcast to tracking players
THROW_SMOKE Player starts priming an LR Tactical smoke grenade (right-click hold) 3P broadcast to tracking players
RELOADING Player reloads TACZ gun (GunReloadEvent) 3P broadcast to tracking players, 1-second cooldown
SUPPRESSED 6+ suppression stacks from non-MG fire accumulate in 1 second (see Suppression Fire Corridor) 1P to target, 4-second cooldown
MACHINE_GUN_ALERT 6+ suppression stacks from MG fire accumulate in 1 second 1P to target, 4-second cooldown
SUPPRESSING_HOSTILE Shooter accumulates 9+ suppression stacks on enemies in 1 second 1P to shooter, 4-second cooldown, gated by 1-second aggressive-cue separation
SNIPER_ALERT Sniper bullet passes within 5 blocks of player, OR player is first hit by a sniper 1P to target, 3-second cooldown
RPG_ALERT RPG rocket passes within 10 blocks of player, OR player is first hit by an RPG 1P to target, 3-second cooldown
KILL_ENEMY Player kills an enemy with a TACZ gun (non-headshot, or no nearby allies for nice-shot) 1P to killer
NICE_SHOT Player gets a headshot kill and an allied observer is within 5 blocks 3P to nearby allied observer
FRIENDLY_FIRE Player kills a teammate and an allied observer is within 2 blocks 3P to nearby allied observer, 4-second cooldown
TEAMMATE_DOWNED A teammate is killed nearby 3P 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:

Mode Behavior Use Case
LOCAL Non-positional, flat volume (SoundSource.PLAYERS, relative=true) First-person self feedback (e.g., hurt, death, low health)
POSITION Static world position, distance-based attenuation World-positioned sounds
ENTITY Attached to a living entity, follows its movement each tick, stops when entity is removed Third-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.
下载太慢?试试 墨喵加速站,支持 Modrinth 和外网直链高速下载! 用的人越多,下载的越快!
下载与版本
评论(0)
登录 后发表评论。

暂无评论,抢个沙发吧~

举报此资源

请登录后举报

🔥 相关推荐
Just Optimised

价格:0 墨喵币
下载量:0

查看详情
Simply Enchantments

价格:0 墨喵币
下载量:0

查看详情
Anniversary 15 Cape

价格:0 墨喵币
下载量:0

查看详情
Cooked Flesh

价格:0 墨喵币
下载量:0

查看详情