Enhance your Foundry VTT experience with an AI-assisted toolkit for Game Masters! RPGM Forge helps you generate immersive content, manage homebrew assets, and streamline your storytelling—right from within Foundry.
-
Intelligent Name Generation Quickly generate character names, place names, and more—customized to fit your campaign’s setting and style.
-
AI-Powered Description Generation Instantly create evocative scene and NPC descriptions, lore snippets, and adventure hooks to keep your sessions dynamic and engaging.
-
Homebrew Generation Tools Effortlessly generate complex homebrew content such as monsters, items, places, and characters—tailored for your campaign’s needs.
-
Seamless Foundry Integration All features are designed to work directly within the Foundry VTT interface for a smooth and intuitive workflow.
- In Foundry VTT, go to the Add-on Modules section.
- Click Install Module.
- Search for
RPGM Forgein the package list. - Click Install.
- In Foundry VTT, go to the Add-on Modules section.
- Click Install Module.
- Paste the following Manifest URL into the field:
https://github.com/RPGM-Tools/foundry/releases/latest/download/rpgm-forge.json
- Click Install.
- dallenb4 (dallenb4@rpgm.tools)
- Aragorn (aragorn@rpgm.tools)
- jack_indaboks (jack_indaboks@rpgm.tools)
Coming soon! Here you'll find images and examples showing RPGM Forge in action.
Thank you for using RPGM Forge! Stay tuned for more features and updates and future tools from your friends at RPGM Tools!
pnpm install
- To run a dev server for a specific module, run
pnpm --filter <module-name> dev- With this, the dev server will HMR Vue files and reload the page for TS files.
- Changes to i18n require a build and dev server restart
- Each .env file must be placed in the module's folder it is being used for (will be used for that module's dev server)
- VITE_FOUNDRY_URL: The foundry instance url to proxy
- VITE_RPGM_URL (optional): The rpgm.tools server to use (https://rpgm.tools is the default)
Keep the live production lanes running at foundryv13.rpgm.tools and foundryv14.rpgm.tools with -Profile live.
Create foundryv13dev.rpgm.tools and foundryv14dev.rpgm.tools only when you need a module overlay. The dev lane seeds from the matching live lane once, then becomes its own sandbox.
Mount the built module into the dev lane with _tools/foundry-runtime/Mount-FoundryModule.ps1.
The reproducible startup sequence lives in docs/foundry-host-model.md.
- The matching live lane stays available separately from the dev overlay lane.
pnpm test:v13buildsrpgm-forge, syncs the built.dist/payload into the public Foundry 13 dev lane, starts that lane if needed, and verifies the public assets athttps://foundryv13dev.rpgm.toolspnpm test:v14buildsrpgm-forge, syncs the built.dist/payload into the public Foundry 14 dev lane, starts that lane if needed, and verifies the public assets athttps://foundryv14dev.rpgm.toolspnpm test:v13:betadoes the same sync-and-verify flow, but builds against the public beta RPGM surface athttps://beta.rpgm.toolspnpm test:v14:betadoes the same sync-and-verify flow for the Foundry 14 lane against the public beta RPGM surface athttps://beta.rpgm.toolspnpm dev:v13andpnpm dev:v14remain the local Vite proxy commands when you want live HMR against the matching public dev lanepnpm dev:v13:betaandpnpm dev:v14:betaremain the local Vite proxy commands for the beta RPGM surface- The proxy URLs you open in the browser are:
- V13 dev test proxy:
http://127.0.0.13:32013 - V14 dev test proxy:
http://127.0.0.14:32014 - V13 beta test proxy:
http://127.0.1.13:32113 - V14 beta test proxy:
http://127.0.1.14:32114
- V13 dev test proxy:
- The
test:*commands now handle the real public dev-lane payload update. They no longer stop at a local proxy smoke and they verify the publicmodule.json,account-session-return.html, andaccount-session-return.jsassets after sync. - The
dev:*proxy commands still expect the corresponding Foundry lane to be available. - When the public dev hosts are reverse-proxied through a shared server, they must point at dedicated dev backend ports instead of the always-on live backends. Otherwise the hostname will look healthy while still serving the live module payload.
- The versioned scripts set the target Foundry URL, proxy hostname, and proxy port for you, so you do not need to edit
modules/rpgm-forge/.envwhen switching between V13 and V14 testing. - The Foundry lane target is now host-based instead of depending on fixed
:30013or:30014browser origins, so the account handoff path matches the same host-safe flow used on arbitrary Foundry deployments. - Use the version-specific proxy URLs rather than plain
localhostso browser cookies stay isolated between the Foundry 13 compatibility lane and the Foundry 14 testing lane. Steward now accepts the Foundry browser origin you configure for that deployment, so the same dev workflow also works against user-hosted Foundry instances outside the RPGM-owned lanes. - The beta variants keep production defaults unchanged but swap the shared account-center and Steward-backed Forge usage surface over to
https://beta.rpgm.tools, which is the preferred local smoke path before any separate beta manifest or release channel exists. - The public dev-lane sync helper reads
RPGM_FOUNDRY_TEST_SSH_KEY_PATHwhen you want to override the SSH key path explicitly. In this workspace it also falls back to the newest private.pemin the workspace-root.temp/folder.
- The default beta validation flow is still the local injected dev proxy path above, because it exercises the live beta service origin without changing production packaging.
- When you need to hand a tester a built module instead of a live dev proxy, run
pnpm build:forge:betafirst. That helper keeps the ordinary production-oriented build untouched, but injects the beta service and account-center origins into the packaged Forge module. - The installable beta Forge payload lands in
modules/rpgm-forge/.dist/, and that folder is the source of truth for manual archive smoke. - For a local manual install, copy the contents of
modules/rpgm-forge/.dist/into a test Foundry world'sData/modules/rpgm-forge/folder, then launch the same non-production Foundry lane you would use for beta proxy testing. - For a shareable archive, package the contents of
modules/rpgm-forge/.dist/asrpgm-forge-v<version>.zipand pair it with a manifest copied frommodules/rpgm-forge/.dist/module.jsonasrpgm-forge.json. That matches the release workflow's artifact shape, so manual beta archive tests exercise the same files that later become published release assets. - Use that built-archive path only for beta or local smoke worlds. Do not repoint the production manifest or release channel just to rehearse beta behavior.
This project still targets the RPGM Tools service surface, but the old Forge
module no longer consumes the legacy @rpgm/tools package as a shared runtime
dependency.
pnpm build
- This will build all modules at once
- Pushing a module tag such as
forge-v2.2.0still creates the GitHub release draft and uploads the versioned manifest and zip assets. - Publishing that GitHub release now triggers
.github/workflows/publish-foundry-package.yaml, which submits the matching version to Foundry through the official Package Release API. - The Foundry publish workflow expects a GitHub Actions secret named
FOUNDRY_PACKAGE_RELEASE_TOKEN. A repo-local.envcan still supply the same variable for local dry runs withscripts/publish-foundry-package.mjs. - Manual dry runs are also available through the
Publish Foundry Packageworkflow dispatch path when you want to validate the payload before publishing the GitHub release. - The Foundry automation uses the version-specific GitHub release asset URL for the manifest and the published GitHub release page as the release notes URL.
- Foundry documents an official API for publishing package releases, but not a documented API for editing the marketplace presentation body.
pnpm build:foundry-marketplaceregeneratesmodules/rpgm-forge/assets/foundry-marketplace/body.generated.mdfrom the hand-edited template atmodules/rpgm-forge/assets/foundry-marketplace/body.template.mdand the release notes inmodules/rpgm-forge/assets/changelog/.pnpm publish:foundry:marketplaceuses Playwright to log into the Creator Portal, convertbody.generated.mdto HTML, update theDescriptionfield, save the package page, and verify the public listing.pnpm publish:foundry:marketplace:dry-runvalidates the login and editor wiring without saving.- The full runbook lives in
docs/releasing-rpgm-forge.md.