Easy Chapter Generator
EnglishEspañol

Choose a small integration by outcome

Wait, then advance

Connect a dialogue callback or the Chapter's external-animation gate without depending on a vendor.

Dialogue and Animation Gates

Fail, show UI, restart

Keep failure state, presentation, and recovery policy explicit and independently testable.

Failure Screen and Restart

Use a boolean condition

Persist a simple named fact and connect inventory or interaction without storing its full data.

Boolean State and Inventory

A recipe connects systems; it does not merge ownership

Each recipe starts from an authoritative project signal and passes only the information progression needs: an exact Objective ID, a boolean fact, a failure reason, an animation-release signal, or an adapter call. Easy Chapter Generator keeps the current ordered position; the dialogue, inventory, movement, interaction, or save system keeps its own domain state.

Copy the pattern, then replace sample names and callbacks with the project's real API. Check every bool or enum result at the boundary. A call that is safe to repeat may still be rejected because the intended row is no longer Active; that is useful information, not an exception to hide.

Production review for every integration

  • Which system is authoritative for the triggering condition?
  • Which exact Chapter/Objective state must be active?
  • Can the source callback fire twice, late, or after scene unload?
  • Who owns subscription cleanup, reset, and cancellation?
  • Does the integration need terminal progression persistence, separate save-game data, or both?
  • What observable test proves the accepted path and every rejected path?

For reusable scene detection, move from a recipe to Create a Custom Objective Component. For broader storage, keep the project's save system outside IProgressStore and use the adapter only for lightweight progression records.