Skip to content

Error and result-code reference

Mass Forge uses explicit enums and result structures so Blueprint and C++ callers can distinguish expected gameplay outcomes from setup errors. This reference covers every public result, status, disposition, and terminal-reason enum. Treat the enum as the primary branch condition; inspect the surrounding result structure for the failed attribute, tag, policy, effect, entity, or request ID.

Structured Mass Forge request flow separating immediate receipt rejection, accepted request IDs, coordinator revalidation, success, and terminal failure recovery

A rejected receipt owns no queue slot and will not complete later. An accepted request still needs execution-time validation, so retain its Request ID and handle every terminal result instead of converting the workflow to a boolean.

Handling rules

  • Success, Allowed, and accepted/terminal-success states are the only general success paths. A receipt is accepted only when its Was Accepted helper is true and its request ID is positive.
  • MassIsProcessing means the direct operation was attempted during a Mass processing phase. Use the corresponding queued operation when one exists; do not retry in a tight Blueprint loop.
  • InvalidWorld commonly means the world-context object is null, destroyed, or belongs to a world that is shutting down. Supply a live object from the intended game world.
  • InvalidEntity and stale-representation outcomes are safe failures. Re-resolve represented Actors or reacquire actorless handles instead of modifying an old index/serial pair.
  • QueueFull is bounded back-pressure, not silent loss. Reduce burst size, distribute work across frames, or raise the documented project setting after measuring memory and frame cost.
  • Nested results matter. For example, EntityApplicationFailed, GameplayTagFailure, PersistentEffectFailed, and TransactionFailed identify the failed layer; inspect the nested result payload for the exact cause.

Blueprint close-up of Spawn Mass Forge Entity with explicit Success, Invalid World, Invalid Entity Config, Invalid Transforms, Spawn Limit Exceeded, Spawner Unavailable, Mass Is Processing, Spawn Failed, and Missing Transform Fragment branches

Blueprint exposes expected spawn outcomes as named execution branches instead of hiding them behind a boolean. For compound gameplay operations, branch on the top-level enum first, then split the returned result struct to inspect the nested entity, attribute, tag, policy, effect, or request-ID details described below.

EMFProjectileLaunchResult

Returned immediately when a project asks the world projectile subsystem to create one actorless Mass projectile.

ValueCause or meaningRecommended response
SuccessA projectile entity was created, initialized, and assigned a positive projectile ID.Store the receipt if correlation is needed; render snapshots or wait for the resolved event.
InvalidWorldThe subsystem has no live world, or required Mass spawning/entity services are unavailable.Launch from a live gameplay world after subsystem initialization and stop during teardown.
InvalidConfigThe request has no Mass Entity Config.Assign an Entity Config containing Mass Forge Projectile Trait.
InvalidRequestA location contains NaN, or speed, arc, release delay, or maximum lifetime is non-finite/out of range.Sanitize authored/runtime values and keep speed/lifetime positive and delays/arcs non-negative.
MassIsProcessingImmediate entity creation was requested while the Mass entity manager owned processing.Queue the project-side launch until the next safe world tick; never retry inside the processor loop.
SpawnFailedThe Mass spawner did not return exactly one projectile entity.Validate the Entity Config/archetype and world capacity, then retry only from a later safe tick.
MissingProjectileFragmentThe spawned config did not contain FMF_ProjectileFragment.Add Mass Forge Projectile Trait to the exact Entity Config supplied in the request.

EMFProjectileResolveReason

Published when an accepted Mass projectile leaves simulation.

ValueCause or meaningRecommended response
ImpactThe point-to-point/arc flight reached its authored target and optional damage was attempted.Use the resolved location/cue and inspect the nested Damage result before applying project-specific follow-up behavior.
LifetimeExpiredMaximum lifetime elapsed before travel reached the target.Treat it as a miss/cleanup result; increase lifetime or reduce travel distance only when the authored design requires it.

EMFEntityResolveResult

Returned when converting a represented Actor into a generation-checked Mass Forge entity handle.

ValueCause or meaningRecommended response
SuccessThe Actor has a current, valid Mass representation.Use the returned handle; reacquire it after representation or lifecycle changes.
InvalidWorldThe world context did not resolve to a live world.Pass a live Actor, component, subsystem, or other object from the intended world.
InvalidActorThe Actor is null, pending destruction, or otherwise invalid.Stop the operation and obtain a live Actor.
DifferentWorldThe Actor belongs to a different world than the selected subsystem.Use a context object from the Actor's world and never carry handles across worlds.
RepresentationUnavailableThe world's Mass Actor representation subsystem is unavailable.Enable/configure the required Mass representation support or use an actorless handle source.
NotRepresentedThe Actor is valid but is not currently mapped to a Mass entity.Use an ordinary-Actor adapter or wait for representation before resolving it.
StaleRepresentationThe Actor mapping returned an entity index/serial that is no longer valid.Recreate or refresh representation; do not reuse the cleared output handle.

EMFEntitySpawnResult

Returned by the Blueprint-first single and bounded-batch entity spawn nodes.

ValueCause or meaningRecommended response
SuccessEvery requested entity was created, received its requested transform, and returned a generation-safe handle.Store handles only for the lifetime needed and revalidate them after destruction, pooling, or world changes.
InvalidWorldThe supplied context did not resolve to a live gameplay world.Call from an object owned by the intended game world.
InvalidEntityConfigThe Entity Config is null or invalid.Assign a saved Mass Entity Config, preferably one generated by the Mass Forge wizard.
InvalidTransformsThe transform array is empty or contains a non-finite transform.Supply at least one finite world transform.
SpawnLimitExceededOne Blueprint batch requested more than 10,000 returned handles.Split ordinary Blueprint work across bounded batches or use a measured C++ population path for larger allocations.
SpawnerUnavailableThe world does not provide the required Mass entity/spawner subsystems.Enable the Mass dependencies and call after world subsystem initialization.
MassIsProcessingImmediate entity creation would overlap Mass processing.Schedule the spawn from a later safe game-thread boundary; do not retry inside a processor loop.
SpawnFailedThe Mass spawner did not create the complete requested batch.Validate the config/archetype and world capacity; no partial output is retained.
MissingTransformFragmentThe spawned archetype lacks Unreal's standard transform fragment, so placement could not be guaranteed.Add Mass Forge Transform Trait or another trait that supplies FTransformFragment; the failed batch is destroyed.

EMFEntityDestroyResult

Returned by the Blueprint-first generation-safe destroy node.

ValueCause or meaningRecommended response
SuccessThe exact live entity generation was submitted to the Mass spawner for destruction.Clear project-held references and reacquire any replacement entity.
InvalidWorldThe supplied context did not resolve to a live gameplay world.Stop during teardown or supply a live context from the correct world.
InvalidEntityThe handle is unset, stale, destroyed, or belongs to another world.Treat destruction as already complete or reacquire the intended entity; never reuse only the index.
SpawnerUnavailableThe Mass entity/spawner services are unavailable.Call after world subsystem initialization and before teardown.
MassIsProcessingImmediate destruction would overlap Mass processing.Use an existing queued death/destruction path or schedule the direct destroy at the next safe boundary.

EMFAttributeAccessResult

Used by attribute reads, writes, instant-effect transactions, and queued attribute/effect receipts.

