Skip to content
Beta: this is a preview of the new SplitScreen.Me. Data may be reset before launch.

Celeste · handler “CelesteNet”

Version 7

Release notes

new local server and new backup fuctions for the save folder, requires Nucleus 2.3.1, back up your celeste saves in the instances folders before updating.

Released
Size
20.9 MB
Downloads
197
Check
Verified
SHA-256
3387d744c940cb69e68a20b9063eab5e0d5b26f9803da517ff0a2820a617cb81
Download v7 (.nc)All versions

Files 81

PathSize
Celeste/Celeste ultrawide 32x9.exe30 KB
Celeste/CelesteNet.Server-2024-09-23/celestenet-config.yaml1.7 KB
Celeste/CelesteNet.Server-2024-09-23/CelesteNet.Server.deps.json37 KB
Celeste/CelesteNet.Server-2024-09-23/CelesteNet.Server.dll157 KB
Celeste/CelesteNet.Server-2024-09-23/CelesteNet.Server.exe154 KB
Celeste/CelesteNet.Server-2024-09-23/CelesteNet.Server.runtimeconfig.json147 B
Celeste/CelesteNet.Server-2024-09-23/CelesteNet.Shared.dll380 KB
Celeste/CelesteNet.Server-2024-09-23/FNA.dll2.0 MB
Celeste/CelesteNet.Server-2024-09-23/FNA.xml570 KB
Celeste/CelesteNet.Server-2024-09-23/MessagePack.Annotations.dll12 KB
Celeste/CelesteNet.Server-2024-09-23/MessagePack.dll319 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.AspNetCore.Hosting.Abstractions.dll22 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll15 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.AspNetCore.Http.Abstractions.dll74 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.AspNetCore.Http.Extensions.dll38 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.AspNetCore.Http.Features.dll31 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.AspNetCore.StaticFiles.dll69 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.CodeAnalysis.CSharp.dll6.2 MB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.CodeAnalysis.dll2.8 MB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.CodeAnalysis.VisualBasic.dll4.7 MB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Data.Sqlite.dll170 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Extensions.Configuration.Abstractions.dll20 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Extensions.DependencyInjection.Abstractions.dll37 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Extensions.FileProviders.Abstractions.dll18 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Extensions.Hosting.Abstractions.dll22 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Extensions.Logging.Abstractions.dll47 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Extensions.Options.dll43 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Extensions.Primitives.dll36 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Extensions.WebEncoders.dll19 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Net.Http.Headers.dll73 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.NET.StringTools.dll30 KB
Celeste/CelesteNet.Server-2024-09-23/Microsoft.Win32.SystemEvents.dll26 KB
Celeste/CelesteNet.Server-2024-09-23/Modules/CelesteNet.Server.ChatModule.deps.json39 KB
Celeste/CelesteNet.Server-2024-09-23/Modules/CelesteNet.Server.ChatModule.dll84 KB
Celeste/CelesteNet.Server-2024-09-23/Modules/CelesteNet.Server.FrontendModule.deps.json42 KB
Celeste/CelesteNet.Server-2024-09-23/Modules/CelesteNet.Server.FrontendModule.dll122 KB
Celeste/CelesteNet.Server-2024-09-23/Modules/CelesteNet.Server.SqliteModule.deps.json40 KB
Celeste/CelesteNet.Server-2024-09-23/Modules/CelesteNet.Server.SqliteModule.dll52 KB
Celeste/CelesteNet.Server-2024-09-23/Modules/CelesteNet.Shared.dll380 KB
Celeste/CelesteNet.Server-2024-09-23/Modules/SixLabors.ImageSharp.dll2.0 MB
Celeste/CelesteNet.Server-2024-09-23/Modules/SixLabors.ImageSharp.Drawing.dll176 KB
Celeste/CelesteNet.Server-2024-09-23/Modules/websocket-sharp-customheaders.dll239 KB
Celeste/CelesteNet.Server-2024-09-23/Mono.Cecil.dll349 KB
Celeste/CelesteNet.Server-2024-09-23/Mono.Cecil.Mdb.dll39 KB
Celeste/CelesteNet.Server-2024-09-23/Mono.Cecil.Pdb.dll88 KB
Celeste/CelesteNet.Server-2024-09-23/Mono.Cecil.Rocks.dll24 KB
Celeste/CelesteNet.Server-2024-09-23/Mono.Options.dll38 KB
Celeste/CelesteNet.Server-2024-09-23/MonoMod.Backports.dll24 KB
Celeste/CelesteNet.Server-2024-09-23/MonoMod.ILHelpers.dll4.0 KB
Celeste/CelesteNet.Server-2024-09-23/MonoMod.Patcher.dll74 KB
Celeste/CelesteNet.Server-2024-09-23/MonoMod.Patcher.xml10 KB
Celeste/CelesteNet.Server-2024-09-23/MonoMod.Utils.dll320 KB
Celeste/CelesteNet.Server-2024-09-23/Newtonsoft.Json.dll696 KB
Celeste/CelesteNet.Server-2024-09-23/runtimes/browser-wasm/nativeassets/net7.0/e_sqlite3.a1.1 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-arm/native/libe_sqlite3.so808 KB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-arm64/native/libe_sqlite3.so1.2 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-armel/native/libe_sqlite3.so1.1 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-mips64/native/libe_sqlite3.so1.4 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-musl-arm/native/libe_sqlite3.so1.1 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-musl-arm64/native/libe_sqlite3.so1.3 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-musl-x64/native/libe_sqlite3.so1.2 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-ppc64le/native/libe_sqlite3.so1.6 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-s390x/native/libe_sqlite3.so1.3 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-x64/native/libe_sqlite3.so1.2 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/linux-x86/native/libe_sqlite3.so1.2 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/maccatalyst-arm64/native/libe_sqlite3.dylib1.0 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/maccatalyst-x64/native/libe_sqlite3.dylib1.1 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/osx-arm64/native/libe_sqlite3.dylib1.0 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/osx-x64/native/libe_sqlite3.dylib1.1 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/win/lib/net7.0/Microsoft.Win32.SystemEvents.dll57 KB
Celeste/CelesteNet.Server-2024-09-23/runtimes/win-arm/native/e_sqlite3.dll1.1 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/win-arm64/native/e_sqlite3.dll1.4 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/win-x64/native/e_sqlite3.dll1.6 MB
Celeste/CelesteNet.Server-2024-09-23/runtimes/win-x86/native/e_sqlite3.dll1.2 MB
Celeste/CelesteNet.Server-2024-09-23/SQLitePCLRaw.batteries_v2.dll5.0 KB
Celeste/CelesteNet.Server-2024-09-23/SQLitePCLRaw.core.dll50 KB
Celeste/CelesteNet.Server-2024-09-23/SQLitePCLRaw.provider.e_sqlite3.dll35 KB
Celeste/CelesteNet.Server-2024-09-23/System.Drawing.Common.dll582 KB
Celeste/CelesteNet.Server-2024-09-23/websocket-sharp-customheaders.dll239 KB
Celeste/CelesteNet.Server-2024-09-23/YamlDotNet.dll271 KB
handler.js6.8 KB

