Page MenuHomeFeedback Tracker

GUIDs should never be generated deterministically
Assigned, NormalPublic

Description

GUIDs are currently generated based on the file path - leading to GUID collisions whenever modders independently choose the same file names.

Details

Severity
Major
Resolution
Open
Reproducibility
Always
Operating System
Windows 7
Category
General
Additional Information

When a resource is created, its GUID is not generated randomly, but based on file path and file name.

Two examples:

  • When you create a config file named "wood.emat" in a project root folder, the GUID will always be B5BF8ACC89D2197B.
  • When you duplicate 21_GM_Eden.conf as a basis for your own scenario header (without initially changing its name), the new GUID will always be 59AD59368755F41B, incremented by 1 from F41A.

Whenever modders happen create a resource with the same name in the same place, it causes a GUID collision and silently makes the mods incompatible.

There is no reason for this behavior: The purpose of GUIDs is not to serve as a hash of the file name, it is to uniquely indentify a file completely regardless of its content (or worse, name/path).
Instead, GUIDs should be generated randomly - this does not conflict with their purpose and avoids GUID collisions. Random collisions are not a problem as there are 16^16 (18 quintillion) valid GUIDs.

Event Timeline

TilW created this task.Tue, Apr 8, 6:27 PM
Geez changed the task status from New to Assigned.Wed, Apr 9, 11:33 AM
TilW edited Additional Information. (Show Details)Wed, Apr 9, 5:55 PM