Zum Inhalt springen
Blog

FiveM Map-Konflikte beheben: MLO flackert, Props fehlen

Wände flackern, Props fehlen, ein MLO ist unsichtbar? Warum FiveM-Maps kollidieren, was jeder Dateityp kaputt macht und wie du .ymap-Dateien mergst.

Von Termi

7 Min. Lesezeit
  • Maps
  • MLO
  • Desktop app
Auf dieser Seite

Du fügst ein neues MLO hinzu, startest den Server neu und fährst hin. Das Gebäude steht, aber die Polizeistation am anderen Ende der Stadt flackert jetzt, einem Parkplatz fehlen die Laternen, und eine Wand im Interior verschwindet, sobald du näher kommst. In der Konsole steht nichts dazu. Das ist ein Map-Konflikt, und er gehört zu den häufigsten Problemen auf jedem FiveM-Server, der mehr als ein paar Maps nutzt. Diese Anleitung erklärt, woher Konflikte kommen, wie du erkennst, welche Art du hast, und wie du sie behebst, ohne einen Abend in CodeWalker zu verbringen.

Warum Map-Resources kollidieren

Die meisten Maps bauen die Stadt nicht von null auf. Sie ändern Teile von GTA V, die schon existieren: Sie verschieben einen Zaun, löschen eine Laterne, die im Weg steht, oder schneiden ein Loch in die Occlusion eines Blocks, damit ihr Interior sichtbar wird. Dafür liefern sie eine eigene Kopie einer Base-Game-Datei mit, unter demselben Namen wie das Original.

Ärger gibt es, wenn zwei Resources eine Kopie derselben Datei mitliefern. Das Spiel lädt nur eine davon: die der Resource, die zuletzt startet. Alles, was die andere Map in dieser Datei geändert hat, ist einfach weg.

server.cfg
ensure pd_mlo
ensure burgershot_mlo
ensure street_lights

Streamen beide MLOs dt1_05_strm_1.ymap, lädt nur die Kopie von burgershot_mlo. Die Änderungen der Polizeistation kommen nie im Spiel an, ihr Interior wird also mit dem ursprünglichen Block drumherum gezeichnet. Die beiden Zeilen zu vertauschen hilft nicht, es verschiebt den Schaden nur auf die andere Map.

Die Arten von Konflikten und was sie kaputt machen

Der Dateityp verrät viel darüber, was du im Spiel siehst. Diese begegnen dir am häufigsten.

Flackernde Map (Occlusion-Konflikt)

Um Arbeit zu sparen, zeichnet GTA V nicht, was es hinter Wänden versteckt glaubt. Diese unsichtbaren Blocker heißen Occluder und stecken in .ymap-Dateien. Ein MLO muss die Occluder entfernen, die sein Interior verdecken würden. Gewinnt die Kopie einer anderen Map, kommen die alten Occluder zurück: Das Interior flackert, verschwindet, wenn du näher kommst, oder du siehst durch die Wände direkt in die Leere.

Prop-Platzierungs-Konflikt (.ymap)

Eine .ymap sagt außerdem, welche Objekte wo stehen: Gebäude, Props, LODs, Lichter, Gras, sogar die Stellen, an denen geparkte Autos spawnen. Bearbeiten zwei Maps dieselbe Datei und nur eine Kopie lädt, fehlen Props, Gebäude poppen ein und aus, Laternen leuchten nicht, oder ein Baum wächst mitten durch eine neue Garage.

Archetype-Konflikt (.ytyp)

Eine .ytyp definiert die Objekte selbst: welches Modell ein Prop nutzt, aus welcher Entfernung es sichtbar bleibt und, bei MLOs, welche Räume und Portale im Inneren liegen. Widersprechen sich zwei Kopien, erscheinen Props mit dem falschen Modell oder gar nicht, und einem Interior kann ein Raum fehlen.

Collision- und 3D-Modell-Konflikte (.ybn, .ydr)