handler.js

Plain text
Hub.Handler.Version = 7; // Released at https://hub.splitscreen.me/ on Thu Oct 24 2024 03:09:06 GMT+0000 (Coordinated Universal Time).
Hub.Handler.Id = "tH8DPxoEyihixBD5R";
Hub.Maintainer.Name = "Talos91";
Hub.Maintainer.Id = "eeL7HAz8zJovChWw4";

var answers1 = ["Yes", "No"];
var answers2 = ["No", "Yes"];
Game.AddOption(
  "Run a Local Server?",
  "Run a Celeste.Net Local server to play fully offline, in the mod options menu select connect to local server, use a different guest name per instance.",
  "Server",
  answers1
);
Game.AddOption(
  "Apply Ultra Widescreen Fix by Rose?",
  "Works to remove the black bars in horizontal split-screen and for ultra wide instances, if you have Everest already installed when the Celeste ultrawide patcher window opens change the .exe extension to .dll and click Start for the patch to apply correctly, the patcher will tell you if it was successful. Fix by: https://github.com/RoseTheFlower/UltrawideIndex/releases/tag/celeste",
  "Fix",
  answers2
);

Game.ExecutableContext = ["Content"];
Game.DirSymlinkExclusions = ["EverestSplash", "LogHistory", "Mods\\Cache", "Saves"];
Game.DirSymlinkCopyInstead = ["EverestSplash", "LogHistory", "Mods", "Mods\\Cache", "Saves"];
Game.DirExclusions = ["Backups"];
Game.FileSymlinkExclusions = ["steam_appid.txt", "log.txt", "xinput1_3.dll", "xinput1_4.dll"];
Game.FileSymlinkCopyInstead = [
  "Celeste.deps.json",
  "Celeste.Mod.mm.deps.json",
  "Celeste.dll",
  "Celeste.Mod.mm.xml",
  "Celeste.runtimeconfig.json",
  "Celeste.xml",
  "DiscordGameSDK.dll",
  "everest-launch.txt",
  "FNA.xml",
  "gamecontrollerdb.txt",
  "MiniInstaller.deps.json",
  "MiniInstaller.runtimeconfig.json",
  "miniinstaller-log.txt",
  "MonoMod.Backports.xml",
  "MonoMod.Core.xml",
  "MonoMod.Iced.xml",
  "MonoMod.Patcher.runtimeconfig.json",
  "MonoMod.Patcher.xml",
  "MonoMod.RuntimeDetour.HookGen.runtimeconfig.json",
  "MonoMod.RuntimeDetour.HookGen.xml",
  "MonoMod.RuntimeDetour.xml",
  "MonoMod.Utils.xml",
  "NETCoreifier.deps.json",
  "piton-runtime.yaml"
];
Game.BackupFolders = ["Saves"];
Game.GameName = "Celeste";
Game.HandlerInterval = 100;
Game.SymlinkExe = false;
Game.SymlinkGame = true;
Game.SymlinkFolders = true;
Game.ExecutableName = "Celeste.exe";
Game.SteamID = "504230";
Game.CreateSteamAppIdByExe = true;
Game.GUID = "Celeste";
Game.MaxPlayers = 5;
Game.MaxPlayersOneMonitor = 5;
Game.UseGoldberg = false;
Game.SetTopMostAtEnd = true;
Game.Hook.ForceFocus = true;
Game.Hook.ForceFocusWindowName = "Celeste";
Game.FakeFocus = true;
Game.FakeFocusInterval = 8000;
Game.SendFakeFocusMsg = true;
Game.HookFocus = true;
Game.ResetWindows = false;
Game.SetWindowHook = false;
//Game.RefreshWindowAfterStart = true;
Game.Hook.DInputEnabled = false;
Game.Hook.XInputEnabled = true;
Game.Hook.XInputReroute = false;
Game.XInputPlusDll = ["xinput1_3.dll", "xinput1_4.dll"];
Game.Hook.CustomDllEnabled = false;
Game.SupportsKeyboard = true;
Game.Description =
  "IMPORTANT: This handler requires the CelesteNet online multiplayer mod and the Everest mod loader to be installed in your main game files if you want to see and interact between players, use the latest Olympus installer to install both. Connect to the CelesteNet local server in the in-game mod options for all instances and start a game in the same area, use a different guest name per instance so they can connect. Your saves per instance are copies of your original ones, you can access them via Nucleus UI, after the first launch click on the wrench icon-open backup folder.";
