Date uploaded | a year ago |
Version | 1.1.0 |
Download link | Smooth_Salad-IVYL-1.1.0.zip |
Downloads | 21015 |
Dependency string | Smooth_Salad-IVYL-1.1.0 |
This mod requires the following mods to function
bbepis-BepInExPack
Unified BepInEx all-in-one modding pack - plugin framework, detour library
Preferred version: 5.4.2113README
Ivy Library
IVYL is a static library for RoR2 modding, built to streamline the repetitive apsects of runtime-based mods.
IVYL makes use of a BepInEx patcher to implement some features.
Content Management
Quickly and safely define items, equipment, artifacts, and more. Optionally associate your mod's content with an expansion.
See:
ContentPackage
,ExpansionPackage
Asset Management
Load asset bundles directly from your mod plugin, and swap out stubbed shaders with no fuss.
See:
BaseUnityPlugin.LoadAssetBundle
,BaseUnityPlugin.LoadAssetBundleAsync
,StubbedShaderSwapper
Project Structure
Use plugin components to organize your project and even generate customizable configuration files.
See:
PluginComponent
attribute,BepInConfig
attribute
Asynchronous Framework
Simple API to load vanilla RoR2 assets synchronously or asynchronously.
See:
RoR2Asset
,RoR2AssetGroup
Language
Create formatted and easily translatable language files directly within your project.
See:
LanguageStrings
attribute
And More!
IVYL is a work-in-progress! Expect improvements over time
Contact
Don't hesitate to reach out! You can find me in the Spikestrip Modding Server @Groove_Salad
CHANGELOG
2.0.0
This update is huge; the change list will not be exhaustive
- Remove IvylPatcher
- Remove
BepInConfig
attribute - Remove
PluginComponent
attribute and system - Add
BaseModuleAttribute
: this is an experimental feature intended replace plugin component functionality with a more customizable system built on searchable attributes
- Remove
- Add XML documentation to relevant classes and methods
- Update file structure (introducing...folders!)
- "Ivyl" namespace renamed to "IvyLibrary"
- Shader swapping has been improved and moved to ShaderSwapper
- Remove
ContentPackage
andExpansionPackage
- Add
BaseContentPlugin
: a specialized plugin with a generic implementation ofIContentPackProvider
. This comes with the goal of making asynchronous content loading more approachable - Add content pack extensions to replace
ContentPackage
functionality
- Add
- Remove RecalculateStatsAPI dependency
- Remove
IOnGetStatCoefficientsReciever
- Remove
- Remove a few other overly-specific util classes and merge the rest into the
Ivyl
class - Remove
RoR2Asset
andRoR2AssetGroup
- These didn't play nice with the RoR2 content loading systems
- Add utils to
Ivyl
for loading both addressable and bundled assets
- Tons of other quality of life and bug fixes!
1.1.0 - Async all the way down
- Add
ArtifactCode.CopyToFormulaDisplayAsync
- Content packages now generate asset ids for networked prefabs with empty asset ids
- Expansion package now loads the default expansion disabled icon asynchronously
- Add `ArtifactCompound.FindArtifactCompoundDefAsync'
- Fix
NetworkSoundEventDef.SetEventName
being mistakenly namedNetworkSoundEventDef.SetFlags
- Add
RoR2Asset
andRoR2AssetGroup
for managing addressable assets - Add
Prefabs.CreatePrefab
andPrefabs.ClonePrefab
for runtime prefab creation - Minor stubbed shader swapping optimizations
1.0.0
- First release