Eine .ybn ist Collision: worauf du laufen kannst und was dich stoppt. Eine .ydr ist ein 3D-Modell. Ein Konflikt zeigt sich hier als Durchlaufen von Wänden, unsichtbare Barrieren, Durchfallen durch einen Boden oder ein Prop mit falscher Form oder falschen Texturen. Diese Dateien sind ganze Objekte statt Listen von Änderungen, es gibt also nichts zu kombinieren: Du entscheidest, welche Kopie gewinnen soll, und sorgst dafür, dass diese Resource zuletzt startet.

Von Hand beheben

Bisher sah die übliche Lösung so aus:

  1. Alle Resources nach Dateien mit gleichem Namen durchsuchen.
  2. Jede Kopie in CodeWalker öffnen und Entity für Entity vergleichen.
  3. Props, Occluder und Lichter aus einer Datei in die andere kopieren und löschen, was eine Map entfernt hat.
  4. Das Ergebnis in eine neue Resource speichern, die Originale umbenennen oder löschen und die Startreihenfolge richtig setzen.
  5. Neu starten, jede geänderte Stelle abfahren und hoffen, dass nichts anderes kaputtgegangen ist.

Für eine einzelne Datei ist das eine Stunde sorgfältige Arbeit. Ein großer Server hat Dutzende davon, und sobald eine Map ein Update bekommt, geht alles von vorn los. Auch Fehler passieren leicht: Übersiehst du einen Occluder, bleibt das Flackern.

In wenigen Klicks mergen

Der Map Merger in der FiveDock-Desktop-App nimmt dir diese Arbeit ab. Er liest deine server.cfg, findet jede .ymap und .ytyp, die mehr als eine gestartete Resource streamt, und faltet jede Gruppe von Kopien zu einer Datei zusammen, die die Änderungen aller Maps behält.

  1. Öffne Map-Merger in der Desktop-App und wähle deinen Server-Ordner.
  2. Klick auf Scannen. Du siehst jede kollidierende Datei, die Resources, die sie liefern, in ihrer Startreihenfolge, und ob sie sich mergen lässt.
  3. Klick auf Zusammenführen. Die gemergten Dateien landen in einer neuen Resource fivedock-merged, und am Ende der server.cfg wird eine Zeile ensure fivedock-merged ergänzt, sodass sie immer zuletzt lädt.
  4. Starte den Server neu.

Das Zusammenführen folgt einer einfachen Regel, derselben, die du von Hand befolgen würdest:

  • Alles, was eine Map hinzufügt, bleibt erhalten. Jedes Prop, Licht, jeder Car-Spawn und Occluder, den eine der Maps mitbringt, landet in der gemergten Datei.
  • Alles, was eine Map entfernt, bleibt entfernt. Hat ein MLO einen Base-Game-Occluder oder eine Laterne in seinem Weg gelöscht, lässt die gemergte Datei sie weg, auch wenn die Kopie der anderen Map sie noch hatte. Das beendet das Flackern.
  • Änderungen am selben Occlusion-Modell werden kombiniert. Schneiden zwei MLOs je ein eigenes Loch in denselben Occluder, hat die gemergte Datei beide Löcher.

Kopien, die Byte für Byte identisch sind, werden als solche markiert und übersprungen, da sie nicht kollidieren können. Entfernte LOD-Lichter werden zusammen mit der passenden LOD-Light-Datei gemergt, die das Spiel synchron braucht. Dasselbe geht auch von der Kommandozeile:

fivedock merge
> fivedock merge C:\server
41 started resources, 3 map files streamed by more than one
  dt1_05_strm_1.ymap  pd_mlo -> burgershot_mlo
  vw_distlodlights_medium010.ymap  pd_mlo -> street_lights
  shared_props.ytyp (identical)  pd_mlo -> burgershot_mlo

> fivedock merge C:\server --apply
  merged dt1_05_strm_1.ymap  +38 -4, base-game file
  merged vw_distlodlights_medium010.ymap  +112 -0, base-game file