ValueCause or meaningRecommended response
SuccessThe requested read or transaction completed.Consume the values and any clamp/operation details in the result.
InvalidWorldNo live Mass Forge world subsystem was available.Supply a valid world context and avoid calls during world teardown.
InvalidEntityThe handle is unset, stale, or belongs to another world.Reacquire the entity handle and verify its lifecycle.
MassIsProcessingDirect fragment access would overlap Mass processing.Submit the matching queued request and handle its completion event.
MissingSchemaThe requested attribute domain has no configured runtime schema.Assign the domain schema in Mass Forge project settings and rebuild the Entity Config.
UnknownAttributeThe stable attribute ID is absent from its configured schema.Select a current schema entry or migrate the old ID deliberately.
MissingFragmentThe entity archetype does not contain the required attribute fragment.Add the Mass Forge Attributes Trait and the needed domain to the Entity Config.
InvalidMagnitudeA supplied or calculated float is NaN, infinite, or otherwise invalid.Sanitize gameplay inputs and validate every custom calculation before submission.
MissingMagnitudeParameterAn effect requested a named context scalar that was not supplied.Add the parameter to the effect context or remove/correct the authored parameter name.
InvalidEffectThe Instant Effect asset is null, invalid, or changed incompatibly.Repair the asset in its authoring overview and rerun Project Health.
GameplayTagFailureThe atomic effect's tag portion could not validate or commit.Inspect the effect's failed tag/result, trait capacity, and tag counts.
QueueFullThe bounded attribute or instant-effect queue has no free request slot.Throttle the producer or raise the matching pending-request limit after profiling.
MagnitudeCalculationFailedAn assigned custom magnitude calculation rejected, was invalid/unloadable, recursed, or returned a non-finite value.Inspect FailedModifierIndex and MagnitudeCalculationResponse; repair the stable calculation asset or its inputs before retrying.

EMFEffectMagnitudeCalculationResult

Returned by reusable Blueprint/C++ effect-magnitude calculation assets.

ValueCause or meaningRecommended response
SuccessThe calculation returned a finite final magnitude.Use the returned magnitude; Mass Forge continues staging the enclosing transaction.
RejectedProject logic intentionally refused to calculate for this context.Inspect the stable calculation ID/reason and treat expected gameplay denial separately from setup failure.
InvalidWorldThe query has no live world or crosses world ownership.Supply context from the same active world as the transaction.
InvalidConfigurationThe calculation is missing, unloadable, has no stable ID, or uses the unimplemented fail-closed base class.Repair/implement the asset and rerun Data Validation and Project Health.
RecursiveEvaluationCalculation code started another custom magnitude evaluation before returning.Keep calculations side-effect-free; defer gameplay operations until the outer transaction completes.
NonFiniteMagnitudeThe input, configured math, or returned magnitude is NaN or infinite.Sanitize inputs and guard division/overflow before returning Success.

EMFAttributeSnapshotResult

Used when capturing or atomically restoring attribute snapshots.

ValueCause or meaningRecommended response
SuccessCapture or restore completed atomically.Persist the snapshot or continue from the applied values.
InvalidWorldNo live attribute subsystem was available.Perform save/load against the correct active game world.
InvalidEntityThe target handle is unset or stale.Reacquire the entity before capture or restore.
MassIsProcessingDirect snapshot access would overlap Mass processing.Capture on a safe lifecycle tick; for restore, use Queue Mass Forge Attribute Snapshot Restore.
MissingSchemaA required domain schema is not configured.Restore the schema configuration before handling snapshots.
MissingFragmentThe entity lacks a fragment required by a snapshot attribute.Use a compatible Entity Config or migrate into an appropriate archetype.
EmptySnapshotThe snapshot contains no values.Treat it as absent save data or populate it through a successful capture.
UnsupportedVersionFormatVersion is not supported by this plugin build.Compare SnapshotFormatVersion with ExpectedFormatVersion; upgrade through a supported plugin path or reject the save with a user-facing message.
SchemaVersionMismatchThe project schema generation differs from the snapshot.Compare SnapshotSchemaVersion with ExpectedSchemaVersion, then apply each required migration asset in order before restore.
DuplicateAttributeThe snapshot contains the same stable attribute ID more than once.Repair the producer or migration; never choose one duplicate implicitly.
UnknownAttributeA saved stable ID is not present in current schemas.Add an explicit rename/remove migration rule.
InvalidValueA saved value is NaN or infinite.Reject or repair the corrupted save; do not inject the value into Mass state.
QueueFullThe bounded deferred snapshot-restore queue has no pending capacity.Defer or shed the load; raise Max Pending Queued Snapshot Restores only after measuring copied-payload memory and frame cost.

EMFAttributeSnapshotMigrationResultCode

Returned by one explicit snapshot migration step.

ValueCause or meaningRecommended response
SuccessThe migration produced a complete target-version snapshot.Continue the migration chain or restore the final snapshot.
InvalidMigrationThe migration asset is null or fails its own validation.Correct its ID, adjacent versions, rules, and duplicate mappings.
UnsupportedSnapshotFormatThe input binary format is not understood.Load it with a compatible plugin version or provide an external format converter.
SourceVersionMismatchThe input schema version does not equal the migration's source version.Select the next adjacent migration in the chain.
EmptySnapshotThe migration input has no attribute values.Treat the save as missing/corrupt or start from a valid captured snapshot.
InvalidAttributeA source or rename target ID in the snapshot/rules is invalid.Repair the stable IDs and validate the migration asset.
InvalidValueAn input value is NaN or infinite.Reject or repair the corrupted save before migration.
DuplicateAttributeMigration would produce duplicate target identities.Remove conflicting rules or resolve converging renames explicitly.

EMFEntityStateSnapshotResult

Used when capturing, validating, directly restoring, or queuing the versioned durable entity-state snapshot.

