diff --git a/module/system/hooks.mjs b/module/system/hooks.mjs index ec95f71..7d77bf3 100644 --- a/module/system/hooks.mjs +++ b/module/system/hooks.mjs @@ -147,7 +147,17 @@ export const registerHooks = function () { }*/ } }); - Hooks.on("createActor", function (actor, options, id) { - actor.setFlag("world", "editMode", true) + Hooks.on("createActor", async function (actor, options, id) { + // Delay flag setting to avoid the "phase already completed" error + // When an actor is created, it goes through data preparation which applies effects. + // If we call setFlag() immediately, it triggers updateActor -> prepareData -> + // prepareEmbeddedDocuments() which tries to apply effects again, causing the error. + // By using setTimeout with 0ms, we defer the flag setting until after the current + // preparation cycle is complete. + setTimeout(() => { + actor.setFlag("world", "editMode", true).catch(err => { + console.error("Vermine2047 | Failed to set editMode flag:", err); + }); + }, 0); }) } \ No newline at end of file