Skip to content
Maddie edited this page Jan 3, 2024 · 2 revisions

Contort Helper is a code mod that allows you to contort and bend Celeste to your will with a variety of effects, entities, controllers, and triggers.

⚠️ There are flashing, photosensitive, and potentially dangerous effects that can be used in here. You can enable or disable them in the Mod Options if needed.

ℹ️ If your game crashes or a room isn't loading, consult the error.log or log.txt. If you still don't have a clue, you can message the author on Discord at Mün#0001 or ping them in the Official Celeste Discord Server.

Internal

Contort Helper can also be interpreted as a Helper Helper, as there is lots of internal code that makes life easier for coding mods.

Backdrops Manager

A manager that handles custom backdrops and cleans up lots of boiler-plate code. More information about this manager can be seen in the description in the Backdrops section.

Effects/Shader Manager

A manager that handles compiled (.cso) custom effects and its parameters. More information about this manager can be seen in the description in the Effects/Shaders section.

Extension Methods

Static classes that add more methods to EntityData and BinaryPacker.Element for ease.

Abstract Triggers

Abstract classes that remove lots of boiler-plate code.

Ahorn Library

A library for Ahorn which has lots of handy dictionaries and arrays. You can call this library by Ahorn.ContortHelper.

Utility Classes

Static classes that convert a string value to a respected value, such as converting strings to a Color or an Ease.Easer.

Storage Dictionaries

Dictionaries that can be called internally and give off an easier access of values.

Backdrops

High-Resolution backdrops is one of Contort Helper's specialties. Although only one is implemented, it is planned that there will be a system for creating your own high-resolution backdrops eventually.

To use Contort Helpers backdrop system, make sure your class extends Celeste.Backdrop and you have the CustomBackdrop attribute associated with your class (you'll need to put the ids for the backdrop, similar to how CustomEntity works).

You'll also need a constructor with the following signatures: MapData, BinaryPacker.Element, BinaryPacker.Element (map, child, above), Mapdata, BinaryPacker.Element (map, child), MapData (map), and BinaryPacker.Element (child).

Lastly, you need the BackdropsManager.LoadNamespace and BackdropsManager.Unloadnamespace methods in your module class so you can load and unload your backdrops.

High-Resolution Particle Backdrop

A backdrop that uses a texture (overlay) and a particle texture (snow) to create a snowy theme in the highest resolution.

Effects and Shaders

ℹ️ If you need help making your own custom effect/shader, contact the author.

Rainbow

An effect/shader that gives off a rainbow hue.

Light-Beams

An effect/shader that adds a sine of moving light-beams.

Multiverse

An effect/shader that bends your surroundings around you!