ValueCause or meaningRecommended response
SuccessCapture, validation, or restore completed atomically.Persist the snapshot or continue from the fully restored state.
InvalidWorldNo live Mass Forge world or required subsystem was available.Use a live object from the intended gameplay world and avoid world teardown.
InvalidEntityThe entity handle is unset, stale, or belongs to another world.Reacquire the complete entity index/serial before capture or restore.
MassIsProcessingA direct operation would read or mutate fragments during Mass processing.Capture at a safe lifecycle point or use Queue Mass Forge Entity State Restore for restore.
UnsupportedVersionThe snapshot format is not understood by this plugin build.Load it with a compatible plugin or migrate it through an explicitly supported format path.
SchemaVersionMismatchThe nested attribute schema generation differs from the project schema.Apply the required ordered attribute migrations before restoring the complete snapshot.
InvalidAttributeSnapshotThe nested attribute payload failed format, schema, identity, value, capacity, or fragment validation.Inspect AttributeResult, repair or migrate the entire payload, and retry without partial application.
MissingGameplayTagFragmentThe snapshot includes counted tags but the target archetype has no tag fragment.Use a compatible Entity Config with the Gameplay Tag Trait.
InvalidGameplayTagA saved Gameplay Tag is empty or not registered.Repair the save producer or restore the required project tag registration.
InvalidGameplayTagCountA saved exact tag count is outside the supported positive compact range.Reject or repair the corrupted count before restore.
DuplicateGameplayTagThe same exact Gameplay Tag occurs more than once.Merge it into one exact count; do not choose a duplicate implicitly.
GameplayTagCapacityExceededSaved exact tags exceed the fixed fragment capacity.Migrate to a compatible bounded payload or redesign the target state budget.
MissingAbilityFragmentThe snapshot includes ability state but the target archetype has no ability fragment.Use a compatible Entity Config with the Ability Trait.
InvalidAbilityIdAn ability grant has an empty stable ID or ability data appears while abilities are excluded.Repair the snapshot producer and resolve every grant through a current stable ability ID.
DuplicateAbilityIdThe same stable Ability ID occurs more than once.Keep one authoritative grant record per ability.
AbilityCapacityExceededSaved grants exceed the target's fixed ability capacity.Migrate or trim deliberately before restore; never accept an implicit partial grant list.
InvalidAbilityTimeAn individual cooldown remaining value is negative, NaN, or infinite.Reject or repair the save and persist remaining gameplay seconds only.
InvalidChargeStateStored charge recovery has an invalid time or inconsistent scheduled flag.Repair the charge record so unscheduled recovery is zero and every time is finite/non-negative.
InvalidCooldownGroupA shared/global cooldown has an empty ID or non-positive/non-finite remaining time.Remove expired groups and repair the remaining duration or stable group identity.
DuplicateCooldownGroupThe same shared/global cooldown ID occurs more than once.Merge it into one authoritative remaining duration.
CooldownGroupCapacityExceededSaved active groups exceed the target's fixed group capacity.Migrate to a compatible bounded payload; do not partially restore groups.
ActiveAbilityLifecycleA format-1/2/3 restore targeted an entity with an active cast/channel that the legacy payload cannot describe.Reach an idle ability boundary or restore a compatible format-4 snapshot; legacy restore never erases the lifecycle implicitly.
ActivePersistentEffectsA format-1/2 restore targeted an entity with active Persistent Effects that the legacy payload cannot describe.End those effects deliberately or restore a compatible format-3 snapshot; legacy restore never erases them implicitly.
TransactionInProgressA re-entrant direct restore was requested while another entity-state restore was publishing its transaction.Defer the new operation through the bounded queue and handle its terminal completion.
QueueFullThe bounded entity-state restore queue has no pending capacity.Throttle or defer the producer; raise Max Pending Queued Entity State Restores only after profiling memory and frame cost.
InvalidRegenerationStateRegeneration timing contains an invalid/duplicate target, non-finite or out-of-range remainder, changed schema identity, excess rules, or format-1-only forbidden fields.Reject or explicitly migrate the payload; keep continuous-rule remainder at zero and interval remainder below its tick interval.
MissingRegenerationFragmentA format-2-or-newer snapshot includes regeneration timing but the destination archetype has no regeneration fragment.Restore into a compatible Entity Config with the Regeneration Trait.
RegenerationProfileMismatchThe destination's unique regeneration target set or tick intervals differ from the format-2-or-newer snapshot.Use the matching profile or explicitly migrate/reset timing before restore; Mass Forge will not remap a phase by array position.
InvalidPersistentEffectStateA format-3-or-newer effect section has inconsistent duration/period/backlog state, invalid portable context/tags/modifiers, missing reversible bases, or effective attributes that do not match those bases and contributions.Reject or explicitly migrate the save; do not patch runtime fragment slots or accept partial effect ownership.
MissingPersistentAttributeModifierFragmentThe destination or captured active-effect archetype lacks the companion fragment required for reversible contributions.Use the Persistent Effects Trait on a compatible Entity Config and repair any custom archetype construction.
MissingPersistentEffectDefinitionA saved persistent or periodic soft asset reference is absent or cannot be loaded.Restore the referenced asset at its stable path or explicitly migrate/remove that saved effect before restore.
PersistentEffectDefinitionMismatchA loaded persistent or periodic asset's stable Effect ID differs from the ID guarded by the save.Restore the identity-compatible asset or run an explicit project SaveGame migration; never reinterpret it silently.
PersistentEffectCapacityExceededThe save exceeds 16 active effects or 24 reversibly modified attributes.Migrate or reduce the payload deliberately; Mass Forge refuses partial restoration.
InvalidAbilityLifecycleStateThe format-4 lifecycle section has inconsistent include flags, grants, phase, timing, commit state, pulse count/backlog, target mode, or forbidden legacy-format data.Reject or explicitly migrate the complete save; never infer missing lifecycle state or patch the payload partially.
MissingAbilityLifecycleDefinitionThe saved active lifecycle's soft Ability reference is empty, missing, or cannot be loaded.Restore the referenced Ability asset at its stable path or explicitly migrate/remove that lifecycle before restore.
AbilityLifecycleDefinitionMismatchThe loaded Ability differs from the saved stable ID, Save Compatibility Version, execution type, cast time, channel duration, or channel period.Restore a behavior-compatible asset or run an explicit project SaveGame migration; do not continue old timing under changed authoring.
MissingAbilityLifecycleTargetBindingAn externally targeted lifecycle was captured without a stable relationship key or restored without its runtime target binding.Store a project-owned stable target key during capture, recreate the target, and supply the matching key plus new entity handle during restore.
AbilityLifecycleTargetReferenceMismatchThe supplied runtime target binding's project-owned key does not equal the key saved with the lifecycle.Resolve the exact saved relationship and resubmit with the identical key; do not guess by Actor, position, or array order.
InvalidAbilityLifecycleTargetThe external target binding is unset, stale, not a live full-generation entity, or collapses the external relationship onto the restored source.Recreate and resolve the intended distinct target entity, then retry with its current handle.

EMFEntityStateLifecycleTargetMode

Describes the portable target relationship stored for one format-4 active Ability Lifecycle.

ValueCause or meaningRecommended response
NoneThe active cast/channel has no target and stores no target reference.Use the ordinary capture and restore nodes; do not invent a binding.
SelfThe active cast/channel targeted the saved entity itself.Use the ordinary restore path; Mass Forge rebinds it to the restored destination entity.
ExternalThe active cast/channel targeted another entity, represented only by a project-owned stable relationship key in the save.Recreate the target and supply the matching key plus its current full-generation handle to the lifecycle-target restore variant.

EMFGameplayTagResult

Used by counted tag mutations and queries.

ValueCause or meaningRecommended response
SuccessThe tag operation or query completed.Use the exact count and hierarchical-match fields as appropriate.
InvalidWorldNo live Gameplay Tag subsystem was available.Supply a valid world context.
InvalidEntityThe entity handle is unset or stale.Reacquire the entity handle.
MissingFragmentThe entity lacks the Mass Forge Gameplay Tag fragment.Add the Gameplay Tag Trait to its Entity Config.
InvalidTagThe Gameplay Tag is empty or not registered.Select a registered project tag.
InvalidCountThe requested add/remove count is outside the supported positive range.Pass a positive bounded count.
TagNotFoundA remove/query expected an exact owned tag that is absent.Treat absence as gameplay state or correct the requested tag.
InsufficientCountRemoval exceeds the exact owned count.Clamp the request deliberately or correct the producer.
CountOverflowAdding would exceed the compact counter's supported maximum.Reduce stacking or redesign the counter semantics.
NoFreeTagSlotThe entity's bounded tag fragment is full.Remove unused tags or redesign the archetype/state budget.
MassIsProcessingDirect tag access would overlap Mass processing.Use the queued Add/Remove node for one raw count change, or a queued Instant Effect for an atomic multi-change transaction.
QueueFullThe bounded counted-tag queue has no pending capacity.Defer or shed the burst; tune queue limits only after profiling.
InvalidOperationNative code supplied an out-of-range tag-operation enum value.Pass only Add or Remove; treat other values as corrupted input.

EMFEffectDispatchResult

Returned by Entity/Actor cross-ownership Instant Effect dispatch.

ValueCause or meaningRecommended response
SuccessExactly one supported target route accepted the effect.Inspect Route, resolved endpoints, and the nested application result.
InvalidWorldNo live world/subsystem could be resolved.Pass a context object from the intended game world.
InvalidSourceThe explicit source Actor/entity is invalid or cross-world.Correct or omit the optional source as the node contract allows.
InvalidTargetThe target Actor/entity is null, stale, or cross-world.Reacquire a live target.
InvalidEffectThe Instant Effect asset is null or invalid.Repair the effect asset and validate its dependencies.
UnsupportedTargetThe Actor is neither Mass-represented nor an effect receiver.Add the receiver interface/component or use a supported Mass entity target.
MultipleReceiversMore than one receiver component would make routing ambiguous.Keep exactly one receiver component or implement the Actor interface directly.
EntityApplicationFailedThe Mass route was selected but its atomic effect transaction failed.Inspect EntityResult and EntityApplication for the precise failure.
ReceiverRejectedThe selected ordinary-Actor receiver declined the effect.Inspect project receiver logic; retry only when its rejection condition changes.

EMFPersistentEffectResult

