Free assets and tools for commercial games, with every licence read at its source.
Browse 392 sources Β· Starter stacks Β· Choose by job Β· Licences Β· Contribute
Each entry records the licence as its source states it and the date someone read it there; active entries quote the source's own words. The catalog indexes sources and never rehosts them: check the source before you ship.
Big lists such as magictools and awesome-gamedev tell you something is free. This one tells you what the licence says, where it says it, and when it was last read, so you don't have to re-check forty tabs before a release. (Thanks to magictools: many tool entries started from its list.)
Note
This is the catalog's reading of each licence, not legal advice. Licences change: read the source's own terms before you ship.
|
Pick by the job β Guides that compare sources which look interchangeable and are not. |
Start from a stack β One pick per need for a kind of game, and what the whole set owes. |
Check before you ship β When each licence was last read at its source, oldest first. |
Recent: 2026-10-04, 15 more video, animation and environment sources. 2026-09-30, 42 more sources, mostly pipeline, pixel-art and chiptune tools. 2026-09-25, starter stacks and a licence freshness page.
Start here Β· Starter stacks Β· Browse the catalog Β· Reading an entry Β· Safe starting points Β· Licences Β· Godot Β· How the catalog stays honest Β· Scope Β· Contributing Β· Support
The publishers most projects start from.
![]() Kenney CC0 Β· modular 3D |
![]() Quaternius CC0 Β· rigged kits |
![]() KayKit CC0 Β· atlas characters |
![]() Poly Haven CC0 Β· HDRI and PBR |
![]() Kenney UI CC0 Β· HUD and menus |
![]() Input prompts CC0 Β· 64Γ64 glyphs |
![]() ambientCG CC0 Β· seamless PBR |
![]() Departure Mono SIL OFL Β· pixel type |
Publisher promotional stills (CC0 or SIL OFL), shown here as documentation only. The packs themselves stay on the source sites.
Choose by the job, not by the licence. Most sources in a category share a licence, so the licence column rarely tells you which one to pick. These guides compare sources that look interchangeable and are not. Several are measured from the files themselves, not the store pages.
| You are choosing | Guide |
|---|---|
| A pixel tileset, by grid size and projection | 2D: Choosing a pixel tileset |
| An icon set, and which two carry obligations | 2D: Choosing an icon set |
| Kenney, KayKit or Quaternius | 3D: measured comparison of scale, triangles and rigs |
| A PBR texture library you can redistribute | 3D: Choosing a PBR texture source |
| A rigged character, and whether its animations will transfer | Characters: Choosing a rigged character source |
| A pixel font, including CJK | Fonts: Choosing a pixel font |
| Game music, and whether videos of your game will get claimed | Audio: Choosing game music |
| Sound effects, and what "no credit" still leaves you owing | Audio: Choosing sound effects |
| A Godot 4 add-on that still builds against your engine | Tools: Godot 4 add-ons |
| Between two tools that do the same job | Tools: near-duplicates |
Need something working today? Take the safe starting points: the catalog's highest-confidence sources, with the licence shown so you can see which ones owe a credit.
One pick per need for a kind of game, with a summary of what the whole set owes. Each stack is a page on the site.
| Make a⦠| What you get |
|---|---|
| 2D pixel platformer | A side-scrolling pixel-art platformer you intend to sell |
| 2D top-down pixel game | An adventure or RPG with menus, controller prompts and a terminal-style font |
| 3D low-poly arena in Godot | Rigged, animated characters and impact sounds, built in Godot 4 |
| First-person destruction | Debris materials, industrial props and ambience for a game about breaking things |
| Mobile puzzle | A casual match-3 or board-style game for phones |
The website searches all 392 entries
and filters them by category, commercial use, attribution, review status and 2D camera
view. Press / to search. Filtered views and individual entries have their own URLs, so you can send
someone exactly what you are looking at.
| Category | Entries | Focus | Index |
|---|---|---|---|
| 3D | 72 | Models, scans, PBR textures and materials | catalog/3d/ |
| Tools | 109 | Editors, pipeline, TTS, Godot add-ons | catalog/tools/ |
| 2D | 58 | Sprites, tilesets, UI and HUD, icons, palettes | catalog/2d/ |
| Audio | 34 | SFX, music, foley, impulse responses | catalog/audio/ |
| Characters | 28 | Rigged packs, generators, modular humanoids | catalog/characters/ |
| Fonts | 25 | OFL and commercial-ok typefaces, CJK | catalog/fonts/ |
| Environment | 18 | HDRI, terrain DEMs, geodata | catalog/environment/ |
| Shaders & VFX | 18 | Shaders, particle and FX resources | catalog/shaders-vfx/ |
| Animation | 17 | Motion capture and character clips | catalog/animation/ |
| Video | 13 | Stock footage, archival clips | catalog/video/ |
Each source is one Markdown file: frontmatter for the facts, then notes on what it is good for, what the catch is, and a dated Evidence section quoting the live licence page.
| Status | Meaning | What to do |
|---|---|---|
π’ active |
Licence read at the source and quoted with a date | Suitable to evaluate for production |
π‘ needs-review |
Useful, but a real question is still open, and the entry says which | Verify before shipping |
βͺ deprecated |
Kept for history, with the reason stated | Use an alternative |
verified is the date someone last read the licence at the source. The website shows its
age on every row and marks it once it passes a year; at that point, re-read the licence
yourself before you rely on it.
Aggregators (OpenGameArt, Poly Pizza, itch collections, font indexes) are usually license: varies.
The licence belongs to each file, not to the site or even to the author, so review every
file you take.
Frontmatter fields
| Field | Meaning |
|---|---|
license |
Licence as the source states it, from a closed vocabulary in site/license-vocabulary.json (CC0, CC-BY-4.0, SIL OFL, GPL-3.0-or-later, custom, varies, and so on) |
license_spdx |
The SPDX identifier, whenever the licence maps to exactly one. Absent when there is no single identifier: custom, varies, unknown, public domain, unversioned CC-BY, and GPL values that do not say -only or -or-later |
commercial |
true, false, unknown or varies. varies means per-file review; the site's Commercial OK filter still lists these, labelled per-file review |
attribution_required |
true, false or unknown. For fonts, false means no credit line, not no obligation: see docs/fonts.md |
attribution_string |
Copy-paste credit line, present when attribution is required |
formats |
Common download and interchange formats |
verified |
Date the licence was last read at the source (YYYY-MM-DD) |
status |
See the table above |
publisher |
The rights holder, when it has more than one entry. Never a generic host |
grid_dimensions, camera_perspective, hardware_tags |
Optional 2D metadata: tile size, projection (top_down, isometric_3_4, side_scroller, 2d_flat), input-device coverage |
Add a new source from catalog/TEMPLATE.md. id must be unique across the whole catalog.
High-signal sources that cover most early production needs. This mirrors the starter list
on the website, which is set in site/config.json; if the two ever
disagree, the config is the one the site uses.
All 19 starters
| Need | Source | Licence |
|---|---|---|
| Modular low-poly 3D / UI | Kenney | CC0 |
| Rigged low-poly characters | Quaternius | CC0 |
| Atlas-optimized kits | KayKit (Kay Lousberg) | CC0 |
| Seamless PBR materials | ambientCG | CC0 |
| HDRIs / calibrated env | Poly Haven | CC0 |
| Second CC0 HDRI publisher | Open HDRI | CC0 |
| Extra PBR + SBSAR | TextureCan | CC0 |
| UI icons (brand-free) | Lucide Icons | ISC |
| Hand-drawn 2D vectors | Glitch (CC0 asset release) | CC0 |
| Input prompts (Deck / Switch 2 / Quest) | Kenney Input Prompts | CC0 |
| Pro SFX dumps | Sonniss #GameAudioGDC Bundle | custom |
| Attribution music | Incompetech (Kevin MacLeod) | CC-BY-4.0 |
| Pixel / terminal font | Departure Mono | SIL OFL |
| Localization fonts | Noto Sans (incl. CJK) | SIL OFL |
| No-attribution music stingers | Kenney Music Jingles | CC0 |
| No-attribution music loops | Abstraction Music Loop Bundle | CC0 |
| Generate your own retro SFX | jsfxr | Unlicense |
| Extra CC0 PBR (photoscans) | cgbookcase | CC0 |
| CC0 16-bit platformer kit | SunnyLand (ansimuz) | CC0 |
Read these before you mix packs into a commercial build.
| Guide | Covers |
|---|---|
docs/licenses.md |
The cheat sheet: what each licence allows and owes |
docs/fonts.md |
Embedding versus redistribution, and what an OFL font still owes |
docs/geodata.md |
Attribution across DEM, map and satellite sources, and why ODbL does not reach your game |
docs/game-vs-video-licensing.md |
Why "commercial use" on a video licence may not cover a game |
docs/provenance.md |
Judging a supplier, and keeping a paper trail |
docs/high-risk.md |
Sources to avoid entirely |
docs/ai-assets.md |
AI-generated assets |
docs/fivem.md |
GTA-format and FiveM assets |
docs/trust-score.md |
Review rubric used when vetting a source (not shown on entries) |
The short version
| Licence | In a closed-source game |
|---|---|
| CC0 | The safest default. Nothing owed |
| CC-BY | Commercial use is fine; credit the author. CC-BY-3.0 sources often want the author named; CC-BY-4.0 is usually met by a credits-screen line |
| CC-BY-SA | Usable commercially, but share-alike applies to derivatives of the asset. Ship SA files in extractable bundles rather than encrypting them into the binary |
| Any ND licence | Generally unusable in games, because interactive sync and remix count as derivatives |
| SIL OFL | The default for fonts in games. No credit line, but the licence file ships with the font |
| ODbL (OpenStreetMap) | A game that renders map data is a produced work, so the share-alike does not reach it. Credit OSM. Redistributing the data itself is what triggers the obligations |
| Marketplace "free" (Unity, Fab, Unreal) | Often commercial in-engine only, with no redistribution, and sometimes locked to one engine |
| Aggregators | The licence is per file, not per author. The same creator's uploads can differ |
| Trusting the supplier | Skip anonymous mega-dumps and known traps (MB-Lab, default Shadertoy, map scrapes, GTA and FiveM rips) |
Catalog metadata in this repository is CC0. Linked assets keep their own licences.
A research-backed shortlist for Godot 4 projects is in
docs/godot-budget-stack.md. Before adopting an add-on, check
its row in the maintenance table. Some
add-ons' latest release is years older than their maintained branch, one is alpha, and
one is a Godot 3 runtime listed beside the Godot 4 ones.
A catalog like this is only useful if you can trust it, and trust has to be checked, not
asserted. So node site/validate.mjs runs on every push and fails the build rather than
publishing a broken catalog. Among other things, it checks that:
- a
verifieddate is never newer than the newest date in the entry's own Evidence, so a date cannot be bumped without a fresh quote to back it - every
licensevalue comes from the documented vocabulary, and its SPDX identifier agrees with it - an attribution licence marked "no attribution" states the publisher's waiver
- category indexes, counts and the badge above match the catalog
- no third-party binaries are committed to the repository
The checks themselves are tested against known-bad fixtures in
site/checks.test.mjs. Every review pass, and every correction it
made, is recorded in docs/review-ledger.md.
| In scope | Out of scope |
|---|---|
| Free asset libraries, packs and aggregators with a clear free tier | Rehosting or mirroring third-party archives, models or audio |
| Tools for creating or processing game assets | Paid-only marketplaces with no meaningful free content |
| Sources usable in commercial games when their terms allow | Guessing licences |
When a source does not say plainly, the entry says unknown and needs-review instead.
New sources, licence corrections, dead links and clearer notes are all welcome.
- Start an entry with
npm run new-entry -- <category> <id>. It copies the template, sets the id and date, and starts the entry asneeds-review. - Read the licence at the source and quote it, with the date, in the entry's Evidence section.
- Add a row for it to the category's
README.md, then runnpm run countsto update every count. - Run
npm test && npm run validate(quick), then open a pull request. CI also runs the full build.
CONTRIBUTING.md has the full checklist and how to verify a licence.
Please follow the Code of Conduct.
Run the checks and preview the site locally
Node 22 or newer; there is nothing to install.
npm run check # all of the below, in the order CI runs them
npm test # the checks against known-bad fixtures, and the site modules' tests
npm run validate # the catalog, against the checks (node site/validate.mjs)
npm run build # builds the site into site/dist (node site/build.mjs)
npm run serve # preview at http://localhost:3000Repository layout
.
βββ README.md
βββ CONTRIBUTING.md how to add and verify an entry
βββ LICENSE CC0-1.0 for catalog metadata and docs
βββ catalog/
β βββ README.md master index
β βββ TEMPLATE.md copy this to add a source
β βββ 3d/ 2d/ audio/ characters/ environment/
β fonts/ shaders-vfx/ animation/ video/ tools/
β one .md per source, plus a README index
βββ docs/
β βββ licenses.md fonts.md geodata.md game-vs-video-licensing.md
β βββ provenance.md high-risk.md ai-assets.md fivem.md trust-score.md
β βββ godot-budget-stack.md
β βββ research-index.md maintainer notes on local research drafts
β βββ design/ design specs behind the entry pages, stacks and freshness page
β βββ review-ledger.md every review pass and what it changed
β βββ images/readme/ publisher stills used in this README
βββ stacks/ starter stacks: one pick per need for a kind of game
βββ site/
β βββ validate.mjs catalog integrity checks
β βββ checks.mjs the checks, as pure functions
β βββ checks.test.mjs fixtures proving each check fails on bad input
β βββ new-entry.mjs starts an entry from the template
β βββ sync-counts.mjs rewrites every restated entry count
β βββ license-vocabulary.json the licence values the catalog accepts
β βββ spdx-allowed.json SPDX identifiers in use
β βββ build.mjs config.json static site generator and its settings
β βββ lib/ page renderers and shared helpers, with lib.test.mjs
β βββ public/ page, styles and script
βββ package.json npm scripts only; no dependencies
βββ RESEARCH/README.md research archive index (drafts are gitignored)
If the catalog saves you time, you can sponsor TMHSDigital on GitHub. Entirely optional.
Catalog metadata and documentation in this repository are dedicated to the public domain under CC0 1.0 Universal. Third-party assets linked from the catalog remain under their original licences. Verify terms on the source site before use.








