跳到主内容
Resource Conflict Checker

Resource Conflict Checker

Drop several RedM resources at once and see duplicate stream files, replaced RDR2 files, repeated data_file lines and manifest mistakes.

这些文档目前是英文的。

Open the tool Last updated

The Resource Conflict Checker reads a pile of RedM resources and lists what will go wrong between them: two resources streaming the same file, a stream file that replaces one of RDR2’s own, the same data file registered twice, and manifests that RedM will refuse to start. Drop your whole resources folder or add resources one by one. Nothing is uploaded.

What it is for

Each resource can look fine on its own and still break the server next to another one. Two map mods that both stream the same file show whichever loads last; two copies of one script under different folder names fight over the same data. These problems give no clear error in the console. The checker looks at all the resources together and names the files involved.

It is also a quick way to catch the RedM manifest rules that stop a resource from starting at all, such as a missing rdr3_warning line.

Quick start

  1. Drag your resources folder (or several resource folders and zips) onto the box, or press Add a folder or Add zips.
  2. Wait for Checking to finish.
  3. Read the list on the left. Errors come first, then warnings, then notes. Each one names the files and, for a manifest, the line.
  4. The panel on the right lists every resource found, its game and how many files it streams.
  5. Add more resources at any time; the check reruns over everything. Clear starts over.

A resource is any folder with an fxmanifest.lua (or __resource.lua) in it, so bracket folders such as [standalone] are fine. A zip is kept apart under its own name, so two zips with the same layout inside do not mix.

What it checks

Errors

Finding What it means
<folder>: no fxmanifest.lua Stream files or Lua files sit outside any resource, so the server never loads them.
only has __resource.lua RedM needs an fxmanifest.lua with fx_version adamant or newer.
no fx_version Add fx_version 'cerulean'.
fx_version '...' is not adamant, bodacious or cerulean RedM needs one of those three.
no game line Add game 'rdr3', or games { 'gta5', 'rdr3' } for code that runs on both.
made for gta5, not RedM The game line does not include rdr3 or common, so it does not start on a RedM server.
no rdr3_warning line A game 'rdr3' resource does not start without it.
rdr3_warning text is not word for word The line has to match exactly, including the asterisks around will.
N resources named ... Two folders with the same name. Resource names are unique on a server, so only one can start.
Manifest syntax An unclosed string, block comment or table, a missing comma between entries, or a data_file line without a type and a path.

The rdr3_warning line a RedM manifest needs is:

fxmanifest.lua
fx_version 'cerulean'
game 'rdr3'
rdr3_warning 'I acknowledge that this is a prerelease build of RedM, and I am aware my resources *will* become incompatible once RedM ships.'

Warnings

Finding What it means
... is streamed by N resources Two or more resources stream a file with the same name. Streaming goes by file name, so only one copy is used. If every copy has the same size they are probably the same file: keep one. If the sizes differ, which one you see depends on the order the resources start in.
N resources load ... as TYPE The same data file name is registered by two resources: usually two copies of one mod, or two mods editing the same game data.
data_file '...' points at ..., which is not in the resource The path in the manifest matches no file. Globs are matched too.
data_file '...' '...' is listed twice The same line twice in one manifest.
has both fxmanifest.lua and __resource.lua Delete __resource.lua so there is no doubt which one is read.

Notes

Finding What it means
... replaces N files of the game These stream file names also exist in RDR2 itself, so the streamed copy replaces the game’s own. That is often the point (map edits, retextures), so it is a note, not a problem.
... is in ... twice The same file name is streamed twice inside one resource, for example from two subfolders.

Which files count as stream files

A file counts when it sits in a stream/ folder (at any depth inside the resource) and has one of these extensions: .ydr, .ydd, .yft, .ytd, .ybn, .ymap, .ytyp, .ycd, .ynv, .ypt, .yld, .ymt, .awc. File names are compared without regard to case.

The game file check knows 44,679 streamable file names of RDR2, across 12 types:

Type Names Type Names
.ytd 18,232 .ytyp 273
.ycd 12,818 .ynv 128
.ymt 6,619 .ydd 120
.ydr 3,036 .yld 11
.yft 2,272 .ypt 6
.ymap 795
.ybn 369

Those are the game files that carry a readable name. Many more are stored in the game only under a hash of their path, so a file that is not flagged can still be a game file. .awc audio is counted as a stream file but not checked against the game.

If the game file list fails to load, the header says “The stock file list did not load, so game overrides are not checked.” and every other check still runs.

Tips

  • Check the whole resources folder before a big update, then again after, and compare.
  • Add a new download on its own next to your existing folder: every finding that names it is something it brings with it.
  • System files (__MACOSX, .git, node_modules, .DS_Store, Thumbs.db, desktop.ini) are skipped.

Common mistakes

  • The same resource added twice. Dropping a folder and then its zip gives you “2 resources named …” and a duplicate for every stream file. Clear and add it once.
  • Treating every note as a problem. A map or texture mod is supposed to replace game files. The notes are there so you know which resource does it.
  • Fixing the rdr3_warning line by retyping it. Copy it from the block above. A changed word or missing asterisk is enough for RedM to refuse the resource.

Limitations

  • It compares files by name and size, not by content. Two different files of the same size look the same.
  • It does not read inside stream files, so it cannot tell you that two different .ymap files place objects in the same spot.
  • It does not run Lua, so a script error, an event name clash or a missing dependency is not found.
  • The game file check only covers names the game stores in readable form (see above).