Also was du willst gibt es so nicht direkt. Also müsstest du dies in eine Funktion packen.
Entweder kommt dies A) In das BP was deine Quests Managed. B) In eine Blueprint Function Libary.
An sich glaube ich aber dass dein Ansatz allgemein nicht sehr ideal ist:
Auch wenn es blöd ist, dass du dein Quest System Ändern müsstest folgender Vorschlag:
Du nutzt Objekt Orientierte Programmierung mal voll aus:
Statt eines Structs sollten deine Quests Objects sein. D.h. Du erstellst zuerst eine Blueprint Klasse basierend auf dem Typ Object (oder Actor, falls du Replication benötgist). Dieser fügst du entsprechende Eigenschaften (Variablen) hinzu, wie z.B. das Icon, Quest Titel, Quest Text, etc. Dort kannst du auch das Verhalten programmieren was jede Quest hat oder entsprechende Schnittstellenfunktionen, falls nötig.
Dies ist deine Basis Klasse für alle Quests.
Nun erstellst du von dieser Blueprint Klasse neue Child Klasses. Diese benennst du nach deinen Quest Typen. Dort kannst du dann schon das entsprechende Icon Setzen. Auch hier kannst du die Logik die jede Quest des Unter-Typs sich teilt, programmieren. Eine Transport Quest z.B. hat ja durchaus gemeinsamkeiten, das hilft dir dass du ensprechenden Code nur an einer Stelle ändern musst.
Wenn nun eine Quest Instanz erzeugen willst. Dann erzeugst du einfach ein Object vom Typ des Quests über "Construct Object From Class" und setzt nur noch Titel und Beschreibung. Da das Icon auch eine Eigenschaft der Quest ist, kannst du diese natürlich auch pro Instanz ändern.
Wo ist der Vorteil?
Die Logik der Quest ist in dem Typ des Quests enthalten, damit kannst du woanders Logik entfernen und dir mehr Übersicht schaffen.
Das System arbeitet über Objekte, d.h. rein logisch sind alle variablen die auf die Quest Zeigen, zeiger auf die Quest. D.h. ein "==" bedeutet "ist es die selbe Quest" während ein "==" bei einem struct fragt ob es "die gleiche Quest" ist.
Du hast dadurch auch viel Modularität und wenig Code Duplikation, was dir den Wartungs aufwand verringert, dadurch dass du nur einmal Programmieren musst. Damit sind verbesserungen gleich auch auf alle unter Klassen verteilt.
Erweitern des Systems geht einfach durch erstellen eines neuen Kindes. Entfernen geht durch löschen des entprechenden Quest BP.
Wahrscheinlich wird das etwas Arbeit für dich sein, weil ich glaube dass du dich etwas einarbeiten müsstest in OOP und die denkweise, aber ich glaube dass es sich lohnen würde.