Game.KeepSymLinkOnExit = false;
Game.PauseBetweenContextAndLaunch = 4;
Game.PauseBetweenProcessGrab = 20;
Game.PauseBetweenStarts = 25;

Game.Play = function() {
  var path = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Saves\\settings.celeste";
  Context.ChangeXmlNodeInnerTextValue(path, "//Fullscreen", "false");
  Context.ChangeXmlNodeInnerTextValue(path, "//WindowScale", "6");

  var server = Context.Options["Server"];
  var fix = Context.Options["Fix"];

  if (server == "Yes") {
    Context.RunAdditionalFiles(["1|" + Context.ScriptFolder + "\\CelesteNet.Server-2024-09-23\\CelesteNet.Server.exe"], false, 1, true, false);

    Game.KillProcessesOnClose = ["CelesteNet.Server", "cmd"];
  }

  if (server == "No") {
  }

  if (fix == "Yes") {
    Context.BackupFiles = ["Celeste.dll"];

    if (Context.AspectRatioDecimal > 1.8) {
      if (System.IO.File.Exists(Context.NucleusUserRoot + "\\NucleusCoop\\_Game Files Backup_\\Celeste\\" + Context.Nickname + "\\uwfix.txt")) {
      } else {
        var savePath = (Context.SavePath = Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Celeste ultrawide 32x9.exe");
        var savePkgOrigin = System.IO.Path.Combine(Game.Folder, "Celeste ultrawide 32x9.exe");
        System.IO.File.Copy(savePkgOrigin, savePath, true);

        Context.RunAdditionalFiles(
          ["all|" + Context.GetFolder(Nucleus.Folder.InstancedGameFolder) + "\\Celeste ultrawide 32x9.exe"],
          false,
          "" +
            Context.Nickname +
            " click OK here to launch the instance only after you applied the patch, if you have Everest already installed when the Celeste ultrawide patcher window opens change the .exe extension to .dll and click Start for the patch to apply correctly, the patcher will tell you if it was successful.",
          0,
          false,
          false,
          true,
          false
        );

        var filePath = (Context.filePath = Context.NucleusUserRoot + "\\NucleusCoop\\_Game Files Backup_\\Celeste\\" + Context.Nickname);
        System.IO.Directory.CreateDirectory(filePath);

        var uwfix = Context.NucleusUserRoot + "\\NucleusCoop\\_Game Files Backup_\\Celeste\\" + Context.Nickname + "\\uwfix.txt";
        var lines = [""];
        Context.WriteTextFile(uwfix, lines);
      }
    } else {
      var filePath = (Context.filePath = Context.NucleusUserRoot + "\\NucleusCoop\\_Game Files Backup_\\Celeste\\" + Context.Nickname);
      System.IO.Directory.CreateDirectory(filePath);

      System.IO.File.Delete(Context.NucleusUserRoot + "\\NucleusCoop\\_Game Files Backup_\\Celeste\\" + Context.Nickname + "\\uwfix.txt");

      System.IO.File.Copy(System.IO.Path.Combine(Context.RootInstallFolder, "Celeste.dll"), System.IO.Path.Combine(Context.RootFolder, "Celeste.dll"), true);
    }
  }

  if (fix == "No") {
    var filePath = (Context.filePath = Context.NucleusUserRoot + "\\NucleusCoop\\_Game Files Backup_\\Celeste\\" + Context.Nickname);
    System.IO.Directory.CreateDirectory(filePath);

    System.IO.File.Delete(Context.NucleusUserRoot + "\\NucleusCoop\\_Game Files Backup_\\Celeste\\" + Context.Nickname + "\\uwfix.txt");

    System.IO.File.Copy(System.IO.Path.Combine(Context.RootInstallFolder, "Celeste.dll"), System.IO.Path.Combine(Context.RootFolder, "Celeste.dll"), true);
  }
};