WorldNetworkFingerprint$ ( world )
Parameters
world - a valid world handle returned by LoadWorldAsync
Description
Returns the lowercase SHA-256 fingerprint of the simulation content captured when this world loaded. The fingerprint is available after WorldReady becomes True. It is computed in the loading worker; this query does not read files.
The fingerprint includes the exact .world source bytes, model and heightmap bytes, external glTF/GLB geometry buffers, and resolved prefab and physics definitions. It excludes texture, sound, and shader payloads and absolute installation paths. Matching exports use the same bytes on Windows, macOS, iOS, and web. Editing whitespace in the world source also changes its digest.
The command returns an empty string for worlds created with CreateWorld, pending or failed loads, or content that could not be fingerprinted. For a ready loaded world, use WorldNetworkFingerprintError to inspect that last case. An invalid or freed world handle raises a runtime error.
The retained digest describes loaded source content. Entity movement and other runtime gameplay changes do not recompute it. It does not certify that a multiplayer session or platform has been tested.
The validator command b3dworldc --network-fingerprint file.world
uses the same fingerprint implementation and prints one digest. It requires
all referenced simulation sources, including optional models and heightmaps.
Requires Extended mode.
See also: WorldNetworkFingerprintError, LoadWorldAsync, WorldReady, WorldSourcesCurrent.
Example
; WorldNetworkFingerprint and WorldNetworkFingerprintError ; Requires Extended mode. Press Escape to exit. Graphics3D 640,480,0,2 SetBuffer BackBuffer() world=LoadWorldAsync("../../../samples/worlds/help-marker.world") While Not WorldReady(world) If WorldLoadState(world)=WORLD_LOAD_FAILED Then RuntimeError WorldLoadError(world) If KeyDown(1) Then FreeWorld world : End Cls Text 20,20,"Loading the world and fingerprinting its simulation content..." Flip Wend ; Both values are retained from loading; these queries do not read files. fingerprint$=WorldNetworkFingerprint(world) problem$=WorldNetworkFingerprintError(world) While Not KeyDown(1) Cls Text 20,20,"WorldNetworkFingerprint$:" Text 20,44,Left(fingerprint,32) Text 20,64,Mid(fingerprint,33) Text 20,104,"WorldNetworkFingerprintError$:" If problem="" Then Text 20,128,"Empty: this world's simulation content was fingerprinted." Else For line=0 To 3 Text 20,128+line*20,Mid(problem,1+line*65,65) Next EndIf Text 20,248,"Matching shared worlds must have the same fingerprint." Text 20,280,"Escape: exit" Flip Wend FreeWorld world End