外观
本教程将带你创建一张非常简单的自定义地图,并将其打包为可发布的状态。
本页假定你已经安装好了 Everest 🔗。
目录:
必备软件
通过 Olympus 🔗 安装 Lönn 🔗,或者下载并解压最新的 GitHub Release 🔗。
模组搭建
按照 模组搭建教程 来搭建你的模组。
在你的模组文件夹内创建以下文件夹。Maps 文件夹应该与 everest.yaml 文件同级:
Celeste
- Mods
- MyExampleMod
- Maps
- MyName
- MyExampleMod配置 Lönn
启动 Lönn,并在提示时选择你 Celeste 安装目录下的 Celeste.exe 文件(如果你在 core 分支上,则选择 Celeste.dll)。
默认情况下,Lönn 会打开原版的 Summit 地图。不要去编辑它。在菜单中选择 File -> New 来创建一张新地图。

创建地图
创建房间
首先通过 Room -> Add 创建一个房间。在出现的窗口中,为你的房间输入一个名称(例如:"a-00"),点击 Save changes,然后点击 Close window。
滚动滚轮可以缩放视图,按住右键拖动画布可以将房间居中到屏幕上。
添加图块
现在添加一些图块。在屏幕右侧的菜单中,选择 Brush -> Foreground Tiles -> Stone,然后在房间内点击并拖动来绘制图块。 
添加出生点
最后,通过选择 Placements -> Entities -> Player (Spawn Point) 来添加一个出生点。注意选择菜单底部的搜索栏,一个常见的错误是搜索栏里残留了内容,导致没有任何放置项或图块显示出来。 
⚠️ 每个可游玩的房间 必须 包含至少一个 Player Spawn Point(玩家出生点)实体。
保存地图
在菜单中选择 File -> Save 打开保存窗口。在窗口内,导航到你之前在 模组搭建 中创建的文件夹。将地图保存到 Celeste/Mods/MyExampleMod/Maps/MyName/MyExampleMod/,命名为 MyMap.bin。
游玩你的地图
使用 DEBUG 存档文件 启动 Everest,并进入地图选择界面。在这里你可以使用上下方向键在关卡合集(level sets)之间切换,或按 Journal 按钮进行搜索。
找到你的地图并打开它。它目前会以 MyName_MyExampleMod_MyMap 的名称显示在 MyName_MyExampleMod 关卡合集中。这些问题将在 本教程后面的部分 解决。
如果在加载地图时遇到任何错误,请把它们发布到 Celeste Discord 🔗 服务器的 #modding_help 频道。
添加更多房间
回到 Lönn,再次打开 Room -> Add 菜单。给它一个新名称(例如:"a-01"),按下 Save changes 和 Close window。
ℹ️ 新房间可能会创建在现有房间的上方,导致看起来像是空的。
按住 Alt 的同时使用方向键可以移动新房间。把它移动到现有房间旁边,让它们相邻但不重叠。
现在,重复添加图块和 Player (Spawn Point) 实体的过程。 
保存地图后,Everest 中的内容应该会刷新以显示新的更改。
修改名称
如前所述,地图当前显示的名称是 MyName_MyExampleMod_MyMap,它反映的是 .bin 文件的存放位置。
你可以通过向游戏添加合适的 对话键(dialog keys) 把它改成任何你想要的名称。
首先在你的模组里 Maps 文件夹旁新建一个文件夹,命名为 Dialog。在其中创建一个名为 English.txt 的文本文件。你的模组现在应该有这样的结构:
Celeste
- Mods
- MyExampleMod
- Dialog
- English.txt
- Maps
- MyName
- MyExampleMod
- MyMap.bin
- everest.yaml打开 English.txt 文件并添加以下文本:
sh
MyName_MyExampleMod= A Cool Campaign
MyName_MyExampleMod_MyMap= My First Map这将同时设置关卡选择界面中地图的名称和关卡合集的名称。
打包你的模组
既然你已经为模组配置好了 everest.yaml,打包只需要把它压缩成一个 zip 归档即可。
⚠️ 请确保压缩的是模组文件夹的 内容,而不是文件夹本身 
⚠️ 不要把压缩包版本和文件夹版本放在一起,否则会导致资源冲突问题。只在需要把模组发给别人时才压缩它。
技巧与提示
结束关卡
关卡可以通过 Complete Area(通关区域)触发器结束,或者当地图元数据中启用了 End Level on Heart 时,用 Crystal Heart(水晶之心)结束。
防止回溯
防止玩家返回上一个房间的标准做法是:在你想让玩家停留的房间屏幕外放置一个 Invisible Barrier(隐形屏障)。该屏障只会在玩家进入该房间时才加载,因此不会阻止玩家离开上一个房间。
那个东西叫什么名字?
如果你不确定某个实体叫什么,请查看原版的 实体与触发器列表 🔗 以及 自定义实体列表 🔗 来查找模组实体的名称。