Reskinning Textures Overview - coloursofnoise/Resources GitHub Wiki
:warning: NOTE: This page is heavily WIP :warning:
This page gives an overview of how to reskin any texture in the game that isn't generated by code (most of them).
These reskins will only apply to your map. If you want to reskin a texture globally (in vanilla and all other maps) see Texture Packs. (TODO add link)
Every (non-coded) texture in the game can be found in the Celeste graphics dump
Table of Contents
- Decals
- Tilesets
- Stylegrounds
- Entities
- Reskinning entities through Sprites.xml
- Other entities
- Texture Packs
Decals
Decals do not need to be retextured, as you can just add your own. Instructions for this are found on the decal page (TODO make page)
Tilesets
Tilesets do not need to retextured, as you can just add your own. Instructions for this are found on the tilesets page
Stylegrounds
Tilesets do not need to retextured, as you can just add your own. Instructions for this are found on the stylegrounds page (TODO put link here)
Entities
When it comes to retexturing there are generally two types of entities. Either you can retexture it in Ahorn by choosing the folder its sprites are, or you need to add a Sprites.xml file to your map which specifies where the directory is.
Reskinning entities through ahorn
Spikes
In order to make custom spikes textures:
- head to
Graphics/Atlases/Gameplay/danger/spikes
in the graphics dump and copy the spike textures you want to base yourself on. - paste those in
Mods/yourmod/Graphics/Atlases/Gameplay/danger/spikes/yourmod/campaignname
and rename them. For example,custom_down00.png
,custom_down01.png
, etc. Don't touch anything after the _ - in Ahorn, right click on your spikes, then in the "Type" field, use
yourmod/campaignname/custom
Switch Gates
In order to customize the switch gate block:
- head to
Graphics/Atlases/Gameplay/objects/switchgate
in the graphics dump and copy one of block.png, mirror.png, stars.png or temple.png. - paste it in
Mods/yourmod/Graphics/Atlases/Gameplay/objects/switchgate/yourmod/campaignname/myblock.png
. - in Ahorn, right click on your switch gate, then in the "Sprite" field, use
yourmod/campaignname/myblock
Jump Throughs
In order to customize jumpthru textures:
- head to
Graphics/Atlases/Gameplay/objects/jumpthru
in the graphics dump and copy one of them. - paste it in
Mods/yourmod/Graphics/Atlases/Gameplay/objects/jumpthru/yourmod/campaignname/myjumpthru.png
. - in Ahorn, right click on your jump through, then in the "Texture" field, use
yourmod/campaignname/myjumpthru
. Note that you can also change the footstep sounds with the "Surface Index" parameter.
Planets effect
TODO: Add picture of planets effect; it's a bit obscure
You can have a Planets styleground with custom planets:
- if you want to use the vanilla planets as a reference, have a look at
Graphics/Atlases/Gameplay/bgs/10/smallXX.png
andbigXX.png
in the graphics dump. - drop your custom planets in
Mods/yourmod/Graphics/Atlases/Gameplay/bgs/10/yourmod/campaignname/customplanetXX.png
, XX being a number starting from 00. You can have as many as you want, the planets displayed will be randomly picked from them. - in Ahorn, in the "Size" field for the planets effect, use
yourmod/campaignname/customplanet
.
Note: if you check the graphics dump, you can see that the Graphics/Atlases/Gameplay/bgs/10/Planets
folder has actual planets (instead of stars). You can use those by typing Planets/big
and Planets/small
in the "Size" field of your planets effect, without having to ship those with your mod!
Reskinning entities through Sprites.xml
Most entities have their sprites and animations defined in a text file called Sprites.xml. Using Ahorn you can set your map to use a different Sprites.xml than vanilla, hence you can use different sprites/animations (without affecting other maps).
In order to check if an entity is reskinnable through Sprites.xml, look for it in Celeste/Content/Graphics/Sprites.xml
.
In this example, we are reskinning Theo Crystal.
- Copy
Content/Graphics/Sprites.xml
intoMods/yourmod/Graphics/yourname/campaignname/Sprites.xml
- Open your copy, and look for Theo Crystal. You will find this:
<theo_crystal path="characters/theoCrystal/" start="idle">
<Origin x="32" y="42"/>
<Loop id="idle" path="idle" delay="0.08"/>
<Anim id="shatter" path="shatter" delay="0.08" goto="shattered"/>
<Loop id="shattered" path="shatter" frames="16" delay="0.08"/>
</theo_crystal>
path="characters/theoCrystal/"
means you will find the textures for it in the graphics dump, at Graphics/Atlases/Gameplay/characters/theoCrystal.
3. Copy this folder into Mods/yourmod/Graphics/Atlases/Gameplay/yourname/campaignname/theoCrystalReskin
, then modify them as you want.
4. In your Sprites.xml copy, edit the path to match the folder you created at the previous step:
<theo_crystal path="yourname/campaignname/theoCrystalReskin/" start="idle">
:warning: If there is a slash at the end of the path, don't remove it.
- in your map metadata in Ahorn, change Sprites to
Graphics/yourname/campaignname/Sprites.xml
.
You're all set! Now, if you place a Theo crystal, it should use your custom texture in-game.
Other entities
If an entity is not reskinnable with ahorn, and isn't in Sprites.xml, a code mod might be needed to reskin it. Most of these miscellaneous entities already have existing mods that allow you to reskin them.
Existing helpers provide more reskinnable entities:
- Frost Helper:
- Spinners
- Springs
- Zip Movers
- max480's Helping Hand:
- Touch Switch and Switch Gate icons. Switch gate blocks are reskinnable out of the box (see first part)
- Refills (for custom particle colors, or for using different sprites in the same map)
- Swap Blocks
- Kevins
- Stars effect
- Lunatic Helper:
- Starfield effect with custom particles
Some helpers also allow you to recolor entities:
- Frost Helper:
- Fire Barriers
- Rising Lava
- Dream Blocks
- Pandora's Box:
- Water
- Waterfalls
- Dust bunnies
- Lunatic Helper:
- Starfield effect
- Stardust effect
- max480's Helping Hand:
- Sandwich Lava
- Blackhole effect
- Shroom Helper:
- Petals effect
Texture Packs
If you want to replace some textures in the game to make a "texture pack", all you have to do is:
- Get the graphics dump from Useful Links: that will tell you which textures exist in the game, what are their dimensions, how they are called, etc.
- Place the replacement texture(s) in
Mods/yourmodname/Graphics/[...]
, with the exact same path as the one in the graphics dump.
For example, to replace the Forsaken City level logo, you would place the replacement texture in Mods/yourmodname/Graphics/Atlases/Gui/areas/city.png
.
If you want an example of a "texture pack" of sorts, take a look at Simpleste. It basically replaces every single texture in the game. With squares and rectangles, but still.
Please note that this will affect vanilla levels as well. This is not what you want if you need custom graphics specifically for your map.
(By the way, if you want to replace Madeline with some other character, you will need 817 sprites. No wonder there are not many texture packs out there doing that.)