v0.2.0
Pre-release
Pre-release
⚠️ This is a breaking update. If you are not a developer, please wait to update so that developers have enough time to update their mods. ⚠️
Consider joining our Discord server, The Deli Counter, for update news and support.
Changelog
Feature summary (not all-encompassing):
- Globbing
- Version checking
- Patching
- Minor QoL changes
Breaking Changes
Manifest
assetshas been split into the optional dictionariespatcherandruntime.- Mods with
0total assets (patcher+runtime) will now fail to load.- Old manifests will give this error
Framework
- Deli is now 2 libraries
Deliperforms bootstrapping and patchingDeli.RuntimehandlesDeliBehaviours (formerlyDeliMods)
Mod- Now a class
Logproperty is nowLogger
DeliModis nowDeliBehaviour- "Deli mods" are the archives files Deli loads
DeliModwas too similar to "Deli mod"
DeliBehaviour.BaseModis nowDeliBehaviour.Source- Several interface implementations have been marked as
internal. It is unlikely you were using these.
Features
Manifest
- Path globbing
?: match any character*: match any amount of characters
- Optional
sourceUrlmanifest property- URL to your mod's webpage
- Examples: GitHub/GitLab repository, BoneTome/NexusMods mod page
dependenciesis now optional
Filesystem
- Deli will now load
.delifiles on top of the current.zipfiles. Please rename your archives to.deli, users keep extracting zip files.
Framework
Deli(static class)- Centralized static API for the Deli framework
- Replacement for and is safer than most non-generic kernel calls
DeliRuntime(static class)- Centralized static API for runtime code
DeliConstants(static class)- Previously internal, now public class
- Has lots of information, including version, used Deli
DeliBehaviournow has convienience properties- They fulfill BepInEx's
BaseUnityPluginAPI, but this may change. - Allows for easy BepInEx plugin porting
- They fulfill BepInEx's
IPatcher- BepInEx-like patcher interface
- Allows for patchers through Deli
- Add your own by calling
Deli.AddPatcher
IVersionCheckable- Provides version checking for a domain
- Uses
sourceUrlto generate anIVersionChecker- Performs an async version fetch
- Requires no dependencies; checking is done where possible.
- GitHub URLs are implemented via
Deli.Core.
- RegEx mod asset search
- See
IFindableIO, implemented byIResourceIOfor RegEx support
- See
Deli.Core
- Native (
DllImport) assembly asset loader- Name:
assembly.native - Path: a native assembly
- Name:
- GitHub version checkable
- Domain:
github.com
- Domain:
Deli.MonoMod
- Newly created
- MonoMod patch asset loader
- Name:
monomod - Path: a MonoMod patch named as
[Assembly].mm.dll
- Name:
Fixes
- Symbolically linked mods no longer cause exceptions
- Fields and properties in
DeliBehaviourare no longer null in the constructor.