Used by persistent-effect application, removal, query, stacking, and periodic execution.

ValueCause or meaningRecommended response
SuccessThe requested persistent-effect operation completed.Use the handle, stack disposition, and timing data returned.
InvalidWorldNo live persistent-effect subsystem was available.Supply a valid world context.
InvalidEntityThe target handle is unset or stale.Reacquire the entity.
MassIsProcessingDirect fragment access would overlap Mass processing.Schedule the operation from a safe phase.
InvalidEffectThe Persistent Effect asset is null or fails validation.Repair its ID, duration, stacking, modifiers, tags, and dependencies.
MissingFragmentThe entity lacks persistent-effect instance storage.Add the Persistent Effects Trait.
MissingAttributeModifierFragmentReversible attribute modifiers require storage absent from the archetype.Enable persistent attribute modifiers in the Entity Config.
MissingAttributeFragmentAn authored modifier or pulse targets a missing attribute domain fragment.Add the Attributes Trait/domain or change the effect.
MissingAttributeSchemaA required attribute domain schema is not configured.Configure the schema in project settings.
UnknownAttributeAn authored stable attribute ID no longer resolves.Repair the asset or migrate the attribute identity.
MissingMagnitudeParameterA context-backed magnitude lacks its named scalar.Supply the parameter or correct the effect asset.
InvalidModifierMagnitudeA resolved persistent modifier is NaN or infinite.Correct authored values, context inputs, or custom calculations.
AttributeCaptureFailedSnapshot-at-application could not read a required source/target attribute.Inspect the failed binding, fragments, entity, and processing phase.
AttributeCaptureCapacityExceededThe effect needs more captured values than its bounded instance storage permits.Reduce unique captures or split the effect.
ModifierCapacityExceededApplying the effect would overflow bounded persistent modifier storage.Remove/split modifiers or budget more storage in a future archetype design.
NoFreeEffectSlotThe entity has no free persistent-effect instance slot.Remove/expire effects or reduce simultaneous effect variety.
InvalidHandleA remove/query handle is unset, malformed, or for another entity.Retain the exact returned handle and validate ownership before use.
NotFoundThe handle was once plausible but no active instance matches it.Treat it as already removed/expired and discard the handle.
InitialApplicationFailedThe authored apply-on-start periodic/instant payload failed atomically.Inspect the nested Instant Effect inputs and target configuration.
StackLimitReachedThe selected stacking rule cannot add another stack.Treat this as expected gameplay or choose a refresh/replace policy.
StrongerOrEqualEffectActiveStrongest-wins rejected a weaker or equal incoming effect.Keep the current effect or submit a genuinely stronger value.
StackOperationInProgressRe-entrant listener code attempted to alter the same stack transaction.Defer the nested operation and avoid recursive mutation.
IncompatibleStackAn existing stable stack identity has incompatible authored/runtime structure.Keep stack definitions structurally consistent and use a new ID for a different contract.
MissingGameplayTagFragmentEffect tag gates/grants require tag storage absent from the entity.Add the Gameplay Tag Trait.
MissingRequiredTagThe target lacks an authored prerequisite tag.Treat as a gameplay gate or grant the prerequisite first.
BlockedByTagThe target owns an authored immunity/blocking tag.Respect the immunity or remove it through an explicit cleanse/dispel flow.
GameplayTagFailureLifecycle tag validation or atomic tag mutation failed.Inspect tag validity, counts, capacity, and the entity's tag fragment.
QueueFullThe bounded persistent Apply/Remove queue has no pending capacity.Defer or shed the burst; tune limits only after measuring queue pressure.
MagnitudeCalculationFailedA persistent attribute contribution's custom calculation failed before the instance committed.Inspect the failed modifier and nested calculation response; the effect and all lifecycle changes remain unapplied.

EMFPersistentEffectStackDisposition

Describes what a successful persistent-effect application did to stack state.

ValueCause or meaningRecommended response
AddedNewInstanceA new independent or first stack instance was created.Track the returned handle when later removal/query is needed.
RefreshedExistingExisting duration/timing was refreshed without creating a new instance.Refresh presentation timing for the existing handle.
ExtendedExistingExisting duration was increased by the stacking rule.Update duration UI from the returned live state.
ReplacedExistingThe previous compatible instance was removed and replaced.Stop old presentation and bind to the returned replacement handle.
ReplacedWithStrongerStrongest-wins accepted the incoming stronger instance.Present the upgraded magnitude and replacement lifecycle.

EMFPersistentEffectRemovalReason

Published when a persistent effect leaves active state.

ValueCause or meaningRecommended response
ManualA caller explicitly removed or dispelled the instance.End presentation normally and record the manual source if needed.
ExpiredFinite duration reached zero.End duration UI/VFX and release the handle.
ReplacedA stacking rule replaced the instance.Transition presentation to the replacement instance.
EntityInvalidatedThe owning entity was destroyed or became invalid.Drop all project-side references without targeting the old handle.
CancelledA classification cleanse/cancel or lifecycle rollback removed it.Use project context/events to explain the cancellation when relevant.

EMFDamageResult

Used by immediate damage applications, queued receipts, and queued completions.

ValueCause or meaningRecommended response
SuccessDamage calculated and committed atomically.Use the complete calculation, shield/health, critical, death, and context fields.
InvalidWorldNo live damage subsystem was available.Supply a valid world context.
MassIsProcessingImmediate damage would overlap Mass processing.Use Queue Mass Forge Damage.
InvalidDefinitionThe Damage Definition is null or fails validation.Repair it in the authoring overview and rerun Project Health.
InvalidSourceA required source entity/Actor is invalid.Reacquire the source or use an environmental/Actor request allowed by the definition.
InvalidTargetThe target entity is unset, stale, or lacks required state.Reacquire a valid damageable target.
SelfDamageDisallowedSource and target match while the definition forbids self damage.Choose another target or explicitly enable self damage.
TargetAlreadyDeadThe target already satisfies the configured death condition.Suppress repeat hits/rewards and wait for lifecycle handling.
MissingRequiredTagThe target lacks a tag required by the definition.Treat as a gate or establish the prerequisite tag first.
BlockedByTagAn authored immunity/blocking tag is present.Respect or explicitly remove the immunity.
BlockedByPolicyA project damage-policy provider vetoed the request.Inspect BlockingPolicyId and BlockingPolicyReason.
PolicyEvaluationInProgressA provider re-entered damage while policies were already being evaluated.Defer nested damage and keep providers side-effect-free.
GameplayTagFailureRequired/death tag work failed validation or atomic commit.Inspect GameplayTagResult, failed tag, trait, counts, and capacity.
AttributeReadFailedA configured formula attribute could not be read.Inspect AttributeResult and FailedAttribute; repair schema/archetype setup.
InvalidMagnitudeBase damage or a resolved calculation became NaN, infinite, or invalid.Sanitize inputs and definition values before applying damage.
TransactionFailedThe final atomic Health/Shield/death-tag effect failed.Inspect the nested transaction result and failed operation.
QueueFullThe bounded pending-damage queue is full.Throttle damage producers or raise the measured queue budget.

EMFDamagePolicyDecision

Each policy provider returns one decision; any Deny vetoes the damage request.

ValueCause or meaningRecommended response
AbstainThis provider has no opinion for the request.Continue evaluating later providers.
AllowThis provider permits the request but does not override another provider's veto.Continue evaluation; use it for diagnostics if desired.
DenyThis provider blocks the request.Supply stable policy/reason IDs and present the relevant gameplay feedback.

EMFDamagePolicyProviderResult

Returned by damage-policy provider registration and unregistration.