Wrote C:\server\resources\[fivedock]\fivedock-merged. Undo with: fivedock merge undo

+38 -4 heißt: Der Merge hat 38 Einträge übernommen, die die erste Kopie nicht hatte, und 4 Base-Game-Einträge weggelassen, die eine der Maps gelöscht hatte.

Nichts geht verloren

Jede Änderung wird gesichert. Die Original-Kopien werden aus ihren Resources verschoben statt gelöscht, und Letztes Zusammenführen rückgängig machen (oder fivedock merge undo) stellt alles wieder her, auch deine server.cfg.

Bekommt eine Map ein Update, scanne erneut. Der Merger liest auch seine eigene frühere Ausgabe, die neuen Kopien werden also in das eingearbeitet, was du schon hast.

Wann du nicht mergen musst

Eine doppelt gestreamte Datei ist nicht immer ein Problem. Lass sie in Ruhe, wenn:

  • beide Maps im Spiel richtig aussehen. Nicht jede geteilte Datei enthält etwas, worauf eine der Maps angewiesen ist.
  • die Kopien identisch sind. Der Merger markiert und überspringt sie für dich.
  • der Konflikt in einer .ybn oder .ydr liegt. Wähl die gewünschte Kopie und passe stattdessen die Startreihenfolge an.

Teste nach dem Mergen. Fahr an jeder beteiligten Map vorbei und betritt jedes Interior. Sieht etwas falsch aus, bringt ein Klick auf Rückgängig den Zustand von vorher zurück.

Häufige Fragen

Warum flackert mein MLO oder verschwindet, wenn ich näher komme?

Meist, weil eine andere Resource ihre eigene Kopie derselben .ymap streamt, und diese Kopie noch die Occluder enthält, die das MLO entfernt hat. GTA V zeichnet nicht, was ein Occluder verdeckt, das Interior flackert oder verschwindet also, wenn du näher kommst. Das Spiel lädt die Kopie der Resource, die zuletzt startet.

Behebt eine andere ensure-Reihenfolge FiveM-Map-Konflikte?

Nur bei Collision- (.ybn) und Modell-Dateien (.ydr), bei denen du die gewünschte Kopie wählst und ihre Resource zuletzt starten lässt. Bei einer .ymap oder .ytyp, die zwei Maps bearbeitet haben, lädt das Spiel weiter nur eine Kopie, und eine neue Reihenfolge verschiebt den Schaden auf die andere Map. Solche Dateien musst du zu einer Kopie mergen, die die Änderungen beider Maps behält.

Wie finde ich heraus, welche Resources dieselbe .ymap streamen?

Such in den stream-Ordnern aller gestarteten Resources nach Dateien mit gleichem Namen: Zwei Resources, die beide dt1_05_strm_1.ymap mitliefern, kollidieren darüber. Der Map Merger in der FiveDock-Desktop-App liest die server.cfg und listet jede .ymap und .ytyp, die mehr als eine gestartete Resource streamt, in ihrer Startreihenfolge.

Kann ich .ybn- oder .ydr-Dateien mergen?

Nein. Eine .ybn ist ein ganzes Collision-Mesh und eine .ydr ein ganzes 3D-Modell, sie enthalten also keine Liste einzelner Änderungen, die sich kombinieren ließe wie bei einer .ymap. Entscheide, welche Kopie gewinnen soll, und sorg dafür, dass ihre Resource nach der anderen startet.

Welcher Plan es hat

Der Map Merger gehört zum Metro-Plan. Der Scan und die Dateien bleiben auf deinem Rechner, das Mergen selbst läuft auf den Servern von FiveDock. So bleibt die App klein, und jeder Merge nutzt dieselben aktuellen Daten zum Base Game. Pläne vergleichen oder die Desktop-App herunterladen, um deinen Server zu scannen.

Alle Artikel