TableFlux logo
TableFlux
Store, library, campaigns
Back to docs

TableFlux Plugin Scaffold Templates (Generated)

Deterministic subsystem scaffold checklists and starter templates derived from [Plugin:*] source tags.

Plugin AuthorsActiveReference

TableFlux Plugin Scaffold Templates (Generated)

This file is generated deterministically from [Plugin:*] code tags. Do not hand-edit this file. Update source tags and re-run tools/generate-plugin-interface-docs.ps1.

#Summary

  • Generated (UTC): 2026-05-30T15:04:02.6003767Z
  • Subsystems with tags: 8
  • Required checklist items: 55

#How To Use

  1. Choose your subsystem section.
  2. Complete every Required Contracts, Entry Points, and Manifest/Folder item.
  3. Add required runtime call sites from Required Invocations.
  4. Use Optional Extension Points only when your plugin needs those capabilities.

#character_generation

#Required Entry Points

  • Default package values for character generation plugin packs. (ID: character_generation.registry.defaults, Owner: CharacterGenerationRegistry, Kind: registry, Source: scripts/gdscript/Plugins/CharacterGeneration/Shared/CharacterGenerationRegistry.gd:8)
  • Enumerates active character generation package configurations. (ID: character_generation.registry.get_package_configs, Owner: CharacterGenerationRegistry, Kind: method, Source: scripts/gdscript/Plugins/CharacterGeneration/Shared/CharacterGenerationRegistry.gd:21)
  • Registers character generation package config into PackageConfigRegistry. (ID: character_generation.registry.register_runtime_config, Owner: CharacterGenerationRegistry, Kind: method, Source: scripts/gdscript/Plugins/CharacterGeneration/Shared/CharacterGenerationRegistry.gd:16)

#Deterministic Starter Template

subsystem: character_generation
required_contract_ids:
  - (none)
required_entrypoint_ids:
  - character_generation.registry.defaults
  - character_generation.registry.get_package_configs
  - character_generation.registry.register_runtime_config
required_invoke_ids:
  - (none)
required_manifest_ids:
  - (none)
required_folder_ids:
  - (none)
optional_extension_ids:
  - (none)

#journals

#Required Contracts

  • Evaluates visibility policy for a journal entry. (ID: journals.access.can_view, Owner: JournalRegistry, Kind: method, Source: scripts/gdscript/Plugins/Rules/Shared/JournalRegistry.gd:65)

#Required Entry Points

  • Journal package resolver and entry normalization registry. (ID: journals.registry.defaults, Owner: JournalRegistry, Kind: registry, Source: scripts/gdscript/Plugins/Rules/Shared/JournalRegistry.gd:5)
  • Enumerates resolved journal package configs. (ID: journals.registry.get_package_configs, Owner: JournalRegistry, Kind: method, Source: scripts/gdscript/Plugins/Rules/Shared/JournalRegistry.gd:13)

#Required Invocations

  • Returns normalized journal entries for a package. (ID: journals.registry.get_entries, Owner: JournalRegistry, Kind: method, Source: scripts/gdscript/Plugins/Rules/Shared/JournalRegistry.gd:22)

#Deterministic Starter Template

subsystem: journals
required_contract_ids:
  - journals.access.can_view
required_entrypoint_ids:
  - journals.registry.defaults
  - journals.registry.get_package_configs
required_invoke_ids:
  - journals.registry.get_entries
required_manifest_ids:
  - (none)
required_folder_ids:
  - (none)
optional_extension_ids:
  - (none)

#minigames