ValueCause or meaningRecommended response
SuccessRegistration/unregistration changed the live provider registry.Continue normal lifecycle handling.
InvalidWorldNo live damage subsystem was available.Register from a live object in the intended world.
InvalidProviderThe provider is null, destroyed, or lacks the required interface.Pass a live implementing object/component.
WrongWorldThe provider belongs to a different world.Register it with its own world's subsystem.
AlreadyRegisteredThe same live provider is already present.Treat setup as idempotent; do not add another registration.
CapacityReachedThe bounded world provider registry is full.Consolidate policy rules or remove unused providers.
EvaluationInProgressRegistry mutation was attempted during a policy callback.Defer registration changes until evaluation completes.
NotRegisteredUnregistration found no matching live provider.Treat it as already removed or correct the lifecycle pairing.

EMFDeathHandlingRequestResult

Describes the immediate post-death lifecycle request attached to successful killing damage.

ValueCause or meaningRecommended response
NotRequestedThe target survived or the definition keeps dead entities.Apply project lifecycle behavior only if separately configured.
ProjectDeactivationRequestedMass Forge emitted a request for project-owned pooling/deactivation.Handle the request ID once and report completion in project logic.
DestructionQueuedSafe deferred Mass-entity destruction was accepted.Correlate the later destruction completion with the request ID.
QueueFullDeferred destruction could not be scheduled.Keep the dead entity inert, throttle deaths, and retry through controlled project logic if appropriate.

EMFDeathDestructionResult

Final result published for queued Mass-entity destruction.

ValueCause or meaningRecommended response
DestroyedThe generation-checked entity was still valid and was destroyed.Release project-side presentation and references.
EntityAlreadyInvalidThe entity was already destroyed/reused before the request executed.Treat destruction as terminal and never act on the old handle.

EMFAbilityResult

Shared by ability ownership, checks, activation, lifecycle control, AI requests, and queued operation receipts/completions.

ValueCause or meaningRecommended response
SuccessThe operation completed or an activation/lifecycle request was accepted.Inspect the enclosing receipt/result for request ID and committed effects.
InvalidWorldNo live ability subsystem was available.Supply a valid world context.
InvalidEntityThe source entity is unset or stale.Reacquire the source handle.
MissingAbilityFragmentThe source archetype lacks ability state.Add the Mass Forge Ability Trait.
InvalidAbilityThe Ability asset is null, invalid, or changed incompatibly.Repair it in the authoring overview and rerun Project Health.
NotGrantedThe source does not own the requested stable ability ID.Grant it first or correct the ID.
AlreadyGrantedA grant request targeted an already-owned ability.Treat the grant as unnecessary or revoke deliberately before replacement.
NoFreeAbilitySlotThe compact ability fragment has no free grant slot.Revoke an ability or reduce the loadout.
QueueFullThe shared bounded Activate/Grant/Revoke/Cancel/Interrupt or AI-request capacity is exhausted.Throttle producers or increase the measured budget.
TargetRequiredThe ability requires a target but none was supplied.Select and pass a valid target.
InvalidTargetThe supplied target is stale or otherwise invalid.Reacquire the target.
SelfTargetNotAllowedSource and target match while self-targeting is disabled.Select another target or change the authored targeting rule.
TargetingPolicyRejectedA targeting policy denied the source/target pair.Inspect the policy result/index/ID and correct range or project conditions.
TargetingPolicyEvaluationInProgressPolicy code re-entered activation during evaluation.Keep policies side-effect-free and defer nested activation.
OnCooldownThe individual ability cooldown has not expired.Wait for the reported remaining time.
OnCooldownGroupA shared/global cooldown group is active.Query the group remaining time and wait.
NoFreeCooldownGroupSlotStarting a new named cooldown would exceed bounded group storage.Consolidate group names or reduce simultaneous groups.
NoChargesThe ability has no available charge.Wait for charge recovery or change the loadout rules.
CannotAffordOne or more cost attributes are below their required values.Inspect the failed cost/attribute and restore resources.
RequirementNotMetAn authored source/target attribute comparison failed.Inspect the requirement index, subject, observed value, and threshold.
MissingGameplayTagFragmentAbility tag gates/effects require tag storage absent from an entity.Add the Gameplay Tag Trait to the relevant archetype.
MissingRequiredTagA required source/target tag is absent.Establish the prerequisite or treat this as an expected gate.
BlockedByTagA source/target blocking tag is present.Respect or explicitly cleanse the blocking state.
InvalidAttributeA cost, requirement, or nested effect references an unresolved attribute.Repair the stable attribute ID/schema dependency.
MissingMagnitudeParameterA nested effect needs a context scalar missing from the ability defaults/context.Add the named default/input parameter.
GameplayTagEffectFailedA nested tag transaction failed.Inspect failed tag details, counts, capacity, and fragment setup.
PersistentEffectFailedA referenced persistent effect could not apply.Inspect the nested persistent result and asset/archetype setup.
TransactionInProgressRe-entrant code attempted a conflicting ability transaction.Defer nested work until the current transaction/event returns.
ActiveAbilityInProgressThe source already has an active cast/channel.Wait, cancel/interrupt it when allowed, or reject the new input.
NoActiveAbilityA lifecycle query/control request found no active cast/channel.Treat it as already ended and clear stale presentation.
CancellationBlockedThe active ability does not permit voluntary cancellation.Continue it or use a permitted interruption path.
InterruptionBlockedThe active ability is immune to interruption.Respect the authored rule.
InvalidRequestIdA supplied AI request ID is non-positive or malformed.Retain the positive ID returned by an accepted receipt.
RequestNotFoundNo tracked AI request matches the ID.Correct the ID or treat it as expired/forgotten history.
RequestNotTerminalForget was requested while the AI ticket is still pending/active.Cancel or wait for a terminal state first.
RequestAlreadyTerminalA control operation targeted a ticket that has already finished.Read its terminal state and stop issuing control requests.
RequestCancelledA queued AI activation was cancelled before execution.Treat it as a terminal cancellation, not a system failure.
InvalidEffectA referenced Instant/Persistent Effect is invalid at execution time.Repair the dependency and rerun Project Health.
MassIsProcessingDirect ability state access would overlap Mass processing.Use the matching queued operation or invoke the direct operation from a safe phase.
LifecycleChangedA queued Cancel/Interrupt captured one lifecycle ID, but a different lifecycle is now active on that source.Treat the request as safely stale; inspect the new lifecycle and submit a new request only if it should also stop.
ConditionRejectedA project-authored activation condition returned a non-passing response.Inspect the failed condition index, stable condition ID, result, and reason; treat expected game-rule denial separately from invalid configuration.
ConditionEvaluationInProgressCondition code re-entered ability admission while another condition was being evaluated.Keep conditions side-effect-free and defer nested gameplay work until the current activation completes.
MagnitudeCalculationFailedA nested Instant Effect custom magnitude failed while the ability transaction was staged.Inspect FailedEffectId, FailedModifierIndex, and MagnitudeCalculationResponse; costs, effects, cooldown, charges, and lifecycle state remain uncommitted.
ExecutionPlanRejectedThe assigned execution plan rejected evaluation or returned invalid, unsafe, or over-limit output.Inspect ExecutionPlanResponse, its stable plan ID/result/reason, and the plan's returned references and parameters; activation state remains uncommitted.
ExecutionPlanEvaluationInProgressPlan code re-entered ability admission while another plan evaluation was active.Keep execution plans deterministic and side-effect-free; defer nested gameplay operations until the current evaluation returns.

EMFAbilityExecutionPlanResult

Detailed response from an optional Blueprint/C++ Ability Execution Plan.

