Get Started
Install
Add the plugin to your project’s Plugins/ folder or install via Fab.
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 Set Game Seed 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.