#Required Contracts

  • Shared UI host interface provided to minigame plugins. (ID: minigame.interface.canvas, Owner: IMinigameCanvas, Kind: interface, Source: scripts/gdscript/IMinigameCanvas.gd:4)
  • Core interface every minigame plugin must implement. (ID: minigame.interface.core, Owner: IMinigame, Kind: interface, Source: scripts/gdscript/IMinigame.gd:3)
  • Apply authoritative state snapshots from host/server. (ID: minigame.method.apply_state_sync, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:86)
  • Initialize internal state after script instance creation. (ID: minigame.method.initialize, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:20)
  • Track a participant joining and map paddle index to peer. (ID: minigame.method.on_player_joined, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:40)
  • Handle participant departure and clean per-player state. (ID: minigame.method.on_player_left, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:46)
  • Receive shared MinigameCanvas host for plugin UI. (ID: minigame.method.set_canvas, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:60)
  • Receive MinigameManager bridge used for input/state RPC helper methods. (ID: minigame.method.set_manager, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:52)
  • Apply continuous normalized input for one participant. (ID: minigame.method.set_paddle_position, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:80)
  • Attach UI and begin runtime simulation for the active session. (ID: minigame.method.start, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:27)
  • Release runtime nodes and reset state. (ID: minigame.method.stop, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:34)

#Required Entry Points

  • Loads script_path as Script, creates instance, and wires manager/canvas hooks. (ID: minigame.manager.create_instance, Owner: MinigameManager, Kind: method, Source: scripts/gdscript/MinigameManager.gd:586)
  • Invokes initialize and set_* wiring hooks on plugin instance when available. (ID: minigame.manager.initialize_instance, Owner: MinigameManager, Kind: method, Source: scripts/gdscript/MinigameManager.gd:603)
  • Initial plugin loading path called on manager ready. (ID: minigame.manager.load_plugins, Owner: MinigameManager, Kind: method, Source: scripts/gdscript/MinigameManager.gd:163)
  • Consumes MinigameRegistry definitions and registers factories/metadata. (ID: minigame.manager.register_from_registry, Owner: MinigameManager, Kind: method, Source: scripts/gdscript/MinigameManager.gd:516)
  • Registers one minigame factory and metadata entry by game_id. (ID: minigame.manager.register_single, Owner: MinigameManager, Kind: method, Source: scripts/gdscript/MinigameManager.gd:556)
  • Built-in minigame definitions merged with discovered packaged definitions. (ID: minigame.registry.builtin_definitions, Owner: MinigameRegistry, Kind: registry, Source: scripts/gdscript/Plugins/Minigames/Shared/MinigameRegistry.gd:4)
  • Primary API to enumerate built-in and packaged minigame definitions. (ID: minigame.registry.get_definitions, Owner: MinigameRegistry, Kind: method, Source: scripts/gdscript/Plugins/Minigames/Shared/MinigameRegistry.gd:50)

#Required Invocations

  • Primary container where plugin controls should be attached. (ID: minigame.canvas.get_root_container, Owner: IMinigameCanvas, Kind: method, Source: scripts/gdscript/IMinigameCanvas.gd:12)
  • Call to launch minigame session with optional context and participant restrictions. (ID: minigame.manager.start_with_options, Owner: MinigameManager, Kind: method, Source: scripts/gdscript/MinigameManager.gd:216)

#Required Manifest Rules

  • Manifest filename required for packaged minigame discovery. (ID: minigame.manifest.filename, Owner: MinigameRegistry, Kind: manifest, Source: scripts/gdscript/Plugins/Minigames/Shared/MinigameRegistry.gd:44)
  • Required keys: game_id or package_id, display_name or package_name, script_path (ID: minigame.manifest.required_keys, Owner: MinigameRegistry, Kind: manifest, Source: scripts/gdscript/Plugins/Minigames/Shared/MinigameRegistry.gd:126)

#Required Folder Rules

  • Recursive scan roots searched for minigame_package.json manifests. (ID: minigame.manifest.scan_roots, Owner: MinigameRegistry, Kind: path, Source: scripts/gdscript/Plugins/Minigames/Shared/MinigameRegistry.gd:46)

