For an indie game, the most practical sound effect sources are Kenney and the CC0 sounds on Freesound and OpenGameArt when you want no credit duties, the CC BY sounds on those same sites when you can keep a credits list, Mixkit, Pixabay and ZapSplat for large free libraries under their own licences, and the yearly Sonniss GDC bundle or paid packs for professional recordings. The site matters less than the licence on each file. Before you ship, confirm three things for every sound: commercial use, attribution, and whether the licence lets the raw file sit inside a game build, a public repository or an asset pack you sell.
This guide compares sources by licence, gives a pre-release checklist, then covers organizing, leveling and varying a sound effects library so it holds up in a real game. Licence terms were read on each source's own page on 2026-11-09. It is a practical summary, not legal advice.
Sound effect sources compared by licence
| Source | Cost | Licence | Credit in your game | Main restriction |
|---|---|---|---|---|
| Kenney | Free, donation optional | CC0 | Not required | None beyond not using the Kenney logo |
| Freesound | Free | Per sound: CC0, CC BY 4.0, CC BY-NC 4.0, older Sampling+ | Required for CC BY and BY-NC | BY-NC rules out commercial games |
| OpenGameArt | Free | Per asset: CC0, CC BY, CC BY-SA, OGA-BY, GPL | Required except for CC0 | Share-alike, GPL and DRM questions (see below) |
| Mixkit | Free | Mixkit Sound Effects Free License | Not asked for | No redistribution on its own, as stock, or in a tool or template |
| ZapSplat | Free account, or paid Premium | ZapSplat Standard License | Free accounts: credit "ZapSplat"; Premium: none | No redistribution in any form outside your project |
| Pixabay | Free | Pixabay Content License | Not required | No selling or distributing the files standalone |
| Sonniss GDC bundle | Free yearly download | Sonniss GDC bundle licence | Not required | No supplying the files as sound effects to anyone else |
| HorizonX | Subscription, Starter from $24.99 a month | CC0 1.0 on every sound we checked | Not required | Mostly retro and 8-bit game sounds, curated from Kenney and OpenGameArt creators |
What sits behind each row:
- Kenney: the support page says every asset is CC0, usable in commercial projects, with credit optional ("Kenney" if you give it) and the logo reserved for the studio. The audio packs (impacts, interface, RPG, sci-fi, jingles) share a consistent style, which helps a small game sound designed rather than collected.
- Freesound: each uploader picks the licence, so check it per file. The FAQ summarizes it as: CC0, do almost anything; attribution, always credit the creator; noncommercial, credit and do not earn money with the result. It also suggests a credit line format and keeps a list of everything you have downloaded.
- OpenGameArt: built for games, with the widest range of licences. Its FAQ confirms commercial, closed-source games can use the art if they follow each licence, and recommends a credit line of title, author, licence and URL.
- Mixkit: the sound effects licence explicitly lists video games among allowed uses and allows modifying the sounds.
- ZapSplat: the Standard License lists "Games, apps, and software" as permitted. Free accounts get MP3 files and must credit ZapSplat where reasonably possible; Premium members get WAV and no credit requirement, and sounds downloaded while Premium stay credit-free for life even after cancelling. The live page blocked our automated check, so we read the Internet Archive copy from 2026-10-30.
- Sonniss: the GDC bundle page describes the yearly bundles as royalty free, commercially usable and attribution free, on unlimited projects. The licence (version 2.0, effective 27 August 2026) names games among covered uses and bans using the sounds for AI training.
itch.io and the Unity and Unreal marketplaces also sell good themed packs. Each seller or store sets its own licence, so apply the same checks below.
What to check before you ship
- Commercial use. A paid game, a free game with ads or in-app purchases, or a demo that promotes a paid release is commercial in most readings. Drop every NonCommercial (BY-NC) sound before release rather than arguing the edge case.
- The exact credit. CC BY needs more than a name. The CC BY 4.0 deed asks for appropriate credit, a link to the licence and an indication of changes, and OpenGameArt's FAQ spells out title, author, licence and link. Put the credits in the game's credits screen and in a text file shipped with the build. ZapSplat's free-account sounds need "ZapSplat" credited too.
- Redistribution inside the build. Players can unpack most game builds, so your sound files ship to everyone. Licences that ban standalone redistribution generally still allow sounds embedded in a finished game: ZapSplat lists games as a permitted use and says the rights continue with the completed project when it is sold or published. The risk is in three other situations: - A public source repository. If you open-source the project, the raw WAV files become freely downloadable. CC0 is fine there. ZapSplat's terms ban redistributing its sounds in any form outside your project, and the Sonniss licence bans supplying them as sound effects to others. Keep such files out of the public repo, or replace them in the public version. - Selling a template, kit or asset pack. A game template on an asset store that includes sounds redistributes those sounds. Mixkit excludes tools and templates, and ZapSplat excludes sound libraries. Use CC0 sounds or your own recordings for anything you resell as an asset. - Products where the sound is the point. ZapSplat forbids using its sounds as the primary value of a product such as a soundboard. A "sound effects player" mini-app is a different licence question from a game.
- Share-alike and GPL. A CC BY-SA sound you edit has to be shared under the same licence, so you must be prepared to release your version of that sound. OpenGameArt notes that GPL was written for source code and encourages closed-source developers to understand it fully before using GPL art.
- DRM storefronts. OpenGameArt's FAQ reads CC BY 3.0 and CC BY-SA as a problem for distribution with DRM, mentioning console stores and some app stores, and created the OGA-BY licence to remove that restriction. The CC BY 4.0 deed itself includes a "no additional restrictions" clause about technological measures. If you ship on a DRM platform, prefer CC0, OGA-BY or a royalty-free licence, or ask the author.
- Ripped sounds. Sounds extracted from commercial games, films or TV are not licensed for your game, however many sites host them. Freesound's FAQ notes that uploaders must not upload copyrighted material but that it can still happen; if a "free" sound is obviously from a famous game, do not ship it.
Keep a licence log from the first sound
Fixing credits a week before launch is miserable. Start a spreadsheet with one row per file the day you import the first sound:
- the file name in your project and the original file name
- source URL and author
- licence and version (CC BY 3.0 and 4.0 differ)
- the exact credit line, if one is needed
- download date and, for ZapSplat, whether the account was free or Premium at that moment
- what you changed (trimmed, pitched, layered)
Keep each pack's licence file next to its sounds. Our checklist for handing off visual assets describes the same provenance habit for images and components, and it carries over to audio unchanged.
Organize the library before it grows
A folder structure that survives hundreds of files:
audio/
sfx-source/ untouched downloads, one folder per pack, with LICENSE files
sfx/
weapons/ gun_pistol_shot_01.wav, gun_pistol_shot_02.wav
explosions/ explosion_small_01.wav
ui/ ui_confirm_01.wav
alarms/ alarm_low_health_loop_01.wav
licences.csv
- Never edit in place. Originals stay in the source folder; edited versions go to the game folders. When a licence question comes up, you can still find the original.
- Name by function, not by pack.
gun_shotgun_blast_02.wavtells you where it goes;sfx_hit_07.wavdoes not. - Number variations from 01. It makes random selection in code trivial and shows at a glance how many variants exist.
- Keep WAV masters and let the engine or build step encode the shipping format.
Level the sounds so nothing jumps out
Sounds from five sources arrive at five different levels. Two kinds of normalization help:
- Peak normalization sets the loudest sample of each file to the same level. It prevents clipping but does not make sounds equally loud to the ear.
- Loudness normalization matches perceived loudness, measured in LUFS with the method in ITU-R BS.1770. Audacity's Loudness Normalization effect does it per file and defaults to perceived loudness.
Do not push every sound to one number. Normalize within a category (all footsteps to one value, all pistol shots to another), then set relative levels in the engine with buses: music, ambience, weapons, UI, voice. Gunshots should sit a little below explosions, and enemy weapons below the player's own. Very short clicks give a meter little to measure, so check those by ear against a reference sound.
While you are in the editor, trim silence at the start of every one-shot (latency the player feels as a late hit), add a few milliseconds of fade at the end to avoid a click, and confirm that loops loop without a gap.
Variation: stop the machine-gun effect
One sample played every time a player fires, steps or collects a coin quickly sounds robotic. Four techniques fix it:
- Several takes per event. Three to five close variations for anything frequent. Pick at random, but never the same one twice in a row.
- Small random pitch and volume. A shift of a few percent in pitch and a decibel or two in volume per play is usually enough. Large shifts change the character of the sound.
- Layers. Build a gunshot from a transient, a body and a tail, or an explosion from a thump and debris, and vary layers independently. Three variants of three layers give many combinations.
- Voice limits. Cap how many copies of the same sound can play at once and stop the oldest when the cap is reached. For automatic fire, use a loop that starts on press and stops on release instead of retriggering a single shot many times a second.
Engines often do the first two for you. Godot's AudioStreamRandomizer wraps a pool of streams, has a playback mode that avoids playing the same stream twice in a row, and applies random pitch (random_pitch) and volume (random_volume_offset_db) on each play. For a browser game on the Web Audio API, the same idea fits in a few lines:
// Plays a random variation, never the same one twice in a row,
// with a small pitch shift and a cap on simultaneous copies.
export function createVariedSound(ctx, buffers, { pitch = 0.05, maxVoices = 4 } = {}) {
let last = -1;
const voices = [];
return function play(destination = ctx.destination) {
let index = Math.floor(Math.random() * buffers.length);
if (buffers.length > 1 && index === last) index = (index + 1) % buffers.length;
last = index;
if (voices.length >= maxVoices) voices.shift().stop();
const source = ctx.createBufferSource();
source.buffer = buffers[index];
source.playbackRate.value = 1 + (Math.random() * 2 - 1) * pitch;
source.connect(destination);
source.onended = () => {
const i = voices.indexOf(source);
if (i !== -1) voices.splice(i, 1);
};
voices.push(source);
source.start();
};
}
Pass it decoded AudioBuffers, such as gun_pistol_shot_01 to 04, and call the returned function on every shot. Changing playbackRate shifts pitch and length together, which is what you want for short effects. We checked this snippet's syntax with node --check; it was not run in a game for this article.
Where HorizonX fits
When we checked on 2026-11-09, the HorizonX sound library listed 1,346 sounds that you can preview in the browser. We opened 86 product pages: all were CC0 1.0, credited to their original creators, mostly Kenney and Juhani Junkala's 8-bit sets on OpenGameArt. Each download includes a 16-bit WAV, a 320 kbps MP3, the creator's original file and a licence file. Downloading needs a HorizonX subscription.
The game collections are built around variation, which is the point of this guide:
- Gun sound effects: 66 sounds, including 8-bit single shots, machine gun loops, shotguns, lasers, reloads and empty clicks.
- Explosion sound effects: 107 sounds, mostly 8-bit explosions in short, long, cluster and varied sets, plus fuller crunch and space crash sounds.
- Alarm sounds: 15 retro alarm and low health loops.
Be clear about what they are. The collection pages say most of these are retro and stylized game sounds, not recordings of real firearms or sirens, so they suit pixel art, arcade and stylized games best. For realistic weapons or field recordings, look at the Sonniss bundles or a paid library. The subscription adds previews, categories and ready WAV and MP3 files in one catalogue.
Working on sounds for an app or website interface instead of a game? Our companion guide at horizonx.so/blog/ui-sound-effects covers UI sound sources, volume, browser autoplay rules and accessibility.
FAQ
Can I use Freesound sounds in a commercial game?
Yes, if each sound's licence allows it. CC0 sounds need nothing. CC BY sounds need a credit. CC BY-NC sounds cannot be used in a commercial game. Check the licence on every sound page, not just the first one in a pack.
Do I need to credit Kenney?
No. Kenney's support page says attribution is not required. If you want to give credit, mention "Kenney", but do not use the Kenney logo.
Is ZapSplat free for games?
The free account allows games, with a credit to ZapSplat and MP3 files only. Premium removes the credit requirement for sounds downloaded while you are a member and adds WAV files. Neither lets you redistribute the sounds outside your project.
Can I use sound effects from other games?
No. Sounds ripped from commercial games belong to their publishers and are not licensed for your project, even when a website offers them for download.
Next step
Before you add another sound, start the licence log and the folder structure, then give your most frequent sounds three to five variations. For a ready set of variations to prototype with, browse the HorizonX gun sound effects collection.