Du hast das Setup von letzter Woche durch, öffnest dein erstes Blueprint, verkabelst ein paar Nodes — und der Editor wird rot. Willkommen bei der zweiten Wand gegen die jeder UE-Anfänger rennt. Die meisten dieser Fehler sehen furchteinflößend aus und sind eigentlich simpel sobald du weißt was sie dir sagen. Hier sind die zehn die du am häufigsten triffst.

1. Accessed None — „versucht ein Objekt zu nutzen das nicht existiert"

Der mit Abstand häufigste Blueprint-Fehler. Format: Accessed None trying to read property X from Y.

Bedeutet: du hast etwas auf einer Variable aufgerufen die null war. Die Variable wurde nie gesetzt, oder das was du gecastet hast hat None zurückgegeben.

Fix: Rechtsklick auf den betroffenen Pin → Promote to local variable → vor der Nutzung mit Is Valid branchen. Saubereres Muster: vom Variablen-Pin ziehen → „is valid" suchen → der ?Is Valid Node hat einen grünen Check-Pin (läuft wenn valid) und ein rotes X (läuft wenn nicht). Deine Logik in den grünen Pfad.

Aber unterdrück's nicht blind mit Is Valid — frag erst warum es None ist. In 80% der Fälle nutzt du die Variable bevor etwas anderes sie gesetzt hat.

2. Cast Failed — „dieses Objekt ist nicht das was du dachtest"

Jeder Cast To BP_X-Node hat einen Cast Failed Execution-Pin. Wenn dein Code dort landet, war der Input nicht vom Typ BP_X.

Fix: Die meisten Cast-Failed-„Fehler" sind keine Fehler — sie sind Information. Der Cast hat's probiert; es hat nicht gepasst; der Code ist in den Failure-Pfad gegangen. Das ist OK. Wenn dich das überrascht, ist das eigentliche Problem dass du angenommen hast jedes Overlap / Hit / Interaction wäre mit Typ X — und das war nicht so.

Anti-Pattern: Cast To an absolut alles dranketten um Funktionen zu erreichen. Schafft Hard-References und langsame Loads. Die Alternative — Blueprint Interfaces — kommt in einem späteren Post.

3. Infinite Loop Detected

Infinite Loop detected — script has hit a limit of 1000000 iterations. Unreal stoppt dein Script bevor es den Editor einfriert.

Drei Ursachen, nach Wahrscheinlichkeit:

  • Eine Schleife ohne Ausstiegsbedingung. Check deine While-Loops. Counter vergessen hochzuzählen?
  • Eine Funktion die sich direkt oder indirekt selbst aufruft. OnSomeEvent triggert UpdateUI das wieder OnSomeEvent triggert.
  • Ein Event das in Tick feuert. Du broadcastest ein Event aus Tick — irgendwer hört zu — und der Listener macht etwas das im gleichen Tick wieder broadcastet. Loop.

Fix: Counter einbauen und nach N Iterationen rausbrechen während du debuggst. Status im Loop-Body printen. Den Cycle finden, durchtrennen.

4. TRASHCLASS / Compile-Fehler nach Umbenennen

Du siehst TRASHCLASS_BP_X_0 in einem Node-Titel, oder das Blueprint kompiliert nicht mit „class not found".

Bedeutet: du hast ein Blueprint umbenannt oder verschoben und eine Reference irgendwo zeigt noch auf den alten Pfad. Unreal hat die jetzt verwaiste Reference in eine „Trash Class" verwandelt.

Fix: Editor schließen + neu öffnen. Wenn immer noch kaputt: das defekte Blueprint öffnen, Trash-Class-Node finden, Rechtsklick → Refresh Node, oder einfach Reference löschen und neu setzen. Alles speichern. Der Trash verschwindet meist beim nächsten Save.

5. Variable is not set / „Default Value"-Warnung

Eine Variable zeigt ein gelbes Dreieck im Details-Panel. Der Compiler warnt dich dass etwas eine Variable referenziert die keinen Default hat und nirgends vor der Nutzung gesetzt wird.

Fix: Entweder in den Details der Variable einen Default Value setzen, oder garantieren dass sie in BeginPlay oder dem Construction Script gesetzt wird bevor irgendein anderer Graph sie liest.

6. Construction Script Crash beim PIE-Start

Du klickst Play und der Editor friert kurz ein, dann crasht er — oder der Actor spawnt nicht richtig. Häufige Ursache: schwere Arbeit im Construction Script: Actors spawnen, World-State zugreifen, Tick-only-Nodes aufrufen.

Das Construction Script läuft im Editor, jedes Mal wenn du den Actor im Viewport bewegst. Es läuft bevor die World vollständig lebt. Also gibt Get Player Character None zurück. Also kann Spawn Actor sich seltsam verhalten.

Fix: Wenn die Arbeit „world-aware" oder runtime-only ist, mach sie in BeginPlay, nicht im Construction Script. Construction Script reserviert für editor-zeitliches Setup (z.B. Preview-Meshes aktualisieren wenn Properties geändert werden).

7. „Could not load asset" beim Packagen

Editor läuft fine. Du packst das Spiel. Der gepackte Build lädt irgend ein Asset nicht. Im Log: Could not find asset Game/...