ValueCause or meaningRecommended response
SuccessThe plan returned a payload that may proceed to framework validation and transaction staging.Let Mass Forge validate and commit it; do not apply the described effects manually.
RejectedProject logic intentionally declined to produce an activation or channel-pulse payload.Inspect the stable plan ID/reason and treat expected gameplay denial separately from setup failure.
InvalidWorldThe query lacks a live world or crosses world ownership.Evaluate from the same active world as the source and target.
InvalidSourceThe query's source entity or Actor is no longer valid.Reacquire the source and retry only through normal ability admission.
InvalidTargetTarget output requires a valid target, or the supplied target/Actor is stale or cross-world.Enable the Ability's target contract and pass a current target from the same world.
InvalidConfigurationThe plan is missing/unloadable/unidentified, has an invalid merge mode, or uses the unimplemented fail-closed base class.Repair or implement the plan, assign a unique PlanId, and rerun Data Validation and Project Health.
RecursiveEvaluationPlan code triggered another plan evaluation before returning.Remove gameplay mutations and nested activation from the callback; return only a transaction description.
OutputLimitExceededThe payload exceeds 64 combined effects or 64 parameter overrides.Split the design into bounded operations or reduce the payload; do not raise hidden per-activation work.
InvalidEffectA returned effect is missing, unloadable, unidentified, or Persistent Effect output was returned for a channel pulse.Repair the reference/ID and keep channel payloads Instant-only.
InvalidParameterA returned parameter has no name or a NaN/infinite value.Supply a stable non-empty name and finite scalar.

EMFAbilityRequestOperation

Identifies which operation produced an FMFAbilityRequestCompletion.

ValueCause or meaningRecommended response
ActivateThe request attempted an Ability activation or cast/channel admission.Inspect Result and the nested activation diagnostics.
GrantThe request attempted to add a validated Ability definition to the entity.On failure, inspect the entity, definition, and bounded grant capacity.
RevokeThe request attempted to remove one submitted Ability ID and its runtime state.Treat NotGranted as an already-absent ownership state when appropriate.
CancelThe request attempted voluntary cancellation of the exact captured lifecycle.Handle blocked, ended, or replaced lifecycles explicitly.
InterruptThe request attempted external interruption of the exact captured lifecycle.Handle immunity, ended, or replaced lifecycles explicitly.

EMFAbilityTargetingPolicyResult

Detailed response from a reusable ability targeting policy.

ValueCause or meaningRecommended response
AllowedThe policy accepts this source/target pair.Continue evaluating later policies.
RejectedCustom policy logic rejected the pair.Inspect the policy's stable reason and provide gameplay feedback.
InvalidWorldThe policy query has no valid world.Supply a live world context.
InvalidSourceThe source entity/Actor is invalid for this policy.Reacquire or correct the source.
InvalidTargetThe target entity/Actor is invalid for this policy.Reacquire or correct the target.
MissingSourcePositionThe selected position source cannot resolve a source location.Add a Mass transform/representation or change the policy position mode.
MissingTargetPositionThe selected position source cannot resolve a target location.Add a Mass transform/representation or change the policy position mode.
BelowMinimumRangeDistance is smaller than the authored minimum.Move apart or adjust the validated minimum.
BeyondMaximumRangeDistance exceeds the authored maximum.Move closer or adjust the validated maximum.
InvalidConfigurationPolicy settings are contradictory or non-finite.Repair and validate the policy asset.

EMFAbilityConditionResult

Detailed response from a reusable project-authored activation condition.

ValueCause or meaningRecommended response
PassedThe condition allows activation to continue.Continue evaluating later conditions.
RejectedProject logic intentionally denied activation.Inspect the stable condition ID and reason, then provide appropriate gameplay feedback.
InvalidWorldThe condition cannot resolve required authoritative world state.Supply a live world or repair the condition's world-state dependency.
InvalidSourceThe source entity/Actor is unusable for this condition.Reacquire the source or handle actorless entities explicitly.
InvalidTargetThe optional/required target is unusable for this condition.Require and reacquire a target or handle an unset target explicitly.
InvalidConfigurationThe condition asset is unimplemented or configured incorrectly.Implement Evaluate Condition, repair the asset, and rerun validation/Project Health.

EMFAbilityTargetSelectionResult

Top-level result for built-in and provider-driven target selection.

ValueCause or meaningRecommended response
SuccessSelection completed; an empty target array can still be a valid result.Use bounded targets and inspect truncation/diagnostic counts.
InvalidWorldNo live Mass world could be resolved.Supply a valid world context.
MassIsProcessingThe query cannot safely inspect Mass entity data now.Run selection from a safe phase.
InvalidSourceA required source entity/Actor is invalid.Reacquire or correct the source.
InvalidTargetA collision hit did not resolve to a valid Mass target.Treat it as a miss or resolve another target.
InvalidRequestRadius, trace, bounds, or parameter inputs are invalid/non-finite.Sanitize origin/end/radius/max-target inputs.
InvalidProviderThe custom provider is null, invalid, or lacks the interface.Pass a live implementing provider.
ProviderEvaluationInProgressProvider selection was re-entered recursively.Keep the provider side-effect-free and defer nested selection.
ProviderFailedThe provider returned a non-success response.Inspect ProviderId and Reason, then correct project logic or inputs.

EMFAbilityTargetProviderResult

Authored response returned by a custom target provider before Mass Forge sanitizes its handles.

ValueCause or meaningRecommended response
SuccessThe provider produced a candidate list for validation.Return stable provider identity and let Mass Forge bound/de-duplicate it.
RejectedProject logic intentionally declined the query.Supply a stable reason and treat it as a controlled selection failure.
InvalidRequestProject logic considers the supplied query malformed/unsupported.Validate query parameters before invoking the provider.

EMFAbilityAIRequestStatus

Pollable lifecycle status for a tracked AI activation request.

ValueCause or meaningRecommended response
InvalidNo valid tracked state is represented.Check the enclosing query result and request ID.
PendingAccepted work is waiting in the bounded activation queue.Continue polling without resubmitting.
ActiveThe request started a live cast/channel lifecycle.Read lifecycle progress and continue polling.
SucceededActivation or lifecycle completed successfully.Consume the terminal result and forget the ticket when no longer needed.
FailedActivation or commit ended with a non-success result.Inspect the nested activation/lifecycle diagnostics.
CancelledThe request/lifecycle ended through allowed cancellation.Treat as a terminal controlled outcome.
InterruptedThe active lifecycle was interrupted.Treat as terminal and inspect interruption context in project events.

EMFAbilityLifecycleEndReason

Terminal reason published for a cast/channel lifecycle.

ValueCause or meaningRecommended response
CompletedThe lifecycle reached its authored end and committed successfully.Finish presentation and consume the activation result.
CancelledA permitted voluntary cancellation ended it.Roll back/stop presentation according to project UX.
InterruptedA permitted external interruption ended it.Present interruption feedback and clear active state.
CommitFailedFinal or periodic atomic work could not commit.Inspect the detailed ability/effect result and repair runtime prerequisites.
AbilityRevokedThe granted ability was removed while its lifecycle was active.Treat the lifecycle as terminated and update loadout UI.
SourceInvalidThe source entity became invalid before completion.Drop the lifecycle and all stale source references.

EMFHighVolumeEffectResult

Admission or terminal outcome for the per-entity compiled Apply/Remove mailbox.

ValueCause or meaningRecommended response
NoneThe mailbox has no admission or execution result.Submit a command or wait for a completed mailbox before consuming.
AcceptedA valid command now owns the entity's single mailbox.Wait for the high-volume processor and consume the correlated completion.
SuccessEvery compiled attribute/tag operation committed atomically.Consume the completion and release the mailbox.
BusyA pending command or unconsumed completion already owns the mailbox.Do not overwrite or spin; consume completion before resubmitting.
InvalidRequestIdThe project supplied correlation ID 0 or a negative value.Allocate a positive per-producer correlation ID.
InvalidEffectIndexThe numeric effect index is outside the archetype's compiled table.Resolve/cache the ID from the matching shared fragment before entity iteration.
InvalidOperationThe operation is neither Apply nor Remove.Pass a declared EMFHighVolumeEffectOperation value.
InvalidDefinitionThe selected compiled side is empty or exceeds its fixed capacity.Repair the trait/effect assets and recreate the entity template.
MissingAttributeSlotA compiled domain/slot cannot resolve against the entity fragments.Verify the Attributes Trait/schema and rebuild stale templates after schema changes.
InvalidMagnitudeExisting state, the compiled magnitude, or projected arithmetic is non-finite.Repair the source asset/state; the command changed nothing.
MissingGameplayTagFragmentThe selected side changes tags but this archetype has no tag fragment.Add/configure the Gameplay Tag Trait or remove tag operations from the pair.
GameplayTagFailureA projected tag operation failed validation, count, or capacity rules.Inspect GameplayTagResult and FailedOperationIndex; the command changed nothing.

