# Third-party tools and assets

Not everything in a game has to be drawn or built from nothing. This page lists
open-source tools and asset packs that suit a sports fan game, what each one
costs, and its licence. `lib/third-party-registry.ts` is the one place this
list lives; this page is generated from it, so add an entry there rather than
editing a table here by hand.

## Quickstart: a football pitch in one install

[PitchKit](https://www.pitchkitjs.com) is MIT-licensed, so a game that needs a
pitch to plot shots or heatmaps on can install it and use it with no licence to
negotiate:

```sh
npm install @pitchkit/react
```

```jsx
import { Pitch, Scatter } from "@pitchkit/react";

<Pitch>
  <Scatter data={shots} x={(s) => s.x} y={(s) => s.y} />
</Pitch>;
```

Or take a UI pack from Kenney with no install at all. Every asset on
[kenney.nl](https://kenney.nl/) is CC0 (public domain), so a button, panel or
slider pack is a zip you download and drop into `public/`:
[kenney.nl/assets/ui-pack](https://kenney.nl/assets/ui-pack) has 430 of them.

The rest of this page is grouped by what the tool does, with a table per
group: what it is, its licence, its cost, when to reach for it, when to skip
it, and how to add it.

<!-- third-party-registry:start -->
### Pitch and match visualisation

Draw a pitch and plot data on it, rather than building an SVG renderer from nothing.

| Tool | What it is | Licence | Cost | Use it when | Skip it when | Add it |
| --- | --- | --- | --- | --- | --- | --- |
| [PitchKit](https://www.pitchkitjs.com) | A React and TypeScript library that draws a football pitch, with layers for shot maps, pass networks, heatmaps and Voronoi diagrams stacked on top of it as children of a `<Pitch>` component. Reads coordinates from StatsBomb, Opta, Wyscout, SkillCorner and UEFA formats, and is responsive by default. | MIT | Free | Your predictor or stats game needs a pitch to place players, shots or a heatmap on, and you already have, or can get, coordinates in one of the formats it reads. | The game has no coordinate data to plot, or plays a sport that is not football: it draws football pitches only. | npm install @pitchkit/react |

### Interface assets

Buttons, panels and sounds for a game board, from Kenney, all public domain (CC0).

| Tool | What it is | Licence | Cost | Use it when | Skip it when | Add it |
| --- | --- | --- | --- | --- | --- | --- |
| [Kenney UI Pack](https://kenney.nl/assets/ui-pack) | 430 flat UI sprites: buttons, panels, sliders and checkboxes in several colour sets, sized for a game board rather than a web form. | CC0 (public domain). No attribution required; crediting "Kenney" is welcome, its logo is reserved for its own studio's projects. | Free | A board, a button or a panel needs a game-like look and your own art, or Gamestage UI, is not ready yet. | You are already using Gamestage UI or shadcn/ui on the same screen: mixing three button styles reads as unfinished, not as choice. | Download the pack from https://kenney.nl/assets/ui-pack and copy the sprites you need into public/. There is no package to install. |
| [Kenney UI Audio](https://kenney.nl/assets/ui-audio) | 50 short sound effects for button presses, switches and menu interactions. | CC0 (public domain). No attribution required. | Free | A button press, a correct answer or a reveal wants a sound and the game has none yet. | The game already has its own sound design, or plays mainly in mobile browsers, where the first sound needs a tap to unlock anyway. | Download the pack from https://kenney.nl/assets/ui-audio and serve the files you need from public/. |

### Sport sprites and icons

Generic sports art and small interface icons, for a placeholder rather than a brand.

| Tool | What it is | Licence | Cost | Use it when | Skip it when | Add it |
| --- | --- | --- | --- | --- | --- | --- |
| [Kenney Sports Pack](https://kenney.nl/assets/sports-pack) | 380 top-down sprites across a range of sports: balls, rackets, goals and simple player figures. | CC0 (public domain). No attribution required. | Free | You need a quick sprite for a ball, a goal or a generic sports object while the game's own brand art is not ready. | The game plays a real sport a fan will recognise: this pack is generic, dated 2017, and reads as a placeholder rather than a team's kit. | Download the pack from https://kenney.nl/assets/sports-pack. |
| [Kenney Game Icons](https://kenney.nl/assets/game-icons) | 105 small icons: gamepad, joystick, arrows and control prompts. | CC0 (public domain). No attribution required. | Free | A control hint or a small interface icon is missing, such as a controller prompt on a taster shown on a big screen. | You need a sport-specific icon such as a trophy or a medal: this pack does not have them. | Download the pack from https://kenney.nl/assets/game-icons. |

### Fonts

Display and pixel fonts made for games, not licensed type foundries.

| Tool | What it is | Licence | Cost | Use it when | Skip it when | Add it |
| --- | --- | --- | --- | --- | --- | --- |
| [Kenney Fonts](https://kenney.nl/assets/kenney-fonts) | 11 pixel and display fonts, as .ttf files, made for game interfaces. | CC0 (public domain). No attribution required. | Free | A scoreboard or a title wants a game-like display font and Studio has not set a brand font for it. | The producer has set a brand font in Studio's theming (see Theming): a second font fights it rather than completing it. | Download from https://kenney.nl/assets/kenney-fonts and self-host the .ttf with an @font-face rule. |

### 3D modelling tools

Paid desktop apps for a quick 3D asset. Gamestage games are 2D browser pages, so reach for these only when a taster genuinely renders 3D.

| Tool | What it is | Licence | Cost | Use it when | Skip it when | Add it |
| --- | --- | --- | --- | --- | --- | --- |
| [Kenney Asset Forge](https://kenney.nl/tools/asset-forge) | A desktop app that builds a 3D model by snapping together library blocks, then exports it as OBJ, FBX, glTF and more. | The app is paid. Every block, and every model you export, is public domain: no credit needed. | $19.95 (Deluxe $39.95), on Steam and itch.io | The game needs a simple 3D asset, such as a trophy or a stadium prop, and nobody on the team models in a full 3D tool. | The game is a 2D browser page, which is most of them: this is for the rare taster that renders 3D. | Buy and install from https://kenney.nl/tools/asset-forge, export a model, and load its glTF like any other static asset. |
| [Kenney Shape](https://kenney.nl/tools/kenney-shape) | A desktop app that turns a 2D drawing into a 3D model. | The app is paid. The models you export are yours to use commercially. | $3.99, on Steam and itch.io | You have a 2D icon or logo and want a quick 3D version of it, such as a spinning trophy. | The game is a 2D browser page, which is most of them. | Buy and install from https://kenney.nl/tools/kenney-shape. |

### Placeholder avatars

A free web tool that mixes pixel-art parts into a downloadable image, for a fan slot with no photo yet.

| Tool | What it is | Licence | Cost | Use it when | Skip it when | Add it |
| --- | --- | --- | --- | --- | --- | --- |
| [Kenney Avatar Mixer](https://kenney.nl/tools/avatar-mixer) | A web tool that mixes pixel-art faces into a random avatar and lets you download the result as a PNG. | CC0 (public domain). No attribution required. | Free | A leaderboard or a profile slot needs a placeholder face before real fan photos or avatars exist. | The game already has fan photos, or a brand-approved avatar style a producer set in Studio. | Use the tool at https://kenney.nl/tools/avatar-mixer and download the PNG. Nothing to install. |
<!-- third-party-registry:end -->

## Before you add anything else

Kenney's own word is that every asset on kenney.nl is CC0, in full: no
attribution, no royalty, no restriction, even in a paid product. The only
thing it reserves is Kenney's own logo, kept for its own studio's projects. A
paid tool such as Asset Forge is different from a paid asset pack: the app
costs money, but what you build with it and export is yours, public domain,
the same as everything else here.

An unofficial data source carries a different warning, covered in
[Data sources](/docs/data-sources). This page is about code and art, which
carry no such caveat once the licence above is met.

If you add or replace something here and it changes a fan-facing font,
sound or image, say so in the same commit as the code that uses it: a
licence is a fact about a file, and the two should never drift apart.
