Skip to content

Setting up AltSidesHelper for your map

XavierShrier edited this page Jul 23, 2021 · 5 revisions

To use any of AltSidesHelper's customizations, you'll need to add extra metadata to your map stored in YAML files next to your map.

Similar to Everest's {map name}.meta.yaml, you'll need to create a {map name}.altsideshelper.meta.yaml for every map you want to customize, or add as an alt-side.

Notes for alt-side maps

When making an alt-side, save it as a .bin as usual. The map file must not end in -B, -C, -H, or -X, or otherwise be recognized as a B-Side or C-Side by Everest - that will produce crashes. Ensure that the map is sorted last alphabetically, such as by appending Z- or 99- to the start - not doing so can mess up your campaign's overworld (sorry!).

For the A-Side

An "A-Side" is used here to refer to a regular map that's being customized, or the A-Side for a map with alt-sides. Here's an example for the A-Side map examplemodder/ExampleMod/ExampleMap.bin's alt-side meta:

Sides:
- OverrideVanillaSideData: true
  Preset: "a-side"
  ShowHeartPoem: true
- Map: "examplemodder/ExampleMod/ExampleMap-D"
  Preset: "d-side"
  ShowBerriesAsGolden: true

This file would modify the A-Side's heart to show no text when collected, and add the map examplemodder/ExampleMod/ExampleMap-D.bin as a D-Side (using AltSidesHelper's D-Side assets) that shows it's berries as golden berries on the chapter panel.

If you're not familiar with the YAML format, I recommend using a YAML validator website to check your formatting. In short: each bullet point starts another entry, which can either be an additional map added as an alt-side (by specifying the Map field), or a set of customizations to be applied to the A-Side (by specifying OverrideVanillaSideData: true). The full list of fields that can be set is detailed in the Fields section below.

For the alt-side

Here's what the alt-side meta for the D-Side in the previous example would look like.

AltSideData:
  IsAltSide: true
  For: "examplemodder/ExampleMod/ExampleMap"

There's not much to be customised here. IsAltSide should be set to true for any map that is an alt-side, so that it can be hidden from the overworld. For should be set to the ID (path minus .bin) for the A-Side, so that AltSidesHelper can find it's customizations.

The field CopyEndScreenData can also be set, and defaults to true. When on, the alt-side will use the end screen of the A-Side when completed (with different text). If this is disabled, you can set it separately in the {map name}.meta.yaml like normal.

Here's the full list of attributes that can be set in the A-Side meta, for each side. Attributes for more customisation (e.g. end screen music, columns in journal) are planned. Journal customisation will likely involve a level-set specific meta file for adding columns (such as for deaths).

Table of Contents

Meta

Map

The ID of the map to be used - the map's path from Maps/, minus .bin.

Preset

One of a-side, b-side, c-side, d-side, and none (default). Setting this will set all attributes that you haven't specified, to follow that particular side, with d-side using assets provided by AltSidesHelper. You can leave this unset (or set to none) to set all values manually. These values are listed for each attribute.

OverrideVanillaSideData

If true, the A-Side will have its data modified, rather than creating a new side. See "Changing A-Side data". (false)

OverrideHeartTextures

Whether the in-world heart, chapter panel heart, and heart poem textures and colours should be overriden to match ChapterPanelHeartIcon, HeartColour, and InWorldHeartIcon. true by default, but you might want to disable this if you're using e.g. Collab Utils 2's options for overriding the heart textures and colour.

UnlockMode

Decides when the alt-side should be available for selection. You may specify it as one of:

  • consecutively (default), which unlocks this alt-side after the previous mode
  • always, which makes this alt-side always available (if the A-Side is unlocked)
  • triggered, which makes this alt-side hidden until it's unlocked by an Alt-side Cassette or Alt-side Unlock Trigger
  • with_previous, which unlocks this alt-side when the previous one is unlocked
  • c_sides_unlocked, which unlocks this alt-side when C-Sides are unlocked for that save file

Overworld

Icon

The image to be displayed on the chapter select panel banner for that side for that side. menu/play (backpack), menu/remix (cassette), menu/rmx2 (c-side cassette), menu/leppa/AltSidesHelper/rmx3 (d-side cassette)

Label

The dialog key of text that appears when this side is selected. (A-Side is OVERWORLD_NORMAL, B-Side is OVERWORLD_REMIX, C-Side is OVERWORLD_REMIX2, D-Side is leppa_AltSidesHelper_overworld_remix3.)

ShowBerriesAsGolden

Decides whether strawberries should be shown as golden berries on the chapter panel, like in a vanilla B/C-Side. false by default, but you will want to set this for any side that has no red berries.

DeathsIcon

The image to be used for the deaths counter. (collectables/skullBlue, collectables/skullRed, collectables/skullGold, collectables/skullGold)

ChapterPanelHeartIcon

The sprite set to be used for the crystal heart on the chapter panel and when displaying the heart poem. Note that you must append an additional / at the end of the filepath for this to register. (collectables/heartgem/0/spin/, collectables/heartgem/1/spin/, collectables/heartgem/2/spin/, collectables/leppa/AltSidesHelper/heartgem/dside/ (a grey heart))

JournalHeartIcon

The texture to be used for the crystal heart in the journal, in the Journal atlas. Also used for the file select screen. (heartgem0, heartgem1, heartgem2, leppa/AltSidesHelper/heartgemD)

In-Game

HeartColour

The colour of the text and lines in the heart poem, and the heart's particles and light, specified as a hex value. (8cc7fa, ff668a, fffc24, ffffff)

InWorldHeartIcon

The textures to be used for the crystal heart entity. (collectables/heartGem/0, collectables/heartGem/1, collectables/heartGem/2, collectables/heartGem/3)

ShowHeartPoem

Whether the crystal heart should show text when collected. (true, except in c-side.)

EndScreenTitle

The dialog key of the text to be displayed on the end screen. If this is unset, or set to nothing, it won't be modified. (AREACOMPLETE_NORMAL, AREACOMPLETE_BSIDE, AREACOMPLETE_CSIDE, leppa_AltSidesHelper_areacomplete_dside)

ShowBSideRemixIntro

Whether the music remix title, artist, and album should be displayed when entering the chapter.

  • Setting the "{map name}_remix_artist", "{map name}_remix", and "{map name}_remix_album" dialog keys will display those just like a vanilla B-Side.
  • Setting the "{map name}_altsides_remix_intro" dialog key will allow your to instead write your own list of text, with as many lines as you want.

Full Clear

CanFullClear

Determines whether the other full clear options (Heart/CassetteNeededForFullClear) are considered. If true, EndScreenClearTitle will be used for the end screen title after a full clear. You can use this with the b-side or c-side presets to create a B/C side that can be full-cleared. Do also note that if you have every Berry, Heart, and Cassette in the level, it will always register as a full clear, regardless of what's set here. (false)

CassetteNeededForFullClear

Whether the player must collect a cassette (vanilla or alt-side) to full clear the map in question. This is especially important for maps that lack a Cassette but you want to be full clear-able. (true) by default.

HeartNeededForFullClear

Whether the player must collect a crystal heart to full clear. (true)

EndScreenClearTitle

If CanFullClear is set to true, this dialog key will be used for the title on the end screen after a full clear. If this is unset, or set to nothing, it won't be modified. (AREACOMPLETE_NORMAL_FULLCLEAR, leppa_AltSidesHelper_areacomplete_fullclear_bside, leppa_AltSidesHelper_areacomplete_fullclear_cside, leppa_AltSidesHelper_areacomplete_fullclear_dside)

Clone this wiki locally