R2API Director

v3.1.1·Updated 2026-10-09

API for easily modifiying the Director (RoR2 monster / interactable spawner) behaviour, cloning Spawn Cards and enabling/disabling Combat Directors

About this mod Author’s original text

R2API.Director - Simplified addition of Enemies, Interactables and more to the Director Systems.

About

R2API.Director is a submodule assembly for R2API that allows mod creators to add new Entries to the Director, which allows things such as Interactables, Enemies and more to spawn in runs.

Use Cases / Features

R2API.Director is used for adding new Enemies and Interactables to the Director's SpawnCard pools, the main method of using this is with the events provided by the API, these events are:

  • StageSettingsActions (Modify the the stage settings such as the stage's monster and interactable credits.)
  • MonsterActions (Modify the stage's Monsters's DCCSPool)
  • InteractableActions (Modify the stage's Interactable's DCCSPool)

Alongside this, R2API.Director also comes bundled with DirectorAPIHelpers, which contains helper methods which greatly simplify interacting with the Events described above.

Additionaly you can clone existing spawn cards and set new values for cloned spawn cards using CharacterSpawnCardClone, InteractableSpawnCardClone and MultiCharacterSpawnCardClone.

Also provides an event to easily enable/disable Combat Directors. Provides an extension method IsStageCombatDirector to check is Combat Director part of stage Combat Directors

Related Pages

Changelog

3.1.0

  • Added enabling/disabling Combat Directors event.

3.0.1

  • Fix spawn card clones not being able to be applied more than once for the dccspool in a single game session.

3.0.0

  • Added SpawnCardCloningAPI for cloning existing spawn cards.

'2.3.9'

  • Fix AddressableDCCSPool not adding "Included If Conditions Met" entries with 0 required expansions to the target DCCS pool.

'2.3.8'

  • Backward compat fix for mixEnemyMonsterCards not being assigned as early as before due to a timing change from 1.4.0 Game Update.

'2.3.7'

  • Support for Alloyed Collective DLC3.
  • Added missing spawn cards for DLC2.

'2.3.6'

  • Both AddressableDirectorCardCategorySelection and AddressableDCCSPool now have more intricate validation during upgrading process.
  • This means that they should catch issues such as invalid spawn cards, invalid addresses and more.

'2.3.5'

  • Added MixEnemiesDccsActions action that would allow interaction with MixEnemy artifact DCCS replacement.

'2.3.4'

  • Fixes.

'2.3.3'

  • Fixed custom monsters and interactables being added to stage pool multiple times as a result of SoTS Phase 2 changes.

'2.3.2'

  • Fixed RemoveExistingMonsterFromStage, which by default removed the given monster from family DCCSs, potentially affecting other scenes unintentionally since those are shared between stages.

'2.3.1'

  • Fixed the AddressableDCCSPool's ConditionalPool class not upgrading properly when it was using the new FamilyDCCSOption

'2.3.0'

  • Added an "AddressReferencedFamilyDirectorCardCategorySelection" class, which is used to reference the FamilyDCCS from the base game
  • AddressableDCCSPool's "PoolEntry" can now reference a FamilyDCCS, this FamilyDCCS takes precedence over the AddressableDirectorCardCategorySelection field.

'2.2.1'

  • Add StageSerde struct, which acts as a workaround for Unity's inability to correctly serialize the Stage enum now that it is 64 bits long.

'2.2.0'

  • Add SOTS stages and support Storm Stuff interactable category.

'2.1.3'

  • Initial fixes for SOTS DLC2 Release.

'2.1.2'

  • Add support for 'lakes'/'Verdant Falls' from Devotion update.

'2.1.1'

  • Fix AddNewMonster / RemoveExistingMonster helper methods not properly handling arena stage.

'2.1.0'

  • Added Dependency for the Addressables Submodule
  • Added AddressableDCCSPool and AddressableDirectorCardCategorySelection, both intended for usage in the Unity Editor.

'2.0.0'

  • Fixed issue where DirectorCardHolder's custom category selection weights where integers instead of floats.

'1.1.2'

  • Make the API safer.

'1.1.1'

  • Fix issue where the `Stage ParseToInternalStageName(string) and string ToInternalStageName(Stage stage)` would return invalid values for The Planetarium and Void Locus respectively.

'1.1.0'

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

Dependencies

Install these first, or the mod will not work:

RiskofThunder-HookGenPatcherbbepis-BepInExPackRiskofThunder-R2API_CoreRiskofThunder-R2API_Addressables

File & checksum

Filename
R2API_Director-3.1.1.zip
File size
54.2 KiB