EMFEntityInspectionResult

Returned by point-in-time entity inspection captures.

ValueCause or meaningRecommended response
SuccessA bounded snapshot was captured.Render its built-in/custom sections without treating them as simulation authority.
InvalidWorldNo live inspection subsystem was available.Select an object/entity from the intended active world.
InvalidEntityThe requested handle or represented Actor is invalid/stale.Reacquire the selection.
MassIsProcessingSnapshotting would overlap Mass processing.Refresh on a later editor/game tick.

EMFInspectionProviderResult

Returned by custom inspection-provider registration and unregistration.

ValueCause or meaningRecommended response
SuccessThe provider registry changed as requested.Pair registration with lifecycle-safe unregistration.
InvalidWorldNo live inspection subsystem was available.Register from a live object in the intended world.
InvalidProviderThe provider is null or no longer valid.Pass a live object.
UnsupportedProviderThe object does not implement the inspection-provider interface.Implement the interface or use the supplied component pattern.
AlreadyRegisteredThe provider is already in the registry.Treat setup as idempotent and avoid duplicate registration.
CapacityReachedThe bounded provider registry is full.Consolidate sections/providers or unregister unused providers.
NotRegisteredUnregistration found no matching provider.Treat it as already removed or correct lifecycle pairing.

EMFGameplayEventHistoryResult

Returned by bounded gameplay-event history queries and entity watch-list operations.

ValueCause or meaningRecommended response
SuccessThe query or watch-list operation completed.Consume the chronological records or continue the diagnostic session.
InvalidWorldThe gameplay-event subsystem no longer belongs to a live world.Reacquire the subsystem from the intended active world.
InvalidEntityA watch handle is unset, stale, or belongs to another entity generation.Reacquire a live entity handle before adding the watch.
AlreadyWatchedThe entity is already present in the bounded watch list.Treat the watch setup as idempotent; do not add a duplicate.
NotWatchedRemoval found no matching entity in the watch list.Treat it as already removed or verify the generation-sensitive handle.
WatchCapacityReachedThe watch list already contains its maximum 64 entities.Remove unused watches or divide diagnostics into smaller sessions.
InvalidLimitA history query requested fewer than 1 or more than 65,536 records.Supply a positive bounded maximum within the documented range.

EMFNetworkEntityReferenceResult

Returned when translating between a world-local Mass handle and an Unreal Mass session network identity.

ValueCause or meaningRecommended response
SuccessThe entity and session reference resolved to one current full generation.Use the reference only within this replicated world/session.
InvalidWorldThe world or Mass entity subsystem is unavailable.Reacquire the subsystem from the live network world.
InvalidEntityThe supplied Mass handle is unset or stale.Reacquire the complete current entity generation.
MissingNetworkIdentityThe entity has no valid Unreal Mass network-ID fragment.Add/configure the Mass Replication trait and wait for identity initialization.
InvalidNetworkReferenceThe incoming session reference is zero, negative, or larger than the native unsigned 32-bit Mass network-ID range.Send a valid replicated network identity, never an entity index or an unchecked Blueprint integer.
UnknownNetworkReferenceNo authoritative registration or client bubble mapping currently owns the ID.Wait for relevance/registration or discard a reference from another session.
StaleNetworkReferenceThe cached mapping no longer matches a live entity with the same ID.Discard the mapping and reacquire current replicated state.

EMFNetworkEntityRegistryResult

Returned by the authority-side constant-time network identity registry.

ValueCause or meaningRecommended response
SuccessThe authority registry changed as requested.Pair registration with entity retirement/unregistration.
InvalidWorldNo live network world is available.Register through the intended world's authority subsystem.
NotServerAuthorityRegistration was attempted on a remote client.Register only where the authoritative Mass entity exists.
InvalidEntityThe supplied handle is unset or stale.Reacquire the server's current entity generation.
MissingNetworkIdentityThe entity has no initialized Mass network ID.Configure Mass Replication before registering gameplay identity.
DuplicateNetworkIdentityThe ID already maps to a different live entity.Repair entity creation/identity assignment; never overwrite the earlier mapping.
AlreadyRegisteredThe same ID already maps to the same full entity generation.Treat setup as idempotent.
NotRegisteredUnregistration found no entry for that entity generation.Treat it as already retired or repair lifecycle pairing.

EMFNetworkDefinitionRegistryResult

Returned by the authority-owned catalog of definitions approved for future network dispatch. Client input never loads assets into this catalog.

ValueCause or meaningRecommended response
SuccessThe catalog operation completed.Continue with the returned kind/ID or resolved server object.
InvalidWorldNo live network world is available.Register during authoritative world or match setup.
NotServerAuthorityA remote client attempted to maintain or resolve the trusted catalog.Perform catalog work only on server authority.
InvalidDefinitionThe supplied Primary Data Asset is null, destroyed, or otherwise invalid.Retain and pass a live server-owned definition.
UnsupportedDefinitionTypeThe asset is not a Mass Forge Ability, Instant Effect, Persistent Effect, or Damage Definition.Register only an explicitly supported gameplay definition family.
MissingDefinitionIdThe definition or lookup has no stable authored ID.Assign and validate the asset's stable ID before match setup.
DuplicateDefinitionIdAnother object already owns that ID within the same definition family.Rename or remove the conflicting server definition; never replace it implicitly.
AlreadyRegisteredThe same object already owns that family/ID entry.Treat repeated setup as idempotent.
NotRegisteredExplicit unregistration found no entry for that object.Treat it as already released or repair setup/teardown pairing.
UnknownDefinitionThe requested family/ID was never admitted by the server.Reject the client request or explicitly register the preloaded asset during setup.
StaleDefinitionA registered object became invalid or its authored ID changed after admission; the stale entry was removed.Restore immutable runtime definitions and explicitly register the corrected object again.

EMFNetworkRequestResult

Returned by server-side validation of an untrusted client request descriptor. Success authorizes later dispatch but is not a gameplay receipt.

ValueCause or meaningRecommended response
SuccessIdentity validation passed and at least one project policy allowed the request without a veto.Dispatch through the operation's bounded authoritative queue and correlate its separate receipt.
InvalidWorldThe authority subsystem has no live world.Reacquire it from the current server world.
NotServerAuthorityA remote client attempted to evaluate authority policy.Send through an owner-bound server RPC adapter instead of evaluating locally.
InvalidRequestIdThe client-local correlation ID is zero or negative.Allocate a positive client-local ID before submission.
InvalidOperationThe operation is unset, structurally incomplete, has a non-finite magnitude, or has a negative count.Build a valid operation-specific descriptor before transport.
InvalidRequesterThe requester Player Controller is null/destroyed.Invoke from the owning live connection.
WrongRequesterWorldThe requester belongs to a different world.Reject cross-world input and reacquire the correct connection.
InvalidSourceReferenceThe request supplied no source network identity.Send the authoritative source entity's session reference.
InvalidTargetReferenceDamage or Persistent Effect Remove omitted its required target.Supply the intended target's current session reference.
SourceEntityUnavailableThe source reference is unknown or stale on authority.Stop retrying stale IDs; wait for current ownership/relevance state.
TargetEntityUnavailableThe optional/required target reference is unknown or stale.Reacquire the target or reject the action in UI.
NoAllowingPolicyNo live project policy explicitly allowed the request.Install/repair a bounded ownership policy; do not change the default to implicit allow.
DeniedByPolicyA project policy vetoed the request.Use the deciding policy ID/reason for diagnostics and do not dispatch.
InvalidPolicyResponseA non-Abstain response omitted its stable policy ID or returned an unknown decision.Repair the provider implementation; the request changed nothing.
EvaluationInProgressA policy recursively evaluated or changed the registry during evaluation.Remove policy re-entry and defer follow-up work until evaluation returns.

