# Chat Toys art credits

## Characters

Skins are grouped by source in `sprites/manifest.json`: Pixel Frog, Sunny Land, Kenney, and OpenGameArt. Every pack below is CC0. Each one was checked on its own page before the sheets were added.

### Pixel Adventure 1

Ninja Frog, Mask Dude, Pink Man, and Virtual Guy. Sheets in `sprites/pixel-adventure/` are the Idle, Run, Jump, Fall, and Hit strips. Run is saved as `walk.png`. `wave.png` is the arms-out portion of the Hit strip (frames 3–6).

- Licence: [Creative Commons Zero v1.0](https://pixelfrog-assets.itch.io/pixel-adventure-1) on itch.io. Attribution is not required.
- Mirror used for the files already in this folder: [OpenGameArt](https://opengameart.org/content/pixel-adventure-1). That page is labeled CC-BY 4.0, so Pixel Frog is credited here either way.

### Pixel Adventure 2

Twenty-two enemies and creatures in `sprites/pixel-adventure-2/` (angry pig, bat, bee, blue bird, bunny, chameleon, chicken, duck, fat bird, ghost, mushroom, plant, radish, rino, three rocks, skull, slime, snail, trunk, turtle). Idle, run or the closest locomotion, jump and fall where the pack has them, and hit (or the turtle’s spikes) for the wave.

- itch.io: [Creative Commons Zero v1.0](https://pixelfrog-assets.itch.io/pixel-adventure-2). The page says you can distribute, remix, and build on the art, including commercially, and that attribution is not required. The zip on itch.io is a $5 download.
- The files here are from the author’s free [OpenGameArt upload](https://opengameart.org/content/pixel-adventure-2), which labels the same pack CC-BY 4.0. That licence also allows redistribution. Pixel Frog is credited under both.

### Kings and Pigs

King, King Pig, Pig, Box Pig, Bomb Pig, and Crate Pig in `sprites/kings-and-pigs/`.

- Licence: [Creative Commons Zero v1.0](https://pixelfrog-assets.itch.io/kings-and-pigs). Attribution is not required.

### Pirate Bomb

Bomb Guy, Bald Pirate, Cucumber, Big Guy, Sea Captain, and Whale in `sprites/pirate-bomb/`.

- Licence: [Creative Commons Zero v1.0](https://pixelfrog-assets.itch.io/pirate-bomb). Attribution is not required.

### Treasure Hunters

Clown Nose, Crabby, Fierce Tooth, and Pink Star in `sprites/treasure-hunters/`.

- Licence: [Creative Commons Zero v1.0](https://pixelfrog-assets.itch.io/treasure-hunters). Attribution is not required.

### Skipped

- **Tiny Swords** ([itch.io](https://pixelfrog-assets.itch.io/tiny-swords)). The page allows personal and commercial use, then says you may not redistribute, resell, or repackage the assets, even if modified. One download is named as an older CC0 file, but the page licence does not clearly allow that file to be put in this repo.
- **Pixel Adventure 2 on the Unity Asset Store.** That listing uses the Unity Asset Store EULA, not the CC0 itch.io terms. These sheets do not come from there.
- Props that are not walkers: tiles, doors, cannons, hearts, loose swords, and the Kings and Pigs pig who only lights a cannon.

The characters face right. The overlay flips the sprite when they walk left. Pixel Frog draws its enemies facing left, so the Pixel Adventure 2 cast, the Kings and Pigs pigs, the Pirate Bomb enemies, and Crabby, Fierce Tooth, and Pink Star were mirrored cell by cell to face right. Strips in this folder are 32×32 cells with the feet on the bottom row, so the newer cast stands on the same line as the original four.

Pixel Adventure 2’s mushroom is `!skin mush` (aliases `mushroom` and `toadstool`). The skull’s aliases are `cranium` and `bonehead`, and the slime’s are `ooze` and `puddle`. The bat walks and idles on its Flying strip and floats above the floor.

## Sunny Land

Foxy, Toad (Sunny Land’s frog), and Opossum in `sprites/sunny-land/`, by Luis Zuno (ansimuz).

- Licence: [CC0](https://opengameart.org/content/sunny-land-2d-pixel-art-pack) on OpenGameArt (`sunny-land-files.zip`). The bundled `public-license.txt` says public domain, free for personal or commercial use, credit appreciated. The itch.io collection is the same art, also CC0.
- Foxy uses the player idle, run, jump, and hurt strips (hurt is the wave). Toad hops on the frog jump strip. The toad and the opossum face left in the pack and are mirrored. Toad’s stretched jump and the opossum’s tail were trimmed by up to 3 pixels to fit a 32-pixel cell. The eagle is 40 pixels wide and is not included.

## Kenney

Green Alien, Blue Alien, Cyclops, Yellow Alien, Space Kid, Grumpy Block, Drill Bot, Crawler, Flapper, and Gold Buddy in `sprites/kenney/`, from [Pixel Platformer](https://kenney.nl/assets/pixel-platformer) by Kenney.

- Licence: CC0 (the pack’s `License.txt`). Credit to Kenney is welcome but not required.
- The characters are 24-pixel tiles with two- or three-frame walks, centred in 32-pixel cells. They face the camera, so they look the same both ways.

## OpenGameArt

Each set is CC0 on its own OpenGameArt page:

- Blob: [Blob 32x32](https://opengameart.org/content/blob-32x32) by horuskdi. Move strip for the walk, jump frames for jump, fall, and wave.
- Pink Cat: [2D cat sprite](https://opengameart.org/content/2d-cat-sprite) by noob (`cat_4.png`, the walking-right row).
- Parrot and Hawk: [Animated Birds (32x32)](https://opengameart.org/content/animated-birds-32x32) by moikmellah. The magenta background was keyed out and the birds mirrored to face right.
- Red Worm, Wasp, and Chomper: [Alien Enemies 32x32](https://opengameart.org/content/alien-enemies-32x32) by gendgi. The move rows walk and the attack rows wave. Mirrored to face right.

`sprites/make-packs.py` rebuilds every Sunny Land, Kenney, and OpenGameArt strip from the original downloads and rewrites those groups in the manifest. Run it with the folder that holds the unzipped files; the script’s docstring lists the layout.

## Hats

`sprites/hats/` is original pixel art made for Chat Toys (see `sprites/make-hats.py`). It is released CC0 1.0. The hats stay their own colours when a chatter tints the character.

## Adding a skin later

Edit `sprites/manifest.json`. Add a group for your art to `groups`, then a skin to `skins` with `group` set to that id:

```json
{ "id": "custom", "name": "Custom" }
```

```json
{
  "id": "mio",
  "name": "Mio",
  "group": "custom",
  "pack": "Custom",
  "aliases": ["mio"],
  "motion": "float",
  "animations": {
    "idle": {"file": "sprites/custom/mio/idle.png", "frames": 8, "fps": 10},
    "walk": {"file": "sprites/custom/mio/walk.png", "frames": 8, "fps": 12},
    "jump": {"file": "sprites/custom/mio/jump.png", "frames": 1, "fps": 1},
    "fall": {"file": "sprites/custom/mio/fall.png", "frames": 1, "fps": 1},
    "wave": {"file": "sprites/custom/mio/wave.png", "frames": 6, "fps": 12}
  }
}
```

`frame` in the manifest is 32. Each file is a horizontal strip of that many square cells, character facing right, feet on the bottom row. `walk` is required. `idle`, `jump`, `fall`, and `wave` are optional. `fps` is per strip. Optional `motion` is `float` (a small bob above the floor) or `squash` (alternate walk frames flatten, feet staying down). `group` may be the group id or its name. Raise the manifest `version` when you redraw a sheet under the same file name, so browsers and OBS fetch the new picture. Chat commands pick up a new `id` and any `aliases` on the next overlay load.