#Optional Extension Points

  • [Contract] Optional interface for reliable discrete action handling. (ID: minigame.interface.action_receiver, Owner: IMinigameActionReceiver, Kind: interface, Source: scripts/gdscript/IMinigameActionReceiver.gd:3)
  • [Contract] Process reliable action id plus integer payload. (ID: minigame.method.handle_player_action, Owner: IMinigameActionReceiver, Kind: method, Source: scripts/gdscript/IMinigameActionReceiver.gd:9)
  • [Contract] Process reliable action id plus dictionary payload. (ID: minigame.method.handle_player_action_payload, Owner: IMinigameActionReceiver, Kind: method, Source: scripts/gdscript/IMinigameActionReceiver.gd:15)
  • [Contract] Receive authoritative list of peers allowed to interact. (ID: minigame.method.set_allowed_peer_ids, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:74)
  • [Contract] Receive launch payload for integrated rule-driven sessions. (ID: minigame.method.set_launch_context, Owner: IMinigame, Kind: method, Source: scripts/gdscript/IMinigame.gd:67)
  • [Invoke] Remove plugin controls from shared host container. (ID: minigame.canvas.clear, Owner: IMinigameCanvas, Kind: method, Source: scripts/gdscript/IMinigameCanvas.gd:51)
  • [Invoke] Helper scaling ratio to fit logical layout into active canvas. (ID: minigame.canvas.get_play_area_scale, Owner: IMinigameCanvas, Kind: method, Source: scripts/gdscript/IMinigameCanvas.gd:29)
  • [Invoke] Usable area after title/chrome offsets. (ID: minigame.canvas.get_play_area_size, Owner: IMinigameCanvas, Kind: method, Source: scripts/gdscript/IMinigameCanvas.gd:23)
  • [Invoke] Server-authoritative state sync broadcast API. (ID: minigame.manager.broadcast_state_sync, Owner: MinigameManager, Kind: method, Source: scripts/gdscript/MinigameManager.gd:504)
  • [Invoke] Reliable action API plugins should trigger for discrete actions. (ID: minigame.manager.send_action, Owner: MinigameManager, Kind: method, Source: scripts/gdscript/MinigameManager.gd:397)
  • [Invoke] Continuous input API plugins should trigger for movement updates. (ID: minigame.manager.send_paddle_input, Owner: MinigameManager, Kind: method, Source: scripts/gdscript/MinigameManager.gd:373)

#Deterministic Starter Template

subsystem: minigames
required_contract_ids:
  - minigame.interface.canvas
  - minigame.interface.core
  - minigame.method.apply_state_sync
  - minigame.method.initialize
  - minigame.method.on_player_joined
  - minigame.method.on_player_left
  - minigame.method.set_canvas
  - minigame.method.set_manager
  - minigame.method.set_paddle_position
  - minigame.method.start
  - minigame.method.stop
required_entrypoint_ids:
  - minigame.manager.create_instance
  - minigame.manager.initialize_instance
  - minigame.manager.load_plugins
  - minigame.manager.register_from_registry
  - minigame.manager.register_single
  - minigame.registry.builtin_definitions
  - minigame.registry.get_definitions
required_invoke_ids:
  - minigame.canvas.get_root_container
  - minigame.manager.start_with_options
required_manifest_ids:
  - minigame.manifest.filename
  - minigame.manifest.required_keys
required_folder_ids:
  - minigame.manifest.scan_roots
optional_extension_ids:
  - minigame.interface.action_receiver
  - minigame.method.handle_player_action
  - minigame.method.handle_player_action_payload
  - minigame.method.set_allowed_peer_ids
  - minigame.method.set_launch_context
  - minigame.canvas.clear
  - minigame.canvas.get_play_area_scale
  - minigame.canvas.get_play_area_size
  - minigame.manager.broadcast_state_sync
  - minigame.manager.send_action
  - minigame.manager.send_paddle_input

#packages

#Required Entry Points

  • Fetches resolved package config by subsystem and package_id. (ID: package.registry.get_package_config, Owner: PackageConfigRegistry, Kind: method, Source: scripts/gdscript/PackageConfigRegistry.gd:116)
  • Primary API to enumerate active package configs for a subsystem. (ID: package.registry.get_package_configs, Owner: PackageConfigRegistry, Kind: method, Source: scripts/gdscript/PackageConfigRegistry.gd:102)
  • Registers runtime bundled package config for subsystem/package id. (ID: package.registry.register_runtime_config, Owner: PackageConfigRegistry, Kind: method, Source: scripts/gdscript/PackageConfigRegistry.gd:82)
  • Known package subsystems used by plugin registries. (ID: package.registry.subsystems, Owner: PackageConfigRegistry, Kind: registry, Source: scripts/gdscript/PackageConfigRegistry.gd:15)

