Skip to main content

Get Started

Install

  1. Add the plugin to your project’s Plugins/ folder or install via Fab.
  2. In Edit → Plugins, enable Deterministic Seed Subsystem and restart the editor.

Initialize the Seed

Initialize once at startup (e.g., in your UGameInstance or BP GameInstance or anywhere else).
Tip: For multiplayer, set and replicate the seed from the server and derive all randomness server-side. Replicate outcomes as needed.

Blueprint example

In your GameInstance Blueprint you can on Init or at any other point in the game’s lifecycle.

C++ example

#include "SeedSubsystem.h"

void UMyGameInstance::Init()
{
    Super::Init();
    if (auto* SeedSys = GetSubsystem<USeedSubsystem>())
    {
        // Deterministic run:
        SeedSys->SetGameSeed(20251022);

        // Or create a new seed each session:
        // SeedSys->GenerateRandomSeed();
    }
}

Using Salts

Use a short, memorable salt per call:
  • "Loot_T1", "AI_Crit", "Spawner_A", "NameGen"
This keeps streams independent while remaining deterministic.

Editor Seed

  • CVAR: SeedSubsystem.EditorSeed (default 12345678)
  • In editor builds, SetGameSeed uses the editor seed so you get identical results run-to-run.