EduLife / Naming pool contract
For modders · public contract

Want your own school names in EduLife?

As of the next update, EduLife can discover naming-pool mods made by anyone — no coordination with the EduLife author needed, no reference to EduLife's own code required.

Live-confirmed: EduLife's "School Naming Pool" dropdown in the game's Options panel lists a proof-of-concept companion mod alongside "Default (Built-in)" with zero coordination between the two mods. Discovery works end to end.

Cities: Skylines II Options panel, EduLife section - School Naming Pool dropdown open, showing Default (Built-in) and Example Pool (Proof of Concept)

The contract

Add a class anywhere in your mod whose type name ends in EduLifeNamingPool, with exactly these two public static members:

public static class MyCoolNamesEduLifeNamingPool
{
    // Shown in EduLife's "School Naming Pool" dropdown.
    public static string PoolDisplayName => "My Cool Names";

    // Called with exactly one of these four strings. Return an array of
    // names for that tier, or an empty array if you don't have any for it.
    public static string[] GetNames(string tier) => tier switch
    {
        "Elementary" => new[] { "Example Elementary", "Sample Primary School" },
        "HighSchool" => new[] { "Example High School" },
        "College"    => new[] { "Example College" },
        "University" => new[] { "Example University" },
        _ => System.Array.Empty<string>(),
    };
}

That's it. No EduLife.dll reference, no shared assembly, no registration call. EduLife finds you by scanning loaded assemblies for the naming convention above.

Where this goes: add a new .cs file anywhere in your own mod's C# project (the same project created from the CS2 Modding Toolchain template that builds your .dll) — for example NamingPools/MyCoolNamesEduLifeNamingPool.cs. It doesn't need to be registered in your Mod.cs entry point or anywhere else. As long as the file is part of your mod's project and gets compiled into your mod's .dll, EduLife finds it automatically once your mod loads — nothing to wire up on your end beyond writing the class.

What to know

Questions or issues? Drop them on the EduLife forum thread ↗ or in the comments on the mod page.