#Required Manifest Rules

  • Subsystem-to-manifest filename mapping for package discovery. (ID: package.registry.manifest_filenames, Owner: PackageConfigRegistry, Kind: manifest, Source: scripts/gdscript/PackageConfigRegistry.gd:30)

#Required Folder Rules

  • Search roots for bundled and user asset-pack package manifests. (ID: package.registry.search_roots, Owner: PackageConfigRegistry, Kind: path, Source: scripts/gdscript/PackageConfigRegistry.gd:18)

#Deterministic Starter Template

subsystem: packages
required_contract_ids:
  - (none)
required_entrypoint_ids:
  - package.registry.get_package_config
  - package.registry.get_package_configs
  - package.registry.register_runtime_config
  - package.registry.subsystems
required_invoke_ids:
  - (none)
required_manifest_ids:
  - package.registry.manifest_filenames
required_folder_ids:
  - package.registry.search_roots
optional_extension_ids:
  - (none)

#roll_tables

#Required Entry Points

  • Roll-table package subsystem resolver and draw constraints. (ID: roll_tables.registry.defaults, Owner: RollTableRegistry, Kind: registry, Source: scripts/gdscript/Plugins/Rules/Shared/RollTableRegistry.gd:7)
  • Enumerates resolved roll-table package configs. (ID: roll_tables.registry.get_package_configs, Owner: RollTableRegistry, Kind: method, Source: scripts/gdscript/Plugins/Rules/Shared/RollTableRegistry.gd:15)

#Required Invocations

  • Deterministic or random weighted table draw entry point. (ID: roll_tables.registry.draw_table, Owner: RollTableRegistry, Kind: method, Source: scripts/gdscript/Plugins/Rules/Shared/RollTableRegistry.gd:35)
  • Resolves a normalized table definition by package and table id. (ID: roll_tables.registry.get_table, Owner: RollTableRegistry, Kind: method, Source: scripts/gdscript/Plugins/Rules/Shared/RollTableRegistry.gd:24)

#Deterministic Starter Template

subsystem: roll_tables
required_contract_ids:
  - (none)
required_entrypoint_ids:
  - roll_tables.registry.defaults
  - roll_tables.registry.get_package_configs
required_invoke_ids:
  - roll_tables.registry.draw_table
  - roll_tables.registry.get_table
required_manifest_ids:
  - (none)
required_folder_ids:
  - (none)
optional_extension_ids:
  - (none)

#rules

#Required Entry Points

  • Feature identifiers package authors can implement via scene path declarations. (ID: rules.registry.feature_ids, Owner: RulesPackageRegistry, Kind: registry, Source: scripts/gdscript/Plugins/Rules/Shared/RulesPackageRegistry.gd:17)
  • Enumerates resolved rules package configs from PackageConfigRegistry. (ID: rules.registry.get_package_configs, Owner: RulesPackageRegistry, Kind: method, Source: scripts/gdscript/Plugins/Rules/Shared/RulesPackageRegistry.gd:98)
  • Validates feature scene path declarations and reports supported/unsupported feature resolution. (ID: rules.registry.resolve_feature, Owner: RulesPackageRegistry, Kind: method, Source: scripts/gdscript/Plugins/Rules/Shared/RulesPackageRegistry.gd:126)

#Required Invocations

  • Resolve character creation scene path with unsupported fallback handling. (ID: rules.registry.get_character_creation_scene_path, Owner: RulesPackageRegistry, Kind: method, Source: scripts/gdscript/Plugins/Rules/Shared/RulesPackageRegistry.gd:118)
  • Resolve conflict panel scene path from rules package config. (ID: rules.registry.get_conflict_scene_path, Owner: RulesPackageRegistry, Kind: method, Source: scripts/gdscript/Plugins/Rules/Shared/RulesPackageRegistry.gd:107)

#Deterministic Starter Template

subsystem: rules
required_contract_ids:
  - (none)
required_entrypoint_ids:
  - rules.registry.feature_ids
  - rules.registry.get_package_configs
  - rules.registry.resolve_feature
required_invoke_ids:
  - rules.registry.get_character_creation_scene_path
  - rules.registry.get_conflict_scene_path
required_manifest_ids:
  - (none)
required_folder_ids:
  - (none)
optional_extension_ids:
  - (none)

#scripted_entities

#Required Contracts

  • Normalizes scripted entity graph fields including graph_id, entity_id, nodes, edges, source metadata. (ID: scripted_entities.definition.required_fields, Owner: ScriptedEntityRegistry, Kind: schema, Source: scripts/gdscript/Plugins/ScriptedEntities/Shared/ScriptedEntityRegistry.gd:32)

#Required Entry Points

  • Default package and graph schema values for scripted entity plugins. (ID: scripted_entities.registry.defaults, Owner: ScriptedEntityRegistry, Kind: registry, Source: scripts/gdscript/Plugins/ScriptedEntities/Shared/ScriptedEntityRegistry.gd:9)
  • Registers scripted entity package config into PackageConfigRegistry. (ID: scripted_entities.registry.register_runtime_config, Owner: ScriptedEntityRegistry, Kind: method, Source: scripts/gdscript/Plugins/ScriptedEntities/Shared/ScriptedEntityRegistry.gd:17)

#Deterministic Starter Template

subsystem: scripted_entities
required_contract_ids:
  - scripted_entities.definition.required_fields
required_entrypoint_ids:
  - scripted_entities.registry.defaults
  - scripted_entities.registry.register_runtime_config
required_invoke_ids:
  - (none)
required_manifest_ids:
  - (none)
required_folder_ids:
  - (none)
optional_extension_ids:
  - (none)

#text_generation

#Required Contracts

  • Core provider generation method for synchronous requests. (ID: text_generation.provider.generate_text, Owner: TextGenerationProvider, Kind: method, Source: scripts/gdscript/Plugins/TextGeneration/Shared/TextGenerationProvider.gd:28)
  • Returns unique provider id used in registry settings and activation. (ID: text_generation.provider.get_id, Owner: TextGenerationProvider, Kind: method, Source: scripts/gdscript/Plugins/TextGeneration/Shared/TextGenerationProvider.gd:7)
  • Base provider contract for text generation services. (ID: text_generation.provider.interface, Owner: TextGenerationProvider, Kind: interface, Source: scripts/gdscript/Plugins/TextGeneration/Shared/TextGenerationProvider.gd:3)

#Required Entry Points

  • Registers provider implementation by provider_id. (ID: text_generation.registry.register_provider, Owner: TextGenerationServiceRegistry, Kind: method, Source: scripts/gdscript/Plugins/TextGeneration/Shared/TextGenerationServiceRegistry.gd:45)
  • Provider registry and generation dispatch for text generation plugins. (ID: text_generation.registry.service, Owner: TextGenerationServiceRegistry, Kind: registry, Source: scripts/gdscript/Plugins/TextGeneration/Shared/TextGenerationServiceRegistry.gd:3)

#Required Invocations

  • Generates text for explicit provider with async fallback routing. (ID: text_generation.registry.generate_for_provider, Owner: TextGenerationServiceRegistry, Kind: method, Source: scripts/gdscript/Plugins/TextGeneration/Shared/TextGenerationServiceRegistry.gd:173)
  • Selects active provider used by generate_text entry points. (ID: text_generation.registry.set_active_provider, Owner: TextGenerationServiceRegistry, Kind: method, Source: scripts/gdscript/Plugins/TextGeneration/Shared/TextGenerationServiceRegistry.gd:104)

#Deterministic Starter Template

subsystem: text_generation
required_contract_ids:
  - text_generation.provider.generate_text
  - text_generation.provider.get_id
  - text_generation.provider.interface
required_entrypoint_ids:
  - text_generation.registry.register_provider
  - text_generation.registry.service
required_invoke_ids:
  - text_generation.registry.generate_for_provider
  - text_generation.registry.set_active_provider
required_manifest_ids:
  - (none)
required_folder_ids:
  - (none)
optional_extension_ids:
  - (none)