Quick answer: Unreal Game Instance Subsystem missing on dedicated server build? Some subsystems are flagged client-only - override ShouldCreateSubsystem to opt into server builds.

Custom Quest subsystem works on listen server but is null on a dedicated server. Server gameplay code crashes.

Override ShouldCreateSubsystem

bool UQuestSubsystem::ShouldCreateSubsystem(UObject* Outer) const {
  return true; // any role
}

Default checks the project's Net Mode Allowed; subsystems often exclude DedicatedServer.

Check WITH_SERVER_CODE

Some subsystem header is guarded #if !WITH_SERVER_CODE. Remove the guard for server-relevant subsystems.

Verify with Get Game Instance Subsystem

Dedicated server in PIE: log the result. Null = the override is excluding it.

“Subsystems opt out of contexts by default. Server-side opt-in is explicit.”

Document which subsystems are client/server/both at the top of each header. New contributors don't have to guess from runtime crashes.