Kartik Scripts

Understanding Conflicts

This document provides a deep dive into the technical details of the resource and map conflicts that occur in FiveM, how they affect your server, and how Conflict Resolver automatically resolves them.

๐Ÿš— Modkit ID Conflicts

What is a Modkit?

In GTA V, a Modkit (defined in carcols.meta) is a configuration block that groups together tuning and customization parts (spoilers, bumpers, exhaust systems, roll cages, etc.) for a specific vehicle. Each modkit has an <id value="X" /> (ranging from 1 to 65535) and a <kitName>.

The Problem:

GTA V identifies modkits using their numerical ID. If two vehicles are installed on your server and their respective carcols.meta files assign them the same Modkit ID, a collision occurs.

  • Customization Glitches: When a player enters a customs shop (like Los Santos Customs), the shop will display incorrect or missing modification options. Modifying one car might apply physical parts meant for the other vehicle.
  • Crashes: GTA V may crash to the desktop when trying to load or render conflicting modkit parts.

How Conflict Resolver Fixes It:

  1. Scans all carcols.meta files streamed by your resources.
  2. Identifies duplicate Modkit IDs.
  3. Automatically searches for the next available, unused Modkit ID.
  4. Rewrites the target carcols.meta file to use the new ID, preserving all customization options and restoring stability.

๐Ÿšจ Siren ID Conflicts

What is a Siren ID?

Siren setups (light flash patterns, lightbar rotations, and flash sequences) are configured inside carcols.meta under the <Sirens> section. Each setup is assigned a unique Siren ID.

Vehicles reference these setups in their vehicles.meta or carvariations.meta files using the following XML node:

<sirenSettings value="X" />

The Problem:

If two emergency vehicles share the same Siren ID but have different lightbars or flash patterns:

  • Lights will flash in chaotic or broken patterns on one or both vehicles.
  • Sound patterns or sirens might fail to play.
  • Part of the lightbar might appear detached or non-functional.

How Conflict Resolver Fixes It:

Fixing a Siren ID is more complex than Modkits because it requires updating the references. The tool:

  1. Detects duplicate Siren IDs in carcols.meta.
  2. Locates the parent resource containing the vehicle files.
  3. Finds the corresponding vehicles.meta or carvariations.meta containing <sirenSettings value="X" />.
  4. Re-assigns the siren in carcols.meta to an unused ID, and automatically updates all corresponding references in vehicles.meta and carvariations.meta so the vehicle points to the correct new ID.

๐Ÿ“‚ Duplicate Map Assets

What are Map Assets?

Map environments in FiveM are streamed as binary assets, including:

  • .ymap: Defines what props spawn, where they sit, and how they are rotated.
  • .ybn: Defines collision boundaries (preventing players from walking through walls).
  • .ytyp / .ydr / .ydd / .ytd: Define 3D models, textures, and boundary definitions.

The Problem:

If you have multiple map resources installed, they may stream the exact same files (often base-game files modified by different authors, or overlapping map packs). When FiveM mounts multiple identical filenames:

  • Flickering textures and models as the engine struggles to draw two things in the same slot.
  • Invisible walls or missing collisions (falling through the map).
  • Elevated memory consumption and resource load times.

How Conflict Resolver Fixes It:

The duplicate scanner detects multiple resources streaming identical filenames. You can clean up the duplicates by choosing to:

  • Keep the most recently modified file.
  • Keep the largest file.
  • Manually select which path to preserve while deleting the redundant versions, cleaning up your stream cache.

๐Ÿงฑ Cross-File Prop Conflicts

The Problem:

Duplicate filenames are only half the story. Two map packs can decorate the same street corner using map files with completely different names, so nothing looks duplicated on disk, yet the game loads both sets of props.

  • Stacked objects: The same object ends up placed twice in the same spot. Both surfaces sit at the same depth, so the renderer flickers between them (Z-fighting) and every frame pays for drawing the object twice.
  • Disagreeing placements: One pack moved an object that another pack left where it was. Now it exists in both places at once, the "ghost" bench, pole or barrier players report walking into.

How Conflict Resolver Fixes It:

  1. Reads the actual object placements out of your map files, not just their filenames.
  2. Groups placements of the same object that land in the same spot (stacked) or within a short distance of each other (moved).
  3. Lets you keep one placement and removes the rest from the other map files, backing everything up first.

Moved placements are never auto-resolved, which spot is "correct" is a design decision, so the tool asks. See Prop Placement Conflicts.


๐Ÿงฑ Invisible Walls

An invisible wall is collision without a visible model, usually a collision file from one map pack still being streamed over the area another pack rebuilt. There's nothing to click on and nothing on screen to identify, which is what makes it so hard to chase.

The in-world Probe solves this by testing the collision directly: you click the spot (or sweep the area around you) and it reports which collision file and which resource the blocking surface came from, so you know precisely which pack to fix rather than guessing by disabling resources one at a time.


๐ŸŽฅ Physical Placement Conflicts (In-World)

When building map layouts or combining multiple custom interiors/maps, physical overlaps happen in the game world. The Live Map Editor scans and highlights two kinds of physical placement conflicts:

1. Duplicate Placements (Stacked Props)

  • What it is: The same prop model spawned at the exact same coordinates. This usually happens when a map creator accidentally copies/pastes a prop in CodeWalker.
  • Z-Fighting: The visual consequence of stacked props. Since both surfaces occupy the same depth, the renderer flips back and forth between drawing them, creating a rapid, ugly texture flickering.
  • Performance: Spawning multiple overlapping props doubles the draw calls, hurting client FPS in dense areas.

2. Cross-Model Collisions (Clipping)

  • What it is: Two different prop models intersecting each other (e.g., a custom building wall intersecting a vanilla light pole or tree).
  • Physics Glitches: Clipping bounding boxes can cause players or vehicles to glitch, get launched into the air, or get stuck in walls. The editor draws bounding box gizmos around these clipping objects so you can nudge them apart or hide the offending model.

๐Ÿ’พ Dynamic Overrides vs YMAP Editing

Traditionally, modifying or deleting a prop required:

  1. Closing your server.
  2. Opening CodeWalker.
  3. Locating the .ymap file, editing the prop coordinates, and saving.
  4. Restarting the resource.

Conflict Resolver uses a Dynamic Overrides Store (data/overrides.json):

  • When you edit a prop in-game and hit [Enter], the server saves the new position/rotation.
  • As players move near the prop, the script intercepts the entity being streamed and applies the override transform dynamically.
  • This means you can clean up maps, hide annoying poles, or fix clippings live on a running server with zero restarts and zero raw .ymap edits, while retaining the ability to restore the original layout instantly.

On this page