Skip to content
vince94 edited this page Jun 23, 2021 · 17 revisions

List of files and folders used:

  • SpriteGroups contains all overworld sprites.
  • BattleSprites contains all battle sprites.
  • sprite_groups.yml contains data of how the sprites are used or act in-game.
  • sprite_group_palettes.yml contains the color palettes of sprites.
  • map_sprites TODO

Editing Sprites

CoilSnake conveniently dumps all of the sprites in the game to PNGs that you can edit with any proper pixel art tool! (read: not MS Paint) The community reccomends GraphicsGale or Aseprite.

Photoshop supports indexed palettes and should work, people in the community have reported GIMP messing up sprite files in the past.

Let's take a look at Ness's sprite, 001.png. This is what your screen should look like:

Ness's sprite open in GraphicsGale

Edit this sprite any way you like! If you're working on a playable character, be sure to add diagonal sprites! Note: NPCs don't have diagonal sprites.

You just need to stick to the main palettes - you can't add any new colors because CoilSnake doesn't actually use the palette information in the PNG files themselves! Palette colors are defined in sprite_group_palettes.yml. Changing the color values in this file is a pain because if you do it, you have to modify all the PNG files because it checks to see if there are any mismatches when you compile. (TODO: talk about how to more easily do this)

Changing sprite dimensions

Let's try making Ness's sprite taller! To save some time, we'll use a different sprite that already exists, like this tree in a pot!

TODO: document all the valid sizes

For this example, let's take the tree file (266.png), and save it over Ness's sprite (001.png). This is what your screen should look like:

The tree sprite open in GraphicsGale

Notice that the palette in this file is a little different - it's another one of the ones in the `sprite_group_palettes.yml file.

So, now that you've finished, and you're satisfied with what you have; it's time to open the sprite_groups.yml file. We will scroll through it and find the new sprite's (266.png) data, and paste some of its properties in 001.png's data.

This is what 001.png's data looks like now:

1:
  East/West Collision Height: 8
  East/West Collision Width: 8
  Length: 16
  North/South Collision Height: 8
  North/South Collision Width: 8
  Size: 16x24
  Swim Flags: [false, false, false, false, false, false, false, false, false, false,
    false, false, false, false, false, false]

We will want to take the Size number and change it to 16x48 and make sure nothing else is changed.

After saving and compiling, this is what it should look like in-game:

Wait! What about Battle sprites? With battle sprites, you can use any 15 colors (plus 1 transparent color) you want! Go nuts! More info in the Battle Sprites tutorial.

Unused Sprites

For your convenience, all the unused sprites in SpriteGroups are: 408, 383, 366, 338 to 342, 191, 032, 038, and 445. There are also duplicate sprites of the teddy bear and demonized party member. (Will add sprite numbers soon.)

Palettes

So, what do we need to know what we can and can't do with palettes? And how do we check to see if our custom sprite is valid? Let's check the sprite_group_palettes.yml file.

TODO

Clone this wiki locally