First Custom Map - EverestAPI/Resources GitHub Wiki

This tutorial involves creating a very simple custom map, and packaging it to be ready for release.

This page assumes that you have already set up Everest 🔗.

Table of Contents:

Click to expand the Table of Contents

Required software

Install Lönn 🔗 through Olympus 🔗, or by downloading and extracting (un-zipping) the latest GitHub Release 🔗.

Mod setup

Follow the Mod Setup Tutorial to set up your mod.

Create the following folders inside your mod folder. The Maps folder should be next to the everest.yaml file:

Celeste
- Mods
  - MyExampleMod
    - Maps
      - MyName
        - MyExampleMod

Setting up Lönn

Launch Lönn, and select the Celeste.exe file (or Celeste.dll if you're on the core branch) in your Celeste install folder when prompted.

By default, Lönn opens the vanilla Summit map. DO NOT EDIT IT. Select File -> New in the menu to create a new map.

New File Menu

Creating a map

Create a room

Start by creating a room with Room -> Add. In the window that appears, enter a name for your room (ex: "a-00") and click Save changes, then Close window. Create Room Window Scroll to zoom in and out, and drag the canvas while holding right click to center the room on your screen.

Add tiles

Now add some tiles. In the menu to the right of the screen, select Brush -> Foreground Tiles -> Stone, then click and drag inside the room to paint some tiles in. Tile Placement

Add a spawn point

Lastly, add a spawn point by selecting Placements -> Entities -> Player (Spawn Point). Make note of the search bar at the bottom of the selection menu, as a common mistake is to leave something in it that would cause no placements or tiles to show up. Player Spawn Point Placement

⚠️ Every playable room must contain at least one Player Spawn Point entity.

Saving your map

Select File -> Save in the menu to open a save window. Within the window, navigate to the folder you created for your mod in Mod Setup. Save your map in Celeste/Mods/MyExampleMod/Maps/MyName/MyExampleMod/ with the name MyMap.bin.

Playing your map

Launch Everest using the DEBUG save file and navigate to the map selection screen. Here you can use the up and down arrows to switch between campaigns (level sets), or press the Journal button to search.

Find your map and open it. It will currently be displayed as MyName_MyExampleMod_MyMap in the MyName_MyExampleMod campaign. These issues will be addressed later in this tutorial.

If you encounter any errors when trying to load the map, post them in the #modding_help channel of the Celeste Discord 🔗.

Adding more rooms

Back in Lönn, open the Room -> Add menu once more. Give it a new name (ex: "a-01"), and press Save changes and Close window.

ℹ️ The new room may be created on top of your existing room, making it look like it is empty.

The new room can be moved with the arrow keys while holding Alt. Move it next to the existing room, so that they are touching, but not overlapping.

Now, repeat the process of adding some tiles and a Player (Spawn Point) entity. Adding more rooms

Saving the map should cause it to be refreshed in Everest to show the new changes.

Changing the name

As mentioned previously, the name displayed for the map is currently MyName_MyExampleMod_MyMap, which reflects the location of the .bin file.

It can be set to anything you want by adding the appropriate dialog keys to the game.

Start by adding a folder next to the Maps folder in your mod, and name it Dialog. Within it, create a text file called English.txt. Your mod should now have this structure:

Celeste
- Mods
  - MyExampleMod
    - Dialog
      - English.txt
    - Maps
      - MyName
        - MyExampleMod
          - MyMap.bin
    - everest.yaml

Open the English.txt file and add the following text:

MyName_MyExampleMod= A Cool Campaign
MyName_MyExampleMod_MyMap= My First Map

This will set both the name of the map and the name of the campaign in the level select menu.

Packaging your mod

Since you already have the everest.yaml set up for your mod, all that is needed to package it is to compress it into a zip archive.

⚠️ Make sure to zip the contents of your mod folder, not the folder itself Archive the mod folder

⚠️ Don't keep a zipped version of your mod alongside the folder version, since it will cause issues with asset conflicts. Only zip your mod to send it to others.

Tips and tricks

Ending the level

A level can be ended using a Complete Area trigger, or with a Crystal Heart when End Level on Heart is enabled in the map metadata.

Preventing backtracking

The standard way of preventing the player from returning to a previous room is to place an Invisible Barrier just off-screen of the room you want the player to stay in. The barrier will only be loaded when they enter the room, so it will not prevent them from leaving the previous room.

What's ____ called?

If you're unsure what an entity is called, make sure to check the vanilla Entity and Trigger List 🔗 and the Custom Entity List 🔗 for modded entities.

Make sure to check out the sidebar of this wiki for many more resources!

⚠️ **GitHub.com Fallback** ⚠️