     @systems = []
     @systemMap = {}
     @scriptNotes = []
-    @rand = new Rand 0
+    # We want a seed thats not always 0 yet reproducable.
+    @rand = new Rand @hashString(JSON.stringify @userCodeMap)
     @frames = [new WorldFrame(@, 0)]
 
   getFrame: (frameIndex) ->

        return
    @finishDeserializing w, finishedWorldCallback, perf

  @finishDeserializing: (w, finishedWorldCallback, perf) =>
    perf.t4 = now()
    w.ended = true
    w.getFrame(w.totalFrames - 1).restoreState()

  teamForPlayer: (n) ->
    playableTeams = @playableTeams ? ['humans']
    playableTeams[n % playableTeams.length]

  #djb2 algorithm
  hashString: (str) ->
    (str.charCodeAt i for i in [0...str]).reduce(((hash, char) -> ((hash << 5) + hash) + char), 5381) # hash * 33 + c
