API

Assembly: Spark.Requirements Interface: IRequirementsPlugin Implementation: RequirementsPlugin

Interface

public interface IRequirementsPlugin
{
    RequirementCheckResult CheckRequirement(RequirementEntry entry,
        RequirementContext context);
    RequirementCheckResult CheckRequirements(
        List<RequirementGroupEntry> groups, RequirementContext context);
    RequirementCheckResult CheckRequirementGroup(
        RequirementGroupEntry group, RequirementContext context);
    DetailedRequirementCheckResult CheckRequirementsDetailed(
        List<RequirementGroupEntry> groups, RequirementContext context);

    List<RequirementEntry> GetAllRequirementEntries();
    RequirementEntry GetRequirementEntry(string id);
}

Methods

CheckRequirement

Checks a single requirement. Delegates to the entry's RequirementTypeBase evaluator.

CheckRequirements

Checks all requirement groups. All groups must pass for the result to pass.

CheckRequirementGroup

Checks a single group using its configured logic (AND, OR, etc.).

CheckRequirementsDetailed

Returns per-requirement breakdowns for UI display or debugging.

RequirementEntry

Extends SparkDatabaseEntry. Defines a single requirement.

Field
Type
Description

requirementType

RequirementTypeBase

The evaluator script

requirementTypeData

RequirementDataAsset

Configuration for the evaluator

failureMessage

string

Message shown when the check fails

RequirementGroupEntry

Groups multiple requirements with logic operators.

Field
Type
Description

groupName

string

Label for the group

logic

RequirementGroupLogic

How checks combine

minimumRequired

int

Required passes for Threshold mode

checks

List<RequirementCheckEntry>

Individual checks

Each RequirementCheckEntry references a RequirementEntry and has an invertResult flag to negate the outcome.

RequirementGroupLogic

RequirementContext

Carries data for requirement evaluation.

Property
Type
Description

Source

GameObject

The entity being checked

Target

GameObject

Optional target entity

SourceEntry

SparkDatabaseEntry

Optional related database entry

CustomData

Dictionary<string, object>

Arbitrary key-value data

Methods:

RequirementCheckResult

Returned by all check methods.

DetailedRequirementCheckResult

Extended result with per-group and per-requirement breakdowns, including pass/fail counts.

Events

Event
Description

RequirementFailedEvent

Published when a requirement check fails (for logging/UI)

Creating Custom Requirement Types

Extend RequirementTypeBase:

Usage

Last updated

Was this helpful?