Dark Engine games can't play arbitrary WAV files. All sounds are wrapped in data structures called schemas. Schemas describe a concept instead of a specific sound. Schema definitions include a sound's volume, looping behavior, left/right panning, whether it alerts AIs and how much, and lists of WAV files that can be randomly selected from, among other things.
schema fire_pistol_std
archetype WEAPON_FIRE
volume -100
f_pist1 f_pist2 f_pist3
env_tag (Event Shoot) (WeaponType Pistol) (AmmoType Std) (WeaponMode 0 1)
schema exp_std
archetype EXPLO_SCH
expstd1 expstd2 expstd3
env_tag (Event Create) (ExplosionType ExpStd)
schema elec_sparks
archetype AMB_SCH
volume -500
poly_loop 2 1500 1900
elecspk1 elecspk2 elecspk3 elecspk4 elecspk5 elecspk6
With this, the engine can request a high-level concept like "big_robot_explosion", and the schema definition will take care of the low-level details. It's all very object-oriented.
The downside is that the sound schemas are baked directly into the
gamesys. The gamesys is the file that ends with ".gam". It's a big binary blob that contains the data for how every object in the game behaves. While most object properties can be modified at runtime via scripts and DMLs, the sound schema system is a highly complex metadata tag soup, so sound schemas can only be added, removed, and modified using DromEd, the editor.
So the only way to make a mod that uses custom schemas would be to use a custom gamesys, which would make the mod incompatible with all other mods that use a custom gamesys. That's why minor mods
don't use a custom gamesys.
yes, around 256 max schemas. that is not a lot.
You can have thousands of schemas. The 256 limit is on concept tags. Surface types, AI types, weapon types, gizmo types, etc.