

A developer-focused API for R.E.P.O. that enables custom Arena loading with automatic RNG selection, networking support, and BepInEx config integration.
Developers Only This is an API for loading custom Arenas. You still need to create your own Arena prefab. This API handles selection, injection, and multiplayer-safe loading for you.
com.Empress.ArenaAPI.cfg under [Registered Arenas].singleplayerPool and ResourceCache (Photon) so your custom prefab syncs across the network.Your Arena prefab must be built correctly to avoid softlocks:
ItemVolume components that aren't children of an ItemAttributes parent to prevent runtime errors.Empress_ArenaLoaderAPI.dll as a reference in your project.[BepInDependency("com.Empress.ArenaAPI")].Awake().using BepInEx;
using UnityEngine;
using Empress_ArenaLoaderAPI;
using System.IO;
[BepInPlugin("com.YourName.MyArena", "My Custom Arena", "1.0.0")]
[BepInDependency("com.Empress.ArenaAPI")]
public class MyArenaPlugin : BaseUnityPlugin
{
private void Awake()
{
string bundlePath = Path.Combine(Path.GetDirectoryName(Info.Location), "myarena_bundle");
AssetBundle bundle = AssetBundle.LoadFromFile(bundlePath);
if (bundle != null)
{
GameObject arenaPrefab = bundle.LoadAsset<GameObject>("MyArenaPrefab");
if (arenaPrefab != null)
{
// Unique resource path is required for networking!
ArenaAPI.RegisterArena(arenaPrefab, "YourName/MyArena");
}
}
}
}
The above code is included as a reference. This serves as a working code and prefab template for you to use when creating your own Arena mods to work with my ArenaAPI. Check its structure to see how to properly register and load your assets!
Omniscye/Empress: ArenaLoaderAPI
@Jettcodey + Skript: Testing support
@ThatDRW: For creating cool stuff with my APIs