Skip to content

Interop

Repeat edited this page May 24, 2024 · 11 revisions

To use Interop effectively, you need to learn how the code works! Read about it here.

Also, I'm not gonna explain how to use another mod's Interop here. You can use the Everest Wiki.

Graffiti compatibile characters

AddGraffitiCharacter(string characterID):

Adds compatibility for a skin with the ID <characterID> to use graffiti.

Custom Art Spots (All of these ones are not finished yet and should not be used)

AddTextureNamespaces(string textureNamespace, string textureReplaceNamespace):

Adds a textureNamespace/textureReplaceNamespace, and returns the index. If it returns -1, then something in the code went wrong.

AddArtSpotsLocation(string LevelIn):

Adds a new location for artSpots and hasArtSpots. (This will not break if two mods try to create the same level, but it will slightly affect performance!)

AddArtSpots(string LevelIn, int[][] theArtSpots):

Adds art spots to the specified level.

AddArtSpot(string LevelIn, int[] theArtSpot):

Adds a single art spot to the specified level. Slightly optimized over using AddArtSpots with only one art spot added.

Custom Decals

AddDecalNamespace(string decalNamespace):

Adds a DecalNamespace, and returns the index. Be sure to pair with AddTextureNamespaces!

AddCustomDecalsLocation(string LevelIn):

Adds a new location for customDecals and hasCustomDecals. (This will not break if two mods try to create the same level, but it will slightly affect performance!)

AddCustomDecals(string LevelIn, int[][] theCustomDecals):

Adds custom decals to the specified level.

AddCustomDecal(string LevelIn,int[] theCustomDecal):

Adds a single custom decal to the specified level. Slightly optimized over using AddCustomDecals with only one decal added.

Miscellaneous

AddAlsoReplace(int[] AddedArray):

Adds an entry to AlsoReplace. This does require you to look at the code to understand.

Examples

Adding an Art Spot for an existing texture in textureNamespaces in a custom level:

// Sets up your mod for being a location with Art Spots.
AddArtSpotsLocation("MyEpicMod/Maps/MyLevel_Normal");
// Sets up your art spot.
AddArtSpot("MyEpicMod/Maps/MyLevel_Normal",[0,0,320,240,0]); // Makes the Art Spot be a rectangle starting at (0,0), and being 320x240. It replaces the intro car.

Adding a custom decal (from custom files) to any existing level

// Existing files: Two pngs, named epic_graffiti_x and epic_graffiti_y, in the folder named MyMod/Graphics/Atlases/Gameplay/decals/mymod/graffiti/
// Creates the decal, and stores the index.
var myIndex = AddDecalNamespace("decals/mymod/graffiti/epic_graffiti");
// Adds the location for the decal, assuming it hasn't been added yet.
AddCustomDecalsLocation("Celeste/8-Core");
// Adds the decal to the level at coordinates (50,50).
AddCustomDecal("Celeste/8-Core", [50,50,1,1,0,myIndex]);

Letting a custom character use graffiti

// No way, a banana man with a spray paint can!
AddGraffitiCharacter("Monk_Scug");
AddGraffitiCharacter("Monk_Scug_Silhouette");