← All tasks

MODS / PUBLISH A FINISHED PACKAGE

Publish or update your finished TF3 mod

Official publishing and mod-definition manuals checked October 22, 2026. Desktop file preparation; no mod was uploaded or tested by us. Exact game build is not specified by these sources.

Put the package in staging_area, then open My Mods

Mod Hub shows My Mods when your user-data staging_area contains a mod. Select your finished package there, review its details and upload it through the game's validation. For an update, check that the existing mod.io entry is recognized before continuing.

Official TF3 trains and railway network
Official game artwork illustrates possible transport content, not the publishing interface. Urban Games press materials ↗

Start with a complete TF3 package

This task starts after making and checking the mod. Keep its mod.json, _metadata/modinfo.json and content structure intact. The technical modId identifies the package, independently of its folder name. Changing a TF2 folder suffix does not convert its resources.

Read the official publishing requirements and distribute only content you own or have permission to share. Follow the source-credit requirement when using permitted Urban Games assets. A working local package still needs publishing validation.

Publish the prepared package

  1. Locate the actual user-data folder. Use Settings → Advanced → Open User Data Folder, then its staging_area. Copy the complete package there; do not replace game-installation files.
  2. Open Main Menu → Mod Hub → My Mods. Select the staged mod. Review its name, tags, images, visibility and changelog.
  3. Select Upload. The game validates the package. Console preparation and approval depend on meeting the stricter console requirements; a desktop success alone is not proof of every platform's approval.
  4. Inspect the resulting mod.io entry. After upload it opens automatically. Check its Files section for uploaded versions and platform approval, plus the listing's intended visibility.

Update an existing release without creating a duplicate

Increase revision in mod.json. Keep _metadata/mod.io_fileid.txt, which links the package to its existing mod.io entry. If lost, the official procedure restores that file with the entry ID from the listing's information box.

Return to My Mods and select the package. Before using Update, verify the message The existing mod on mod.io will be updated. Back up description edits made directly on mod.io: local modinfo.json text overwrites them during an update.

The mod-definition manual recommends a new mod ID and separate release for an update incompatible with its predecessor, to avoid breaking subscribers' saves. Folder names alone do not establish update identity.

How to tell it worked

The intended listing contains the intended version, its visibility is correct and the required platform's file status is approved. For an update, inspect that same entry rather than treating any new listing as success. Check the released package's intended behavior in a separate test world before recommending it to players.

If publishing does not complete

  • My Mods is missing: inspect the actual user-data staging folder and package structure. A subscribed download elsewhere is not automatically a staged author package.
  • Validation fails: preserve the reported issue and correct the package against the linked requirements. Reaching Upload does not mean validation passed.
  • The update target is unrecognized: check the recorded entry ID and package identity before uploading again.
  • A local test loads the wrong revision: the documented precedence is staging area, manual installation, then subscribed mods. Compare copies with the same modId; a staged copy can hide a subscribed update.
WATCH THE BASE GAME

Highlights

An official overview of TF3's base-game systems and Mod Hub.

Watch on YouTube ↗

Pre-release background footage, not a recording of this upload procedure. Follow the current official written controls above.

Related tasks: Install and enable a mod · Locate downloaded files · Keep a separate save backup · Check achievement eligibility