Zwei häufige Ursachen:

  • Soft Reference auf ein Asset in einem nicht-geladenen Chunk. Entweder hart machen, oder sicherstellen dass das Asset in der gecookten Chunk-Liste ist (Project Settings → Packaging → List of maps to include).
  • Ordner mit führendem Unterstrich (_Developers/). Diese Ordner werden standardmäßig vom Cook ausgeschlossen. Ship nichts aus _Developers/ raus.

Fix: Im Log den vollen Asset-Pfad checken. Entweder Asset aus dem ausgeschlossenen Ordner verschieben oder explizit zur Cook-Liste hinzufügen.

8. Pin-Connection-Fehler — „incompatible types"

Du ziehst von einem Output-Pin zu einem Input-Pin. Die Linie blinkt rot und verbindet nicht. Statusleiste: X and Y are not compatible.

Die beiden Pins sind getypt und konvertieren nicht automatisch.

Fix-Optionen:

  • Rechtsklick auf den Ziel-Pin → Convert from X wenn Unreal einen Konverter kennt (Float zu Int, Vector zu Rotator, Object zu spezifischer Klasse via Cast).
  • Für Object → spezifische Klasse: Cast To-Node dazwischensetzen.
  • Für Int → Float und ähnliches: einfach einen Conversion-Node setzen.

Wenn du das zwischen BP-Nodes die „eigentlich" zusammenpassen müssten siehst, hast du wahrscheinlich Array vs Single-Element-Mismatch (die häufigste Falle — Array Items vom Typ Item connectet nicht direkt zu einem Pin der Item erwartet).

9. Animation Blueprint updated nicht

Die Animation des Characters ändert sich zur Laufzeit nicht, obwohl du die Variable setzt. Oder sie ändert sich einmal und bleibt dann.

Animation Blueprints haben einen speziellen Graph namens AnimGraph der jeden Frame sampelt, und einen Event Graph zum Setzen von Variablen. Anfänger setzen die Variable oft korrekt, verkabeln sie aber nie in die AnimGraph-State-Machine-Transitions.

Fix: Animation Blueprint öffnen. Zum AnimGraph wechseln. Sicherstellen dass die State Machine deine Variable in einer Transition Rule wirklich abfragt. Variable im Event Graph printen um zu bestätigen dass sie geupdated wird.

10. „Reference would create a circular dependency"

Du versuchst Blueprint A aus Blueprint B zu referenzieren, und B referenziert A schon irgendwo. Unreal blockiert die neue Reference weil das Auflösen ewig schleifen würde.

Fix: Den Zyklus brechen durch einen Vermittler. Übliche Muster:

  • Ein Interface das beide A und B implementieren — sie reden durchs Interface ohne sich gegenseitig zu referenzieren.
  • Ein Subsystem (Game Instance Subsystem) das beide anfragen — keiner referenziert den anderen direkt.
  • Ein Event Dispatcher auf A an den B sich bindet — B kennt A aber A kennt B nicht.

Wenn du den Zyklus nicht brechen kannst, hast du ein Architektur-Problem über das es nachzudenken lohnt — nicht nur einen Blueprint-Quirk.

Typische Fehler

  • Fehler überall mit Is Valid unterdrücken. Manchmal ist die richtige Antwort herauszufinden warum es None ist, nicht die Logik still zu überspringen.
  • Print String für alles. Nützlich beim Debuggen, aber lass sie im Shipping-Build drin und du hast Log-Spam. Print String mit Print to Log und Print to Screen Toggles bewusst nutzen, und löschen wenn fertig.
  • Compile-Warnungen als Hintergrundrauschen behandeln. Compile ist schnell. Warnings kosten nichts. Fix sie; sie fangen oft echte Bugs bevor sie Bugs sind.
  • Assets editieren ohne das Level auch zu speichern. Viele „meine Änderungen sind weg"-Bugs kommen daher dass das Blueprint gespeichert wurde aber nicht das Level das es platziert hat. Save All nutzen.

Die 30-Sekunden-Zusammenfassung

  • Accessed None → Variable war nicht gesetzt. Mit Is Valid branchen und Ursache finden.
  • Cast Failed → kein Fehler; einfach kein Match. Casts nicht ketten.
  • Infinite Loop → Ausstiegsbedingung fehlt, oder Event-Zyklus.
  • TRASHCLASS → veraltete Reference; Node refreshen oder Editor neu starten.
  • Construction Script Crash → Runtime-Arbeit nach BeginPlay verschieben.
  • Asset fehlt beim Cook → Ordner ausgeschlossen oder Soft Ref nicht in Chunk-Liste.
  • Pin-Typen inkompatibel → Conversion-Node oder Cast To.
  • AnimBP updated nicht → Variable in AnimGraph-Transitions verkabeln, nicht nur Event Graph.
  • Circular Dependency → mit Interface, Subsystem oder Event Dispatcher brechen.

Diese zehn decken ~90% von dem ab was neue Blueprint-Devs treffen. Merk dir das Muster, nicht den Error-Code.

Nächste Woche: Enhanced Input System — der neue Weg, vereinfacht. Sobald du Logik ohne Fehler verkabeln kannst, ist das Nächste was du willst den Character tatsächlich zu steuern. Spoiler: das neue Input-System ersetzt das alte aus guten Gründen, und die meisten Anfänger sind verwirrt vom Vier-Konzept-Stack (Action / Context / Trigger / Modifier). Nächsten Sonntag macht's klick.

— Marco