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

IVYL

Another RoR2 modding library - now with documentation!

Date uploaded 10 months ago
Version 2.0.0
Download link Smooth_Salad-IVYL-2.0.0.zip
Downloads 50694
Dependency string Smooth_Salad-IVYL-2.0.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 made to support high-quality runtime mods.

Key Features

Content Management

Quickly and safely define items, equipment, artifacts, and more.

See: ContentPackExtensions, ItemExtensions, EquipmentExtensions, etc.

Asynchronous Framework

Implement simple asynchronous content loading.

See: BaseContentPlugin

Modular Codebase

Organize your mod into modular components that can be individually managed.

See: BaseModule attribute

Language

Create formatted and easily translatable language files directly within your project.

See: LanguageStrings attribute

Miscellaneous Utils

A collection of static and extension methods to handle common operations.

See: Ivyl

And More!

IVYL is a work-in-progress! Expect improvements over time

Contact

For questions, suggestions, or feedback, you can find me in the RoR2 Modding Server @Groove_Salad or through the GitHub

Even if it's just a documentation typo (especially if it's just a documentation typo), don't hesitate to reach out!

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