-
Notifications
You must be signed in to change notification settings - Fork 7
Tileset Format Reference
Vanilla tilesets are comprised of a series of "Masks": descriptions of the configuration of surrounding tiles that are used to pick the texture for a tile (Here 🔗 is a visual guide for the mask attribute, made by tobyaaa).
A tileset xml node is structured as follows:
<Tileset id="X" path="path/from/(Gameplay/tilesets)">
<set mask="x0x-111-x1x" tiles="0,0"/>
<set mask="padding" tiles="0,1"/>
<set mask="center" tiles="1,0;1,1"/>
</Tileset>
<Tileset id="X" path="path/from/(Gameplay/tilesets)">
The beginning of the Tileset definition, where:
id
is the character used to represent this tile in the map binary
path
is the path to the tileset image relative to Gameplay/tilesets
<set mask="x0x-111-x1x" tiles="0,0"/>
This is standard mask definition for a tileset, and will be used for the outer-most tiles.
The mask
attribute describes a 3x3 square of tiles with the center tile representing the one currently being analyzed.
Characters accepted in vanilla masks are:
1
- Presence of a tile
0
- Absense of a tile
x
- Any
<set mask="padding" tiles="0,1"/>
<set mask="center" tiles="1,0;1,1"/>
These define the inner layers of the tileset, with padding
describing one layer in from the outer tiles, and center
describing everything else.
Everest adds a few new features to custom tilesets as described below from this pull request 🔗.
Instead of just padding and center inner layers, any number of fill layers can be defined:
<set mask="fill0" tiles=""/>
<set mask="fill1" tiles=""/>
...
Custom mask scan width/height can be set with attributes on the Tileset node:
<Tileset scanWidth="5" scanHeight="5">
The y
filter can be used in a mask to mean "any tile that isn't this one".
Custom filters can also be defined to be used in masks:
<define id="a" filter="4,5" ignore="true"/>
where:
id
is the character to use in the mask.
filter
is the tileset ids to add to the filter.
ignore
determines whether the ids are whitelisted or blacklisted.
- (from testing it seems the y mask is currently a bit bugged and if you want it in you'll have to define it and also use an anti y mask, since you can't replace an already defined tile with a custom mask defined tile to my testing, try pasting this in and in the tile masks you want the y mask tiles to go over put z in)
<define id="y" filter="*" ignore="false"/>
<define id="A" filter="*" ignore="true"/>
AnimatedTiles are textures that can be added to a tileset mask, and are displayed when that mask is used. They are used in vanilla for the wavy grass strands on the Grass and DeadGrass tilesets.
To add AnimatedTiles to one of your map's tilesets, a similar process must be followed for setup:
- Retrieve the
AnimatedTiles.xml
file fromContent/Graphics/
in your Celeste folder. - Copy the
AnimatedTiles.xml
into the same folder you put your other tileset xmls. - In the map editor, copy the path to your
AnimatedTiles.xml
into the "Animated Tiles" field in the Map Metadata window.
AnimatedTiles can be added to the xml as follows:
<sprite name="sprite_name" path="path/from/Gameplay/folder" delay="0.2" posX="0" posY="-8" origX="4" origY="4"/>
where:
delay
is the animation speed.
posX
and posY
are the position relative to the tile.
origX
and origY
are the origin of the sprite.
To add an AnimatedTile to a tileset mask, add the name
of the AnimatedTile to the sprites
attribute of the mask in your (Fore/Back)groundTiles.xml
:
<set mask="x0x-111-x1x" tiles="0,0" sprites="sprite_name"/>
Multiple AnimatedTiles can be added to a mask, separated by commas, and will be chosen from randomly.
Note
AnimatedTiles are only displayed for terrain tiles by default, and will not show up on most tile entities (DashBlock, CoverupWall, etc...)
Home
Contributing
FAQ
Useful Links
Your First Custom Map
Your First Texture Pack
Mod Setup
Custom Maps
Texture Packs
Uploading Mods
Generated Dialog Keys
Reference Code Mod🔗
Vanilla Audio IDs
Character Portraits
Mod Structure
Debug Mode
Command Line Arguments
Environment Variables
Install Issues
Common Crashes
Latency Guide
everest.yaml Setup
Mapping FAQ
Map Metadata
Vanilla Metadata Reference
Adding Custom Dialogue
Overworld Customisation
Entity & Trigger Documentation
Custom Entity List🔗
Camera
Ahorn Scripts
Custom Tilesets
Tileset Format Reference
Stylegrounds
Reskinning Entities
Skinmods
Decal Registry
Chapter Complete Screen
Custom Portraits
Adding Custom Audio
Advanced Custom Audio
Code Mod Setup
Making Code Mods
Mod Settings
Everest Events
Understanding Input
Logging
Cross-Mod Functionality
Recommended Practices
Core Migration Guide
Lönn Integration🔗
Custom Events
Adding Sprites
Adding Preexisting Audio