Sideload
Write a mod interface as HTML, CSS and JavaScript. Sideload renders the web bundle into real Unity UI and puts it on the in game phone, so an app is three files instead of a thousand lines of panel co
模組介紹 作者原文
Sideload - Web UIs for Schedule I Mods
🛟 Need help or found a bug? Get support at support.doodesch.de/sideload.
A framework, not a feature. Sideload renders mod interfaces written as index.html + app.css +
app.js into real Unity UI and TextMeshPro. No browser, no native code, no subprocess. Install it because
a mod you want depends on it.
Source + docs · Reference app (WhatsDab) · Support
Players
Sideload adds no gameplay, no menu and no phone app of its own. Mods that build their interface with it list
it as a dependency and your mod manager installs it for you. It sits idle until one of those mods registers
an app, and every developer tool inside it is off until you switch it on.
Installed by hand? Sideload.dll goes in Mods. That is all of it - AngleSharp, Jint and Esprima are inside
that one file.
Mod authors
- HTML instead of nested panels, CSS instead of sizeDelta arithmetic. Real flexbox, a real cascade,
real selectors, TextMeshPro text.
- One call for a phone app. Apps.Register(id, bundlePrefix, title) and your bundle renders behind an
icon on the in game phone. Registering before Sideload loads is fine; the call replays.
- A two way bridge. s1.call('name', arg) reaches a C# handler in the same frame and returns its string;
app.Emit('name', payload) pushes back into s1.on(...).
- Chrome DevTools. One preference and the real inspector attaches to a page running inside the game:
console, evaluate, Elements tree, reload from disk.
- No hard dependency. The Sideload.Api shim is one file with zero references. It is a no op when
Sideload is absent and lights up when it is there, so your mod ships one DLL either way.
- fetch is default deny. A page reaches no host until your mod names it with AllowHost.
Start here: WhatsDab is a complete
chat app for the in game phone, written as three web files, that you can install, read and copy. The
step by step guide, the exact CSS subset and the layout rules that differ from a browser are in the
wiki.
Requirements
Schedule I (IL2CPP) with MelonLoader 0.7.3+. No S1API.
Settings
Under Sideload_01_Main in UserData/MelonPreferences.cfg. All of it
is developer tooling and all of it is off by default.
DevTools (false) turns on the Chrome DevTools Protocol server on 127.0.0.1; anything that can reach
that port can run code in your pages, so leave it off unless you are building an app. DevToolsPort
(9333) is the loopback port. DevToolsAutoOpen (true) opens the browser at the landing page once the
first page mounts. DevToolsFetchFrontend (true) lets Sideload download the DevTools interface once into
UserData, so the inspector works offline afterwards. DevToolsFrontend (empty) overrides that with a
folder holding your own copy.
License
MIT. See the included LICENSE.md. Bundles AngleSharp (MIT) and Jint with Esprima (BSD-2).
安裝與使用 安裝:按包內說明操作
- 解壓本站下載的壓縮包,先讀包內的 readme / 說明檔案。
- 多數模組依賴遊戲的模組載入器:常見做法是用社群模組管理器(如 r2modman)選中本遊戲安裝,由管理器自動處理載入器與依賴。
- 手動安裝時,把模組檔案放進遊戲目錄下對應的 Mod / plugins 資料夾。
- 啟動遊戲確認載入成功;帶「前置依賴」的模組需要把依賴一併安裝。
不同模組的安裝位置差異較大,包內說明是最可靠的依據。
下面這些內容需要先安裝,否則該模組不會生效: