Skip to content

ID Conflict Resolution

ID conflicts occur when two or more items in a modded Unturned™ installation share the same numeric ID value. The engine uses the ID field (a uint16 value from 0 to 65535) as a category-specific identifier for items, vehicles, animals, and other asset types. Unlike GUIDs, which are designed to be globally unique, IDs are a limited resource that must be managed carefully to avoid conflicts. When two items share the same ID within the same category, the engine silently overwrites one item with the other, leading to items that are invisible, have incorrect behavior, or fail to appear in spawn tables entirely.

57 Studios™ has documented and validated the complete ID conflict resolution surface. This reference covers the silent overwrite behavior that occurs during ID conflicts, the relationship between IDs and GUIDs as separate identifier systems, the protective namespacing conventions that the modding community uses to avoid conflicts, detection methods for finding ID conflicts in a modded installation, and resolution strategies for fixing conflicts when they are discovered.

ID conflict showing two items with the same ID in the same mod folder

Documentation source: This article references the official Smartly Dressed Games modding documentation for the Asset Definitions chapter (ID field documentation), combined with empirical analysis of item ID usage across official and modded content. Community-validated conflict resolution patterns from the 57 Studios cohort are marked where the official documentation is silent on a detail.

Who this article is for

This reference is written for Unturned™ mod authors and server operators who are troubleshooting items that do not appear correctly in-game, particularly when multiple mods are installed on the same server.

What you will learn

  • How ID conflicts cause silent overwrite behavior
  • The difference between ID conflicts and GUID conflicts
  • How the engine handles conflicting IDs within each asset category
  • How to detect ID conflicts in a modded installation
  • How to resolve ID conflicts by reassigning IDs
  • How to avoid ID conflicts through protective namespacing
  • The relationship between the ID system and GUID system

How ID conflicts work

The engine maintains a lookup table for each asset category (items, vehicles, animals, objects, effects, etc.) that maps numeric IDs to asset instances. When an asset is loaded, the engine checks the category-specific lookup table for the asset's ID. If the ID is not already in use, the asset is registered. If the ID is already in use, the engine silently overwrites the earlier entry with the later one.

As shown above, the silent overwrite is the core problem. There is no warning, no error log, and no notification to the player or server operator that a conflict occurred. The only symptom is that one of the two items does not behave as expected.

ID vs GUID

The ID system and the GUID system serve different purposes in the Unturned™ asset architecture.

AspectIDGUID
Typeuint16 (0-65535)uint128 (32 hex chars)
ScopeCategory-specific (items share an ID space)Global (unique across all assets)
Uniqueness requirementMust be unique within each categoryMust be unique across all loaded assets
Collision behaviorSilent overwrite (last loaded wins)Error logged; one asset skipped
Modifiable after publicationNever changeNever change
Used forSpawn table references, save game referencesCross-file asset references, GUID-based spawns
Range limit65535 values per category2^128 possible values

The key distinction is that ID conflicts are silent while GUID conflicts are logged. This makes ID conflicts harder to detect and more insidious.

How the engine handles ID conflicts by asset category

Different asset categories have different ID pools. An ID conflict only matters within the same category.

CategoryID range used by official contentRecommended mod rangeNotes
Items1-200050000-65535Largest category; most conflicts occur here
Vehicles1-50050000-65535Smaller pool; conflicts are rarer
Animals1-10050000-65535Very small pool
ObjectsGUID-only (no ID needed)N/AObjects upgraded to GUID-only
Effects1-100050000-65535Used for visual and audio effects
Spawn tables1-10005000-65535Separate ID pool from items

The Bypass_ID_Limit flag must be set on an item .dat file to use IDs in the 1-2000 range that is reserved for official content.

Detecting ID conflicts

ID conflicts do not produce any log entries. They must be detected through indirect methods.

Method 1: Manual inventory scan

Load all mods on a server. Spawn every item from every mod using @give. If some items cannot be spawned or spawn a different item than expected, an ID conflict may be present.

Method 2: Automated ID scan

Use a script to extract the ID field from every .dat file in the mod folder and check for duplicates within each category.

GUID a1b2c3d4e5f64a7b8c9d0e1f2a3b4c5d
Type Item
ID 5000

A PowerShell script can extract all IDs and report duplicates across the mod folder.

Method 3: Spawn table observation

If an item is configured in a spawn table but never appears in-game, it may have been overwritten by another item with the same ID. Check the spawn table's GUID reference (not its ID reference) to confirm that the correct item is being targeted.

