You are viewing a potentially older version of this package. View all versions.
Smooth_Salad-IVYL-1.1.0 icon

IVYL

Another RoR2 modding library

Date uploaded 7 months ago
Version 1.1.0
Download link Smooth_Salad-IVYL-1.1.0.zip
Downloads 20275
Dependency string Smooth_Salad-IVYL-1.1.0

This mod requires the following mods to function

RiskofThunder-HookGenPatcher-1.2.3 icon
RiskofThunder-HookGenPatcher

MMHOOK generation at runtime.

Preferred version: 1.2.3
RiskofThunder-R2API_ArtifactCode-1.0.1 icon
RiskofThunder-R2API_ArtifactCode

API for making Artifact Codes

Preferred version: 1.0.1
bbepis-BepInExPack-5.4.2113 icon
bbepis-BepInExPack

Unified BepInEx all-in-one modding pack - plugin framework, detour library

Preferred version: 5.4.2113
RiskofThunder-R2API_Elites-1.0.3 icon
RiskofThunder-R2API_Elites

API for adding custom elite types

Preferred version: 1.0.3
RiskofThunder-R2API_Difficulty-1.1.2 icon
RiskofThunder-R2API_Difficulty

API for adding custom in-game difficulties

Preferred version: 1.1.2

README

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
  • 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 and ExpansionPackage
    • Add BaseContentPlugin: a specialized plugin with a generic implementation of IContentPackProvider. This comes with the goal of making asynchronous content loading more approachable
    • Add content pack extensions to replace ContentPackage functionality
  • Remove RecalculateStatsAPI dependency
    • Remove IOnGetStatCoefficientsReciever
  • Remove a few other overly-specific util classes and merge the rest into the Ivyl class
  • Remove RoR2Asset and RoR2AssetGroup
    • 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 named NetworkSoundEventDef.SetFlags
  • Add RoR2Asset and RoR2AssetGroup for managing addressable assets
  • Add Prefabs.CreatePrefab and Prefabs.ClonePrefab for runtime prefab creation
  • Minor stubbed shader swapping optimizations

1.0.0

  • First release