A burning fireplace goes silent and stays silent while it keeps burning:
Walk ~100 m away from a burning fire and come back: no crackle anymore.
Light a fire, alt-tab out ~30 s after lighting it and come back: no crackle anymore.
The fire, flames and smoke are all still there; only the sound is gone. Several players on our community server report the same.
Reproduced on vanilla: local retail DayZServer 1.30.164200 with the stock dayzOffline.chernarusplus mission, no mods, BattlEye off, retail client with no mods. Both ways (alt-tab, and walking ~100 m away and back) silenced the fire. It does not happen on the DayZDiag build.
Likely cause (from the 1.30 scripts)
The loop is started with PlaySoundSetLoop(m_SoundFireLoop, ...). Object.PlaySoundSet creates the EffectSound with SetAutodestroy(true).
When the engine ends the wave (the listener left the 20 m range of LightFire/HeavyFire/NoFuelFire_SoundShader, or the game lost focus), Event_OnSoundWaveEnded → Event_OnEffectEnded destroys the effect and m_SoundFireLoop becomes null.
FireplaceBase.RefreshFireParticlesAndSounds only plays a sound again when the fire state changes (m_LastFireState != fire_state). A fire that keeps burning stays in NORMAL_FIRE, so nothing ever restarts the loop.
protected void RefreshFireParticlesAndSounds(bool force_refresh)
{
FireplaceFireState fire_state = GetFireState();
if (m_LastFireState != fire_state || force_refresh)
{
}
}
Possible fix: in OnVariablesSynchronized (client), if m_SoundFireLoop is null while the fire is in a burning or smouldering state, start the loop for the current state again.