GUIDs are currently generated based on the file path - leading to GUID collisions whenever modders independently choose the same file names.
Description
Description
Details
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.