EMFNetworkStateResult

Returned when maintaining or immediately refreshing one Player Controller's owner-only gameplay-state relevance set.

ValueCause or meaningRecommended response
SuccessRelevance changed or the requested capture completed without truncation.Consume the initial/current state or wait for later semantic update events.
InvalidWorldThe component or required world subsystem has no live world.Reacquire the owning Player Controller and component from the active network world.
InvalidOwnerThe component is not the sole Mass Forge state component on a live Player Controller.Install exactly one state component as a default Player Controller component.
NotServerAuthorityA client attempted to add, remove, clear, or force authority relevance.Make relevance decisions on the server; clients only query replicated state.
InvalidEntityThe authoritative Mass handle is unset, stale, or was invalidated during refresh.Reacquire the current generation or allow automatic relevance removal to complete.
MissingNetworkIdentityThe entity does not yet carry an initialized Mass network ID.Configure Mass Replication and add relevance only after identity initialization.
AlreadyRelevantThe same session identity is already in this connection's relevance set.Treat setup as idempotent and query its existing state.
NotRelevantRemoval or forced refresh found no matching session identity.Treat removal as already complete or add the entity on authority first.
CapacityReachedThis connection reached its configured relevant-entity bound.Remove stale interest entries or raise the profiled bound deliberately.
CaptureDeferredMass was processing, so relevance was retained without reading unstable fragments.Wait for the bounded scheduled retry and its Added/Updated event.
CaptureFailedRegistry setup, a section result combination, or a fixed payload capacity prevented a complete baseline.Inspect entity traits/capacities and correct setup; Mass Forge never sends a truncated state.
StaleNetworkIdentityA relevant entity's Mass network ID changed after its connection binding was created.Retire the stale relevance entry and register/add the entity under its current immutable session identity.
InvalidAttributeRuleAn attribute rule has an unset ID, a negative/non-finite step, a duplicate Attribute ID, or the rule array exceeds the fixed attribute capacity.Correct the complete rule set and configure it again; the previous runtime policy remains unchanged.

EMFNetworkRequestPolicyProviderResult

Returned when maintaining the bounded weak server request-policy chain.

ValueCause or meaningRecommended response
SuccessThe policy registry changed as requested.Keep lifecycle-safe registration/unregistration pairing.
InvalidWorldNo live authority world exists.Register from a world-owned server object.
NotServerAuthorityA remote client attempted to own server request policy.Install the provider on Game State or another authority-owned object.
InvalidProviderThe object is null or does not implement the policy interface.Pass a live IMF_NetworkRequestPolicy object/component.
WrongWorldThe provider belongs to another world.Register with its own world's subsystem.
AlreadyRegisteredThe provider is already present.Treat setup as idempotent.
NotRegisteredUnregistration found no matching live provider.Treat it as already removed or correct teardown pairing.
CapacityReachedSixteen live providers are already registered.Consolidate related project checks or unregister unused providers.
EvaluationInProgressRegistration changed while a request policy chain was executing.Defer registry mutation until the evaluation has returned.

EMFNetworkClientSubmissionResult

Returned immediately on the owning machine when handing a descriptor to the Player Controller request component. Submitted means only that the unreliable RPC was emitted or processed locally; wait for the server receipt before treating the request as accepted.

ValueCause or meaningRecommended response
SubmittedThe owner-bound component assigned a positive correlation ID and handed the request to transport.Store the ID and correlate the later server receipt and, if accepted, completion.
InvalidWorldThe component has no live world.Submit only after the owning Player Controller and component have entered a world.
InvalidOwnerThe component is not owned by a live Player Controller.Add it as a default component of the project Player Controller class.
NotLocallyControlledCode tried to submit through another connection's controller.Submit only through the local owning Player Controller.
RequestIdExhaustedThe component exhausted its positive signed 64-bit client request sequence.Recreate the connection/component; never wrap or reuse correlation IDs.

EMFNetworkTransportResult

Returned by the server receipt after owner, payload, replay, rate, outstanding-capacity, policy, catalog, and backend-queue admission checks.

ValueCause or meaningRecommended response
AcceptedThe request entered the matching bounded authoritative gameplay queue and has a positive backend ID.Wait for the correlated terminal completion; activation completion may mean a cast/channel lifecycle started, not ended.
InvalidOwnerThe replicated component is not owned by a live Player Controller.Install the component on the Player Controller class and do not reparent it at runtime.
NotServerAuthorityProcessing occurred outside authoritative server context.Repair component replication/ownership and submit through its generated Server RPC.
InvalidPayloadOperation fields, bounds, scalar count, identities, or finite-number requirements failed.Rebuild the operation-specific descriptor; the project policy and gameplay queues were not called.
ReplayOrOutOfOrderThe client ID was not greater than the last structurally valid ID received on this connection.Allocate IDs monotonically through Submit Network Request; never retry with an old ID.
RateLimitedThe connection exceeded its server-owned real-time request-window limit.Back off and configure an intentional per-game limit on the component class defaults.
TooManyOutstandingToo many accepted requests still await backend terminal events for this connection.Wait for completion; investigate stalled world processing if capacity does not recover.
AuthorizationRejectedThe authority subsystem or project policy chain rejected the request.Inspect AuthorizationResult, PolicyId, and Reason; never bypass the deny-by-default policy.
DefinitionRejectedThe stable ID did not resolve through the expected server-approved definition family.Preload/register the correct definition on authority; never load using the client name.
BackendUnavailableThe required Mass Forge world subsystem was unavailable.Verify plugin/world initialization and the operation's subsystem dependency.
BackendRejectedThe matching bounded gameplay queue rejected admission or returned no valid backend ID.Inspect the operation-specific result on the receipt, correct the request, or wait for queue capacity.
UnsupportedOperationThe common transport intentionally does not carry this operation, currently Entity State Restore.Keep save restoration on a trusted project-owned server path until a separately bounded snapshot channel is implemented.

Reading compound results

  • Attribute changes: branch on FMFAttributeChangeResult.Result, then use previous/new value and clamp state only on success.
  • Instant Effects: read the top-level attribute result first, then failed-operation/tag fields; successful operation arrays describe the atomic commit.
  • Damage: read FMFDamageApplicationResult.Result first. On layered failures, inspect AttributeResult, GameplayTagResult, FailedAttribute, FailedTag, policy identity/reason, and the nested transaction.
  • Abilities: read FMFAbilityActivationResult.Result first, then requirement, targeting-policy, cost, gameplay-tag, Instant Effect, and Persistent Effect details relevant to that code.
  • Queues: acceptance means Success plus a positive request ID. Rejection returns ID 0 and no completion. The later completion event is authoritative for execution-time success because complete entity generations and submitted definition identities are revalidated. See the deferred recovery matrix.
  • Actor dispatch: FMFEffectDispatchReceipt.Route identifies whether Mass, an Actor interface, or a receiver component was selected; never assume an Actor uses only one ownership path.
  • Projectiles: branch first on FMFProjectileLaunchReceipt.Result; after acceptance, use FMFProjectileResolveResult.Reason, then inspect the optional nested Damage result before treating impact as applied damage.

Mass Forge documentation — generated from the shipping Markdown source.