Overworld Customisation - EverestAPI/Resources GitHub Wiki
This page details how to customise the overworld for your map. Note that you will need a meta.yaml file - see the Map Metadata page to set one up.
- Map Position on the Mountain
- Disabling the Snow
- Colors and Tinting
- Custom Textures
- Mountain/Moon Models
- Background Music and Ambience
- Marker Icon
To define your map's position, add this to the meta.yaml file:
Mountain:
Idle:
Position: [ 7.565, 8.614, -5.318 ]
Target: [ 6.210, 7.754, -4.125 ]
Select:
Position: [ 8.782, 6.271, -1.953 ]
Target: [ 6.799, 6.172, -2.194 ]
Zoom:
Position: [ 6.462, 5.235, -1.605 ]
Target: [ 4.542, 5.754, -1.819 ]
Cursor: [ 5.706, 5.492, -1.542 ]
State: 2
ShowCore: false
Rotate: true
You can get the coordinates by enabling debug mode (in Mod Options) and pressing Space on the mountain screen. Look around with the mouse, move around with WASD and move the camera up/down with Q and Z. The coordinates will be displayed on the top left.
-
Idle
defines the camera position during level selection. -
Select
defines the camera position when you selected the level and looking at checkpoint selection or side selection. -
Zoom
is the camera position when you zoom into the level after you start. -
Cursor
is the location of the Madeline cursor on the mountain. To place this, move the camera to where you want the cursor to be, then copy thePosition
coordinates. -
State
defines the lighting of the mountain: 0 is night, 1 is dawn, 2 is day, 3 is moon. -
ShowCore
decides whether the Core Heart should be shown on the Mountain. -
Rotate
decides whether the camera should rotate around the Mountain.
If you just want to copy the coordinates of a vanilla chapter, have a look at the Vanilla Metadata Reference.
Mountain:
ShowSnow: false
This will turn off the snow that is falling on the mountain, or floating in space.
Some textures and objects used in the overworld are tinted with colors you can customize. Here is what you can put in your meta.yaml (here with values used in vanilla):
Mountain:
FogColors:
- 010817
- 13203E
- 281A35
- 010817
StarFogColor: 020915
StarStreamColors:
- 000000
- 9228e2
- 30ffff
StarBeltColors1:
- 53f3dd
- 53c9f3
StarBeltColors2:
- ab6ffa
- fa70ea
-
FogColors
are the colors of the fog on the mountain, for eachState
(see Map Position On The Mountain). 2 colors will be used by the game: the one for the state your custom mountain uses, and the first one (state 0) on the main menu. Defining all the values isn't mandatory: if you define less than 4 values, the others will be at their default. This means if you're using state 0, you only need 1 value. -
StarFogColor
is the color of the fog in space. -
StarStreamColors
is the color of the "streams" visible behind the moon. Check this image 🔗 to visualize what they are when set to red, green and blue. You have to specify exactly 3 values if you use this. -
StarBeltColors1
andStarBeltColors2
are the colors of the small stars rotating around the moon. They are dispatched in 2 "belts" that are slightly misaligned between each other. You can specify any number of colors for each one, star colors will be picked randomly among the colors you give. If you give an empty array (StarBeltColors1: []
), the star belt will be removed.
To change the mountain textures when your map is selected, you can define a custom model directory in your map meta.yaml:
Mountain:
MountainTextureDirectory: yourname/campaignname
After defining that, you can drop your custom textures in Mods/yourmod/Graphics/Atlases/Mountain/yourname/campaignname
.
You can find the vanilla mountain textures in the graphics dump, in Graphics/Atlases/Mountain
. buildings
, mountain
and skybox
have 3 textures, depending on the mountain State
(0 is night, 1 is dawn, 2 is day; see the Map Position On The Mountain section).
If you added extra models, you should add their textures in this directory: for example, extra1_2.png
will be the texture applied to extra1.obj
when the mountain is in state 2 (day).
You can customize the mountain 3D models that are displayed when your map is selected.
- You can find the vanilla mountain models in the
Content/Overworld
folder. If you need to add more models than there are in vanilla in the overworld, you can add them in the same folder, naming themextra0.obj
,extra1.obj
, etc.
-
Learn low poly modelling in Blender, this tutorial 🔗 might be helpful.
-
Make a new file in Blender and import the default mountain model, you can do this by going to
File > Import > OBJ
and opening it (it’s located inContent/Overworld
relative to Celeste.exe) -
Delete the camera, light and default cube, then select all the imported models and press M to move them to a new collection, then press the
white_check_mark
button by the newly created collection to hide the default mountain. -
Model your mountain, you can toggle the normal mountain on and off for size reference using the white_check_mark next to the normal mountain’s collection.
-
Texturing. Here are a few things to keep in mind: you can only use one texture file (there is an exception to this rule that will be seen later), any light and shadow has to be baked into the texture file (hopefully there should be some tutorials for this out there), as Celeste doesn’t render it. It's not sure if you need to have the image be squared. You can also use the same method used in the video if you don’t really care about light and shadow on your mountain.
5.5. If you can't fit all your models onto one texture, you can split your model into multiple .obj files, each with it's own texture.
-
Once you feel done with modelling and such, Select your model(s), go into edit mode and select everything with A, then press Control + T to triangulate your model.
-
Once you are done with all the previous steps, save your blend file, then delete everything you don’t want to import into Celeste. Go to
File > Export > OBJ
and export your file toMods/YourMod/Mountain/yourname/campaignname/mountain.obj
7.5. Any extra models would be
buildings.obj
orextra0.obj
,extra1.obj
, etc. -
Export/Copy the texture file you’re using to
Mods/YourMod/Graphics/Atlases/Mountain/yourname/campaignname/mountain_0.png
8.5 Replace the
0
inmountain_0.png
with1
or2
if you want your mountain to have a different texture depending on the State of the mountain. Any extra models would be buildings_0.png or extra0_0.png, extra10.png, etc. -
(optional) If you want a custom skybox, the original is located in
Graphics/Atlases/Mountain/skybox.png
if you need a reference. When you've made one, place it inMods/YourMod/Graphics/Atlases/Mountain/yourname/campaignname/skybox_0.png
.9.5 Replace the
0
inskybox_0.png
with1
or2
if you want your skybox to have a different texture depending on the State of the mountain. -
Define a custom model directory in your map meta.yaml:
Mountain:
MountainModelDirectory: Mountain/yourname/campaignname
- Drop your custom objects in
Mods/yourmod/Mountain/yourname/campaignname
.
Once you are done with all previous steps, copy this .obj file 🔗 to Mods/YourMod/Mountain/yourname/campaignname/whateverobjfilesyourenotusing
(*you can check by going to Content/Overworld
and using whatever .obj files you don't already have in your mod.).
ℹ️ Be sure to use models using triangles for their faces; some display issues might occur otherwise.
ℹ️ For best results, create your models using Blender. Models created with other 3D modeling software might not work properly unless resaved in Blender.
For a different background music and ambience to play when the player selects your map, use this in your map meta.yaml:
Mountain:
BackgroundMusic: event:/maddie480/test_music
BackgroundAmbience: event:/env/amb/06_lake
Note that both are optional: if you want custom music but the default ambience, you can omit BackgroundAmbience
.
Check the custom audio tutorial to make the game load your custom music.
You can also set music params through metadata, following the following format:
Mountain:
BackgroundMusicParams:
param1: value1
param2: value2
For example, this is what you want to use if you want to have the Farewell background music on your map:
Mountain:
BackgroundMusicParams:
moon: 1
Mountain:
MarkerTexture: marker/Fall
⬆️ this meta.yaml setting changes the marker/pin visible on the overworld map. Vanilla ships with those 3:
marker/Fall |
marker/runBackpack |
marker/runNoBackpack |
---|---|---|
If you want to use a custom animation, put all of its frames in Graphics/Atlases/Mountain/marker/yournickname/campaignname/pinname00.png
, pinname01.png
... and put marker/yournickname/campaignname/pinname
here.