Events
Both events are synchronous on the forging player's owner thread and cover both GUI confirmation and ForgeOperations.forgeAsync.
| Event | Timing | Cancellable | Mutable field | Effect and fields |
|---|---|---|---|---|
ForgeStartEvent | Immediately before asynchronous execution is scheduled | Yes | successRate | Cancellation stops scheduling and consumes no materials. Rate is clamped to 0..100; fields include player, recipe id, and first-craft flag. |
ForgeCompletedEvent | After the attempt fully resolves and any successful result is delivered | No | None | Informational committed outcome: success flag, nullable result item, quality, and multiplier. |
The start event is absent when owner-thread acquisition fails because the attempt is abandoned. The completed event can be skipped for unavailable ownership, stale GUI sessions, shutdown rejection, or unexpected execution exceptions, so it is not an exhaustive audit log.