Banana 2077
README.md
Soundscape
Banana 2077's whole sound. The scene entrypoint attaches it to mount_audio when play starts. It only listens to game.rules events and never changes game state.
What it builds
Everything lives under one snd_rig child of the mount. Any rig an earlier instance left behind is despawned first, so a hot reload never doubles a loop.
| entity | source | role |
|---|---|---|
snd_music_1, snd_music_2 | Music, looping | two decks that crossfade over 1.6 s |
snd_stinger | Music, one-shot | win and lose stingers |
snd_sfx | SoundEffect, non-spatial | host for every gameplay one-shot (playOneShot) |
snd_rain_bed | Ambient, looping | rain plus distant city bed (amb_city_rain) |
snd_neon_1..8 | Ambient, spatial, 13 m | neon-tube buzz on the shopfront signs |
snd_market_1..4 | Ambient, spatial, 30 m | night-market crowd at the stalls |
snd_hovercar | SoundEffect, spatial, 60 m | fly-bys repositioned near the player every 9–20 s |
Spatial sources are heard through the single AudioListener on the player's CameraRig. This component adds no listener.
Music by phase
title→music_titleplaying→music_combat, ormusic_bosswhile the boss is alive. A UI confirm plays when a run starts.bossCue→sfx_boss_cueplus Don Aubergine's roar (sfx_boss_roar), his spoken taunt (vo_boss_taunt) 1.6 s later, and the music crossfades tomusic_boss.won/lost→ the music fades out,stinger_win/stinger_loseplays, then the title theme returns at 55%.
Events → one-shots
swing → sfx_swing (sfx_swing_heavy on the combo finisher) · hit → sfx_hit (sfx_hit_heavy + sfx_splat when heavy, sometimes sfx_enemy_growl) · enemyKilled → sfx_splat (sfx_boss_death for the boss) · bossSlam → sfx_boss_slam · playerDamaged → sfx_enemy_attack + sfx_hurt · playerHealed → sfx_snack · eddies → sfx_coin · sunglassesToggled → sfx_shades_on / sfx_shades_off · dodge → sfx_dodge · footstep → sfx_footstep (throttled).
Fields
musicVolume, ambienceVolume, sfxVolume (0..1), and hovercars (toggles the fly-bys).