Resolving ID conflicts

When an ID conflict is detected, the resolution depends on which asset should keep its ID and which should receive a new one.

Resolution workflow

  1. Identify both conflicting assets. Open their .dat files and note their names, IDs, and categories.
  2. Determine which asset was loaded first and which was loaded second (the silent overwrite affects the first).
  3. Choose which asset should keep its ID. The asset that was loaded first (the one that was overwritten) should typically keep its ID if it was in use before the other mod was added.
  4. Assign a new ID to the asset that should change. Choose an ID that is not used by any other asset in the same category.
  5. If the asset uses Bypass_ID_Limit, ensure the flag is present on the updated file.
  6. Verify the fix by loading both mods and spawning both items.

Example resolution

Two item mods both use ID 5000. Mod A's "Survival Rifle" was loaded first. Mod B's "Hunting Rifle" was loaded second and overwrote the Survival Rifle.

StepAction
1Open Mod A's Survival Rifle .dat (ID 5000) and Mod B's Hunting Rifle .dat (ID 5000)
2Survival Rifle was loaded first and was overwritten
3Keep Survival Rifle at ID 5000 (it was deployed first)
4Change Hunting Rifle's ID to 5010 (not used by any other item)
5Verify Bypass_ID_Limit True is set on the Hunting Rifle .dat
6Restart the server; both items now function correctly

Protective namespacing

The standard approach to avoiding ID conflicts is to assign each mod a reserved ID range within the 50000-65535 mod space.

ID range allocation

Mod sizeRecommended rangeExample
Single itemOne ID50000
Small mod (2-10 items)10 IDs50000-50009
Medium mod (11-50 items)50 IDs50000-50049
Large mod (51-100 items)100 IDs50000-50099
Content pack (100+ items)500 IDs50000-50499

The 57 Studios cohort recommendation is to register the mod's starting ID with a community ID registry (if one exists for the modding community) or to document the mod's ID range in the Workshop description so that other mod authors can avoid conflicts.

ID allocation within a mod

Within a mod, items should use sequential IDs from the reserved range.

SurvivalRifle.dat: ID 50000
SurvivalPistol.dat: ID 50001
SurvivalKnife.dat: ID 50002
SurvivalMagazine.dat: ID 50003

Leaving gaps between IDs allows for future additions without renumbering.

The Bypass_ID_Limit flag

The Bypass_ID_Limit flag allows an item to use an ID in the range reserved for official content (1-2000). Without this flag, items with IDs in that range are rejected by the engine.

The 57 Studios cohort recommendation is to always use the 50000+ range for mod content and to reserve the Bypass_ID_Limit flag for special cases where a mod must intentionally override a specific official item's ID. Using Bypass_ID_Limit increases the risk of conflicts with official content.

IDs in NPC equipment

NPCs that carry equipment (such as military NPCs with weapons) use numeric IDs to reference items in their loadout configuration. If an NPC's loadout references an item ID that is later reassigned to a different item, the NPC may appear with the wrong equipment. The 57 Studios cohort recommendation is to use GUID-based references for NPC equipment wherever possible and to reserve ID-based references for backward compatibility with existing configurations.

FAQ

Can two items with different categories share the same ID?

Yes. The ID space is category-specific. An item with ID 5000 and a vehicle with ID 5000 do not conflict because they belong to different type categories. The engine maintains separate lookup tables per category.

What is the maximum ID value?

The ID field is a uint16, meaning the maximum value is 65535. IDs in the 50000-65535 range are recommended for mod content.

What happens if I do not set Bypass_ID_Limit on a mod item?

Items with IDs in the 1-2000 range are rejected by the engine if Bypass_ID_Limit is not set. The item does not load, and no error is logged. This is a common cause of "item not found" bugs in mods that use low IDs.

Does the engine warn about ID conflicts?

No. ID conflicts are silent. The engine overwrites the earlier entry without logging any warning or error. This is the most dangerous aspect of ID conflicts: they can exist for months without being detected.

How do IDs relate to GUIDs in spawn tables?

Spawn tables can reference items by ID (using LegacyAssetId or Table_N_Asset_ID) or by GUID (using Guid). GUID-based references are immune to ID conflicts because they use the globally unique identifier rather than the category-specific ID. The 57 Studios cohort recommendation is to use GUID-based references in all spawn tables to eliminate ID conflict risk at the spawn table level.

Can I reuse an ID from a removed item?

Yes, but only if the removed item is no longer present in any loaded mod or save file. Reusing an ID that was previously used by an item that still exists in some save files will cause those save files to reference the wrong item when loaded. The 57 Studios cohort recommendation is to never reuse IDs from removed items.

Worked examples of ID conflict resolution

Example 1: Two item mods conflict on ID 5000

Mod A (SurvivalRifle) uses ID 5000. Mod B (HuntingRifle) also uses ID 5000. Both are loaded on the same server. The server loads Mod A first, then Mod B. Mod A's SurvivalRifle is silently overwritten by Mod B's HuntingRifle.

Detection: A player reports that the SurvivalRifle cannot be spawned with @give 5000. The command spawns the HuntingRifle instead.

Resolution: Change Mod B's ID from 5000 to 5005. Verify that 5005 is not used by any other item in the category. Update the HuntingRifle's .dat file. Restart the server. Both items now function correctly.

Example 2: Spawn table references the wrong item after ID reassignment

A spawn table uses LegacyAssetId 5000 to reference the SurvivalRifle. After Mod B moved from ID 5000 to 5005, the spawn table still references ID 5000, which now points to whatever item has that ID (if any).

Detection: The SurvivalRifle no longer appears in loot spawns.

Resolution: Update the spawn table to use GUID-based references instead of ID-based references. Replace LegacyAssetId 5000 with Guid <SurvivalRifle_GUID>. This eliminates the dependency on the numeric ID.

Example 3: Vehicle and item share ID 5000 without conflict

A vehicle mod and an item mod both use ID 5000. Because they belong to different categories (vehicles vs. items), there is no conflict. Both assets load and function correctly.

Verification: Spawn the vehicle with @give 5000 and the item with @give 5000. Both appear and function correctly because the engine maintains separate ID lookup tables per category.

ID allocation strategy for multi-mod servers

Server operators who run multiple mods face the highest risk of ID conflicts because each mod independently selects its IDs. The following strategy minimizes conflict risk.

  1. Create an ID registry document that lists every mod on the server and its reserved ID range.
  2. Assign each mod a non-overlapping ID range within the 50000-65535 space.
  3. Verify that no two mods have overlapping ranges before adding a new mod.
  4. Document the registry in the server's administration notes.
  5. Re-check the registry when any mod is updated (updates may add new items with new IDs).

Example ID registry

Mod nameReserved ID rangeNotes
Survival Weapons Pack50000-50099100 item IDs reserved
Vehicle Pack50100-5014950 vehicle IDs reserved
Food Expansion50150-5019950 item IDs reserved
Military Gear50200-5024950 item IDs reserved

Best practices

  • Always use IDs in the 50000-65535 range for mod content
  • Reserve a contiguous ID range for each mod project
  • Document the mod's ID range in the Workshop description
  • Use GUID-based references in spawn tables instead of ID-based references
  • Never reuse IDs from removed items
  • Set Bypass_ID_Limit True on any mod item that uses an ID below 2000
  • Check for ID conflicts when adding a new mod to an existing modded server
  • Perform an automated ID scan after adding multiple mods

Appendix A: ID range conflict detection script

The following PowerShell script scans a folder of .dat files and reports duplicate IDs within each asset category.

powershell
$folder = "."
$items = @{}
Get-ChildItem $folder -Recurse -Include "*.dat" | ForEach-Object {
    $content = Get-Content $_.FullName -Encoding UTF8
    $id = ($content | Select-String "^ID (\d+)$").Matches.Groups[1].Value
    $type = ($content | Select-String "^Type (\w+)$").Matches.Groups[1].Value
    if ($id -and $type) {
        $key = "$type`:$id"
        if ($items.ContainsKey($key)) {
            Write-Output "CONFLICT: $key in $($_.Name) and $($items[$key])"
        } else {
            $items[$key] = $_.Name
        }
    }
}

Appendix B: ID conflict diagnostic log patterns

Since ID conflicts produce no log entries, the following indirect log patterns can indicate an ID conflict.

Log patternWhat it suggestsNext step
No error but item cannot be spawnedAnother item may have overwritten this item's IDCheck for duplicate IDs in the 50000+ range
Two items share the same name in the @give listOne item may have been overwrittenSpawn both and compare behavior
Item appears in the file system but not in-gameThe item's ID may be overwrittenCheck Bypass_ID_Limit and ID uniqueness
Spawn table references item but item never spawnsThe spawn table may reference a conflicting IDConvert spawn table to GUID-based references

Appendix C: ID range documentation template

The following template can be used to document a mod project's ID usage for reference by other mod authors and server operators.

Mod Name: [Name]
Mod ID Range: [Start]-[End]
Item IDs: [Range for items]
Vehicle IDs: [Range for vehicles]
Animal IDs: [Range for animals]
Spawn Table IDs: [Range for spawn tables]
Last Updated: [Date]
Notes: [Any special notes about ID usage]

Appendix D: Reserved ID ranges reference

The following table documents the ID ranges used by official Unturned content and the recommended ranges for mod content.

CategoryOfficial rangeMod recommended range
Items1-200050000-65535
Vehicles1-50050000-65535
Animals1-10050000-65535
Spawn tables1-10005000-65535
Effects1-100050000-65535
NPCs1-500 (legacy clothing IDs)50000-65535

Appendix E: Complete ID field reference for all asset categories

The following table documents the ID field usage across all asset categories in Unturned.

Asset categoryID field used?ID range (official)ID range (mod)Notes
ItemsYes1-200050000-65535Most common conflict category
VehiclesYes1-50050000-65535Smaller pool, less conflict
AnimalsYes1-10050000-65535Very small pool
Spawn tablesYes1-10005000-65535Separate from item IDs
EffectsYes1-100050000-65535Visual and audio effects
ObjectsNoN/AN/AGUID-only since upgrade
NPCsYes (clothing IDs)1-50050000-65535Legacy clothing references
ResourcesYes1-50050000-65535Resource node definitions
Level AssetsYes1-10050000-65535Map-level configurations

Appendix F: Quick-reference ID conflict resolution card

StepActionCommand / tool
1Detect conflicting IDsPowerShell script or manual scan
2Identify source of conflictOpen both conflicting .dat files
3Decide which ID to keepEarlier deployed mod keeps its ID
4Assign new ID to changed assetChoose unused ID in 50000+ range
5Update .dat fileEdit ID field in text editor
6Verify Bypass_ID_LimitEnsure flag is set if ID is below 2000
7Update spawn tablesConvert to GUID references
8Test in-gameSpawn both items with @give

Appendix G: Complete ID usage tracking table

Maintain the following table for each mod project to track ID usage and prevent internal conflicts.

Asset nameCategoryIDGUIDStatus
SurvivalRifleItem50000a1b2...Active
SurvivalPistolItem50001c3d4...Active
SurvivalKnifeItem50002e5f6...Active
SurvivalRifleMagazineItem50003g7h8...Active
MilitarySUVVehicle50000i9j0...Active
MilitaryJeepVehicle50001k1l2...Active
ItemSpawnTableSpawn5000m3n4...Active
VehicleSpawnTableSpawn5001o5p6...Active

Appendix H: 57 Studios mod ID allocation registry

The following table shows the ID ranges allocated to 57 Studios mod projects. This registry prevents internal ID conflicts across the studio's mod portfolio.

Mod projectCategoryStart IDEnd IDTotal slotsStatus
SHQ Weapons PackItems500005004950Active
Horizon Life RP CoreItems500505009950Active
Horizon Life RP VehiclesVehicles500005002425Active
Survival Knife PackItems501005010910Active
AK Series Weapon PackItems501105012920Active
AR Series Weapon PackItems501305014920Active
Pistol CollectionItems501505016920Active
SMG CollectionItems501705018920Active
Shotgun CollectionItems501905020920Active
Sniper CollectionItems502105022920Active
Melee CollectionItems502305024920Active
Explosives PackItems502505025910Active
Medical Items PackItems502605026910Active
Food Items PackItems502705027910Active
Tool Items PackItems502805028910Active
Backpack CollectionItems502905029910Active
Magazine CollectionItems503005034950Active
Attachment CollectionItems503505037930Active
Spawn Table CoreSpawns5000504950Active
Spawn Table ExpansionSpawns5050509950Active
Vehicle Spawn TablesSpawns5100511920Active

Appendix I: ID conflict prevention policy template

Mod teams and server operators should adopt an ID conflict prevention policy. The following template covers the essential elements.

ID Conflict Prevention Policy
Version 1.0

1. All mod items must use IDs in the 50000-65535 range.
2. Each mod project must reserve a contiguous ID range.
3. The reserved range must be documented in the mod's Workshop description.
4. IDs from removed items must never be reused.
5. Spawn tables must use GUID references instead of ID references.
6. Before adding a new mod to a server, the server operator must check for ID conflicts.
7. ID conflicts must be resolved within 7 days of discovery.
8. The ID registry document must be updated whenever a mod's ID range changes.

Appendix J: Complete ID field value range reference

Field typeC# typeMin valueMax valueValid rangeUsed by
Item IDuint161655351-2000 (official), 50000-65535 (mod)Item .dat files
Vehicle IDuint161655351-500 (official), 50000-65535 (mod)Vehicle .dat files
Animal IDuint161655351-100 (official), 50000-65535 (mod)Animal .dat files
Spawn table IDuint161655351-1000 (official), 5000-65535 (mod)Spawn table .dat files
Effect IDuint161655351-1000 (official), 50000-65535 (mod)Effect .dat files
NPC clothing IDuint161655351-500 (official), 50000-65535 (mod)NPC equipment .dat files

Appendix K: ID conflict scenario reference table

ScenarioConflict typeDetection methodResolution
Two item mods use same IDItem-itemManual @give testChange one mod's ID
Item ID conflicts with deprecated modItem-deprecatedSpawn table observationRemove deprecated mod or change ID
Vehicle ID conflicts with itemVehicle-itemNone (different categories)No action needed
Spawn table ID conflicts with itemSpawn-itemNone (different categories)No action needed
NPC clothing ID conflictsNPC-ItemNPC appears with wrong equipmentChange NPC clothing ID
Same mod, two versionsInternalVersion mismatch errorUpdate to latest version

Appendix L: ID conflict resolution tools reference

ToolPurposeCommand
PowerShell ID scannerScan all .dat files for duplicate IDsCustom script (see Appendix A)
Manual grepSearch for ID field valuesSelect-String -Path *.dat -Pattern "^ID \d+$"
Text editor searchFind all ID fields in open filesUse Find in Files with regex
Spawn table auditCheck spawn tables use GUIDsManual review of spawn table files

Appendix M: Mod ID registry template for server operators

Server operators can use the following template to track ID usage across all mods on their server.

Mod nameWorkshop IDCategoryStart IDEnd IDContact
Survival Weapons123456789Items5000050099author@example.com
Vehicle Expansion234567890Vehicles5000050049author@example.com
Food Expansion345678901Items5010050149author@example.com
Military Gear456789012Items5015050199author@example.com
Backpack Collection567890123Items5020050209author@example.com
Magazine Pack678901234Items5021050259author@example.com
Attachment Pack789012345Items5026050289author@example.com
Melee Weapons890123456Items5029050309author@example.com
Explosives Pack901234567Items5031050319author@example.com
Medical Items123456780Items5032050329author@example.com
Animal Reskin234567891Animals5000050009author@example.com
Vehicle Skins345678902Vehicles5005050059author@example.com

Appendix N: ID conflict resolution FAQ for server operators

What should I do if a mod author does not respond to conflict reports?

If the mod author does not respond within a reasonable timeframe, change the conflicting ID in the local server files. Document the change in the server configuration notes. The next update from the mod author will overwrite the local change, so the server operator must re-apply the change after each update.

Can I automate ID conflict detection?

Yes. The PowerShell script in Appendix A can be run as a scheduled task on the server to check for ID conflicts after each mod update. The script outputs a report that the server operator can review.

How do I handle ID conflicts with deprecated mods?

Deprecated mods that are no longer supported by their authors should be replaced with alternatives or removed from the server. If the deprecated mod's ID range is the only conflict, the remaining mod can be reassigned to a different ID.

Appendix O: External references

Authoring checklist

Before publishing a mod, confirm the following ID-related items:

  • [ ] All item IDs are in the 50000-65535 range
  • [ ] IDs are contiguous within the mod's reserved range
  • [ ] Bypass_ID_Limit True is set on any item with ID below 2000
  • [ ] No two assets in the mod share the same ID within the same category
  • [ ] The mod's ID range is documented in the Workshop description
  • [ ] Spawn tables use GUID references instead of ID references
  • [ ] No IDs from removed items are reused

Document history

VersionDateAuthorNotes
1.02026-07-2657 StudiosInitial publication. Complete ID conflict resolution reference with detection methods, resolution workflow, protective namespacing, and FAQ.

Cross-references