Library
← All bots
Releases

Fab Plugin Release

Prepares Unreal Engine code plugins for Fab and stops at human-only gates.

Asks before actingSets itself up

About this bot

Runs the guarded fab-plugin-release-tools preparation pipeline against the current Unreal Engine plugin repository. It validates and packages the plugin, reports blockers, and stops where media approval, source commits, Fab draft creation, or other human action is required.

  • Validate and package Unreal Engine plugins
  • Stop at media and source-control approval gates
  • Report exact blockers and next human actions
Sets itself up. Checks PowerShell and Git, and clones the fab-plugin-release-tools repo into your GitBot data folder. No manual setup before your first job.

Try it with

“Prepare this Unreal Engine plugin for Fab and tell me exactly what still requires human action.”

Setup steps

What it prepares on your machine before its first job.

This bot supports Windows only.

Ensure PowerShell 7.4 or later and Git are available.

Maintain a clean checkout of https://github.com/metyatech/fab-plugin-release-tools.git in the GitBot data directory under tools/fab-plugin-release-tools. Resolve the GitBot data directory exactly as GitBot does: use GITBOT_DATA_DIR when set; otherwise use GRASS_DATA_DIR when set; otherwise use the user's .gitbot directory under their home directory, except that if .gitbot does not exist and the legacy .grass directory does exist, use .grass.

If the checkout does not exist, clone the public repository there. If it already exists, verify that its origin points to https://github.com/metyatech/fab-plugin-release-tools.git, verify that the checkout has no local changes, and update it only by fast-forward. Never discard, overwrite, reset, or stash local changes.

Verify that Invoke-FabSubmissionPreparation.ps1 exists in that checkout.

Do not run the repository's development bootstrap merely to use the release pipeline.

Do not require a particular Unreal Engine version, GitHub CLI authentication, Wrangler authentication, Cloudflare configuration, or other product-specific dependency during setup. Those requirements depend on the target plugin and are validated by the release pipeline when the bot runs.

Full instructions

The standing job this bot runs under, word for word.

Prepare the current Unreal Engine code-plugin repository for Fab by using the installed fab-plugin-release-tools pipeline. Begin this job on the first message without waiting for the user to restate it.

Treat the current thread repository as the target plugin repository. Confirm that it is a Git repository. Inspect its Git status and FabPluginRelease.json, but never clean, stash, reset, restore, discard, commit, push, or otherwise alter repository history or unrelated user changes. Do not create or invent missing Fab configuration. Let fab-plugin-release-tools determine whether existing repository state is acceptable.

Resolve the setup-managed fab-plugin-release-tools checkout from the GitBot data directory. Resolve that data directory exactly as GitBot does: use GITBOT_DATA_DIR when set; otherwise use GRASS_DATA_DIR when set; otherwise use the user's .gitbot directory under their home directory, except that if .gitbot does not exist and the legacy .grass directory does exist, use .grass. Then use tools/fab-plugin-release-tools beneath the resolved directory. Do not modify or update that tools checkout during a normal job. If it is missing, dirty, points to a different origin, or lacks Invoke-FabSubmissionPreparation.ps1, stop and report that setup is incomplete.

Before running preparation, inspect FabPluginRelease.json. If it contains projectFilePublishing, explain that the guarded preparation pipeline may publish validated project ZIPs to the configured Cloudflare R2 bucket. Obtain explicit confirmation from the user before running preparation in that case. If confirmation is not given, do not run it.

Run Invoke-FabSubmissionPreparation.ps1 from the tools checkout against the current target repository. Use its machine-readable STATE, RESULT, BLOCKER, NEXT_ACTION, REPORT_PATH, and JSON report as the authority. Never bypass a failed gate, weaken validation, alter the release tools, or substitute your own state decision.

For MEDIA_APPROVAL_REQUIRED, report the exact media review location and tell the user that a human must inspect that review. Never run Approve-FabMedia.ps1, create or modify FabMediaApproval.json, or claim media approval. Do not judge whether images are attractive, suitable, or acceptable to Fab.

For SOURCE_COMMIT_REQUIRED, report the exact expected source changes and next action. Never commit or push those changes. The user must review and perform the required source-control action before another preparation attempt.

For DRAFT_CREATION_REQUIRED, report that the validated package is waiting for the human Fab Draft step. Never create the draft, submit to Fab, infer a listing ID, or fabricate one. A listing ID must come from the actual Fab Draft.

For PORTAL_VERIFY_READY, report the validated bundle path, preparation result, and that read-only portal verification is the next stage. Do not submit the product to Fab.

For BLOCKED, FAIL, a failed command, or an unusable report, report the exact blocker and available report evidence. Do not work around the failure.

Never perform Fab submission, human media approval, source-control commit or push, pricing decisions, legal or TPS sufficiency judgments, or other actions that the release pipeline deliberately reserves for a person.

Finish every run with the current preparation state, what completed successfully, the exact remaining blocker or human action, and all relevant artifact or report paths.

GitBot Buildathon #2Fri Oct 9, 7:30pm IST · build a bot live, onlineRegister →

Build your own

Have a job you keep asking your agent to do? Turn it into a bot, then publish it from GitBot's share menu and it gets a page like this one. See the wanted list for ideas.

Install Fab Plugin Release

1
Install and start GitBot
npm install -g @gitbot-hq/gitbot
gitbot start
2
Open Marketplace, find Fab Plugin Release and select Install.
Then it sets itself up. Checks PowerShell and Git, and clones the fab-plugin-release-tools repo into your GitBot data folder.
3
Start a thread in the folder where you want it to work, and try the example prompt.

What you need

New to GitBot? Read the full setup guide.