Back to Paragon Library
Paragon Library

Part One · Standard Binning Process (Manual)

The Full Binning & PIGG Packaging Process

This section documents the traditional manual binning workflow using individual batch files. It gives full control over each step and is most useful when troubleshooting a specific stage or when City Hall automation is not available.

Section 1

Overview & Key Concepts

What is binning?

The City of Heroes engine uses binary .bin files for faster loading. Binning converts human-readable text and config files into these optimized binaries. Both server data and client data must be binned.

What are PIGG files?

PIGG files are the production distribution format for client data. The client builds a virtual filesystem from loaded PIGG archives, especially from the configured patch directory (for example, <ClientRoot>\ouro\). Loose client bins can sometimes be loaded by the v2 client, but they are not the intended production release format.

Critical client release rule

  • Treat bin\data\bin\*.bin and binned\bin\*.bin as intermediate build output.
  • Do not distribute loose client bins into 1. Client\data\bin\ for production.
  • Do not distribute loose server bins into any client folder.
  • Pack approved client bins and assets into PIGG files, then place those PIGGs in the configured client patch directory (e.g. <ClientRoot>\ouro\).
  • Your launcher / web distribution folder should mirror the same client structure.

What are .texture files?

.texture files are DDS textures wrapped with a custom header. The header contains the relative path to the texture (for example, texture_library/GUI/Icons/powers/IconName.dds). This embedded path is critical — the game uses it to locate the texture.

Why path matters

  • Wrong path: Output/GUI/Icons/powers/icon.dds → game cannot find texture → white icon.
  • Correct path: texture_library/GUI/Icons/powers/icon.dds → game finds texture → works.

Data vs localdata

  • bin/data/ — base game data (original CoH content).
  • bin/localdata/ — server custom content (new powers, textures, maps).
  • The server merges localdata over base data.
  • Most custom content (powersets, textures, maps) lives in localdata.

Section 2

Important Tools & Locations

Bin server location

<BinServerRoot>\

Key batch files (in bin server root)

1-delete-old-bins.bat       Clears old binary files
2-rebuild-server-bins.bat   Rebuilds server-side .bin files (mapserver_debug)
3-rebuild-client-bins.bat   Rebuilds client-side .bin files (ouroboros_debug)
6-update-server-bins.bat    Updates server bins without full rebuild
7-update-client-bins.bat    Updates client bins without full rebuild
8-copy-product-catalog.bat  Copies product_catalog.bin to server\bin\
9-copy-binned-files.bat     Copies binned files from bin\data\ to binned\
10-build-patch-piggs.bat    Optional manual fallback for packing patch PIGGs

PIGG packing tools

Command-line packer:

  • Location: <BinServerRoot>\bin\tools\pig.exe
  • Existing Jenkins usage:
.\bin\tools\pig.exe cfvvz piggs\v2_serverbin.pigg binned\
.\bin\tools\pig.exe cfvvz piggs\v2_bin.pigg binned\

Piglet GUI / source:

  • Source/tool folder: <PigletRoot>\
  • Built GUI executable also exists in bin\tools\Piglet.exe

Important

  • pig.exe / Piglet are for packaging binned output into PIGG archives.
  • The numbered batch files stop at loose bins; they do not complete client release.
  • City Hall is the recommended PIGG builder for controlled releases. It calls bin\tools\pig.exe directly and packages only approved narrow patch bins.
  • A local PIGG build batch file can stay available as a backup, but it is not part of the normal City Hall workflow.
  • PIGG creation and promotion to the client patch directory are required release steps.

Texture conversion tools

City Icon (recommended)

  • Location: <CityIconRoot>\publish\CityIcon.exe
  • Supports PNG, JPG, TGA, DDS.
  • Command line: CityIcon.exe --convert --mode [login|icons|folder] --source "input" --output "output"
  • The output folder must be named texture_library for the correct embedded path.
  • Creates .texture files with proper headers automatically.

GetTex (alternative)

  • Location: <BinServerRoot>\GetTex\GetTex.exe
  • Only processes TGA files.
  • Has bugs requiring source code fixes (fopen modes, lock file paths).
  • Embeds the output directory name into the texture header.
  • Not recommended unless specifically required.

Manifest generation

Preferred: launcher / admin manifest panel (for example https://www.example.com/manifest).

  • Scans public\game and calculates MD5 hashes / sizes for every distributed file.
  • Required after replacing PIGG files in the client mirror.

Legacy script: <ToolsRoot>\update_manifest.js — only updates selected loose-bin entries and is not sufficient for final releases.

Section 3

The Full Binning & PIGG Packaging Process

Pre-step: Merge content to data folder (critical)

Before binning, custom content must be merged into the correct binning server source folders using the Merge Tool. Loose files placed directly under bin\serverdata\Defs\ are not binned correctly and must be treated as a mistake.

  • Merge Tool location: <MergeToolRoot>\
  • Purpose: merges new power definitions, textures, and other assets from 2. Deployment into the binning server data tree.

Why this is critical

Binning tools (mapserver, ouroboros) read from bin\data\ and bin\localdata\. If content is not merged first, new powers and textures won't be binned — resulting in missing powers, white icons, or broken archetypes in-game.

Power data destinations

.powers      ->  bin\serverdata\Defs\powers\
.powersets   ->  bin\serverdata\Defs\powers\
.categories  ->  bin\serverdata\Defs\powers\
.ms          ->  bin\serverdata\texts\English\Powers\
Do not place .powers, .powersets, .categories, or .ms files loosely in bin\serverdata\Defs\. Remove any loose copies once the canonical copy is in place.

Merge process

  1. Run the Merge Tool from the bin server root directory.
  2. Select source: 2. Deployment folder.
  3. Select destination: the correct binning server destination folder.
  4. Click Merge to combine all custom content into the data directory.
  5. Verify merged files appear in the canonical locations, especially bin\serverdata\Defs\powers\ and bin\serverdata\texts\English\Powers\.
  • Always merge before running any binning steps.
  • The merge tool may create backups of overwritten files.
  • Check merge logs for any conflicts or errors.
  • Some content may require manual merging if tool conflicts occur.

Step 1 — Delete old bins

Run 1-delete-old-bins.bat. Clears old binary files to prevent conflicts. Required before any rebuild.

Step 2 — Rebuild server bins

Run 2-rebuild-server-bins.bat

mapserver_debug.exe -createbins -verbose 2 -project ourodev
  • Generates server-side binaries (powers, classes, costumes, etc.).
  • Takes ~5–10 minutes.
  • Output: bin\data\server\bin\

Step 3 — Rebuild client bins

Run 3-rebuild-client-bins.bat

ouroboros_debug.exe -console -createbins -verbose 2 -fullscreen 0 -project ourodev
  • Generates client-side binaries (geobins, texture bins, etc.).
  • May take 10+ minutes (times out at 10 min if too slow).
  • Output: bin\data\bin\

Steps 4–5 — Update bins (optional)

If you only changed a few files and don't need a full rebuild:

  • 6-update-server-bins.bat — update server bins.
  • 7-update-client-bins.bat — update client bins.

Step 6 — Copy product catalog

Run 8-copy-product-catalog.bat. Copies product_catalog.bin to server\bin\. Required step.

Step 7 — Copy binned files

Run 9-copy-binned-files.bat

  • Copies binned client files from bin\data\bin\ to binned\bin\.
  • Copies binned server files from bin\data\server\bin\ to binned\server\bin\.
  • Cleans old binned files first.
  • Produces candidate loose-bin output only — this is not final client release.

Step 8 — Build PIGG archives

  • Canonical method: City Hall native PIGG builder.
  • Fallback method: local/manual patch PIGG batch file.
  • Uses bin\tools\pig.exe

Purpose:

  • Pack approved loose bins/assets into PIGG archives for production distribution.
  • The client should receive PIGGs in the patch directory, not loose bins.
  • City Hall must package narrow patch PIGGs only — do not wildcard-copy every generated .bin into a production patch PIGG.

Approved client patch PIGG bins (e.g. patch_bin.pigg):

bin\clientmessages-en.bin
bin\product_catalog.bin
bin\costume.bin
Clean client binning does not produce bin\powers.bin, bin\powersets.bin, bin\powercats.bin, or bin\VillainDef.bin. Power data is packaged in the serverbin patch PIGG, which is also deployed to the client patch directory.

Approved serverbin patch PIGG bins (e.g. patch_serverbin.pigg):

server\bin\powers.bin
server\bin\powersets.bin
server\bin\powercats.bin
server\bin\VillainDef.bin
server\bin\product_catalog.bin
server\bin\messages-en.bin

Forbidden in all patch PIGGs

sequencers.bin
ent_types.bin
behaviors.bin
behavioralias.bin
animlists.bin
fxinfo.bin
menuAnimations.bin
seqstatebits.bin
If any forbidden bin appears in a staged folder or in a generated *.contents.txt listing, do not deploy the PIGGs.

PIGG naming reference

Current Jenkinsfile output names:

piggs\v2_bin.pigg
piggs\v2_serverbin.pigg

Existing local output also includes piggs\v2_textures.pigg.

Example configurable stable patch names:

piggs\patch_bin.pigg
piggs\patch_serverbin.pigg
piggs\patch_textures.pigg
piggs\patch_login.pigg

Texture packaging rule

  • The textures PIGG owns general custom textures and icons under texture_library\, including texture_library\GUI\Icons\Powers\.
  • The login PIGG owns only: texture_library\GUI\CREATION\HybridUI\LoginScreen\COH_LogInScreen_Background.texture
  • Do not put the same internal texture path in more than one patch PIGG.

Renaming rule

  • Changing PIGG filenames is allowed only as a deliberate one-time migration.
  • CityVault launchers do not reliably delete files that disappear from the manifest, so stale old PIGGs must be manually removed during a rename migration.
  • Once stable patch names are adopted, replace the contents of the same filenames on every release instead of creating new names.

Step 9 — Promote client PIGGs

Copy approved client PIGGs to <ClientRoot>\ouro\:

  • patch_bin.pigg (or your configured client patch PIGG name).
  • patch_serverbin.pigg (or your configured serverbin patch PIGG name).
  • patch_textures.pigg (optional — when texture assets are packaged).
  • patch_login.pigg (optional — when login-screen assets are packaged).
Do not copy loose client bins to 1. Client\data\bin\. Do not copy loose server bins to any client location.

Step 10 — Promote server output

The server may run raw bins. Promote approved server bins to the live server data tree only:

<ServerRoot>\data\

The serverbin PIGG is part of the client patchdir PIGG set and should be copied to <ClientRoot>\ouro with the other patch PIGGs. This does not mean loose server bins should be copied to the client — loose server bins remain server-only.

Step 11 — Mirror client and generate manifest

  1. Mirror the entire client folder to <WebRoot>\public\game\.
  2. Generate a new manifest from https://www.example.com/manifest.
  3. Test from launcher.
The launcher public\game folder should mirror <ClientRoot>, contain the ouro\ patch PIGGs, and should not contain loose data\bin or data\server\bin release payloads unless an explicit temporary diagnostic override is being tested.

Section 4

Texture Conversion Guide

Converting power icons with City Icon

  1. Prepare source images (PNG or TGA, 32×32 or 64×64).
  2. Create an output directory literally named texture_library (e.g. C:\Output\texture_library\).
  3. Run City Icon:
    CityIcon.exe --convert --mode icons --source "C:\InputIcons" --output "C:\Output\texture_library"
  4. Output appears in C:\Output\texture_library\GUI\Icons\powers\.
  5. Verify the header (first 100 bytes should show texture_library/GUI/Icons/powers/).

Converting login screen with City Icon

  1. Prepare source image (PNG, recommended 1920×1080).
  2. Create an output directory literally named texture_library.
  3. Run City Icon:
    CityIcon.exe --convert --mode login --source "C:\Input\loginscreen.png" --output "C:\Output\texture_library"
  4. Output: C:\Output\texture_library\GUI\CREATION\HybridUI\LoginScreen\COH_LogInScreen_Background.texture
  5. Verify the header shows texture_library/GUI/CREATION/HybridUI/LoginScreen/...

Critical rule

The output folder must be named texture_library exactly. If named anything else, the embedded path will be wrong.
CORRECT: --output "C:\temp\texture_library"  ->  Path: texture_library/GUI/...
WRONG:   --output "C:\temp\output"            ->  Path: output/GUI/...

Section 5

Manifest Update Process

Why update the manifest?

The launcher downloads game files based on manifest.xml. If file sizes or MD5 hashes don't match, the launcher will either redownload files unnecessarily or skip files that actually need updating.

Manual update steps

  1. Open <WebRoot>\public\manifest.xml
  2. Find the file entry to update:
    <file name="data/texture_library/GUI/Icons/Powers/Filename.texture"
          size="OLD_SIZE" md5="OLD_MD5">
  3. Calculate the new MD5:
    (Get-FileHash "filepath" -Algorithm MD5).Hash
  4. Get the new file size:
    (Get-Item "filepath").Length
  5. Update the entry:
    <file name="data/texture_library/GUI/Icons/Powers/Filename.texture"
          size="NEW_SIZE" md5="NEW_MD5">
  6. Update the version tag: <version>YYYYMMDDTHHMMSS</version>
  7. Save the manifest.

Automated update (update_manifest.js)

node update_manifest.js
  • Automatically updates powers.bin and VillainDef.bin hashes.
  • Updates version timestamp.
  • Located at <ToolsRoot>\update_manifest.js
This script only updates old loose-bin entries like powers.bin and VillainDef.bin. It does not understand the PIGG-first release process and must not be relied on for final production releases.

Section 6

Deployment Checklist

After binning, deploy to all locations

  • Candidate bins: binned\bin\*.bin reviewed and approved.
  • Candidate bins: binned\server\bin\*.bin reviewed and approved.
  • Client PIGG: City Hall built the narrow client patch PIGG with approved bins only.
  • Serverbin PIGG: City Hall built the narrow serverbin patch PIGG with approved bins only.
  • Texture PIGG: approved textures packed into the configured textures patch PIGG.
  • Login PIGG: approved login background packed into the configured login patch PIGG.
  • PIGG contents: *.contents.txt contains no forbidden volatile bins.
  • Client: all patch PIGGs copied to <ClientRoot>\ouro\.
  • Server: approved server bins copied/merged to <ServerRoot>\data\.
  • Launcher: <WebRoot>\public\game mirrors <ClientRoot>.
  • Manifest: generate a new manifest from the launcher/admin manifest panel.

Do not deploy

  • Do not place loose client bins in <ClientRoot>\data\bin\ for production.
  • Do not place server bins in <ClientRoot>\data\server\bin\.
  • Do not place server bins anywhere under the launcher public\game folder.
  • Do not leave stale old PIGG names in public\game after a rename migration.

Verify deployment

  • Check PIGG files exist in <ClientRoot>\ouro\.
  • Check launcher public\game mirrors <ClientRoot>.
  • Verify XML validity: [xml]$manifest = Get-Content manifest.xml
  • Spot-check MD5 hashes match actual files.
  • Verify texture headers show correct paths.
  • Check manifest version is updated.
  • Test in-game.

Section 7

Common Issues & Solutions

Issue

Icons show as white / blank

Cause: Wrong embedded path in .texture file.

Fix: Re-convert with City Icon using an output folder named texture_library.

Issue

Icons don't download via launcher

Cause: Manifest hashes don't match actual files.

Fix: Update manifest.xml with correct sizes and MD5 hashes.

Issue

GetTex hangs / crashes

Cause: Bugs in GetTex source code (fopen modes, lock files).

Fix: Use City Icon instead — it's more reliable.

Issue

Client bins are smaller than expected

Cause: Client binning timed out (10 min limit).

Fix: Run 3-rebuild-client-bins.bat again with a longer timeout.

Issue

Changes not showing in game

Cause: Files not deployed to all locations.

Fix: Pack approved client changes into PIGGs, copy PIGGs to <ClientRoot>\ouro, promote approved server bins to <ServerRoot>\data, mirror <ClientRoot> to the launcher public folder, then regenerate the manifest.

Issue

Manifest entries have wrong filenames

Cause: Spaces vs. underscores mismatch.

Fix: Ensure all filenames use underscores consistently.

Issue

Launcher downloads wrong files / icons missing via launcher

Cause: Manifest is out of sync with actual files.

Fix: Generate a new manifest from the launcher/admin manifest panel. Do not rely solely on manual manifest updates. This should be done after every binning session.

Section 8

Confirmed City Hall + City Icon Full Binning Guide

This is the recommended direct path for a full release using City Hall and City Icon. It is based on the confirmed stable process:

  • Source content is checked before deployment.
  • Textures are converted with correct texture_library headers.
  • Content is merged, not blindly overwritten.
  • Official full binning batch files are used.
  • Generated bins are treated as candidate output.
  • Only approved narrow bins/assets are packed into patch PIGGs.
  • Volatile bins are blocked from client patch PIGGs.
  • Client distribution is PIGG-first.

Required tools

  • City Hall — validation, controlled merges, official full binning, protected-bin comparison, PIGG packaging, and promotion.
  • City Icon — converting PNG / JPG / TGA / DDS source images into .texture files with correct embedded texture_library paths.
  • Merge Tool — used by City Hall (or manually when troubleshooting) to merge data into the binning server source tree.
  • Binning server toolsmapserver_debug.exe, ouroboros_debug.exe, pig.exe, and the official numbered batch files.

Folder expectations

  • <StagingRoot> — unfinished or newly received content. Fix issues here first.
  • <DeploymentRoot> — clean content ready to merge into the binning server.
  • <SourceFilesRoot> — canonical archive of content that has successfully binned and tested.
  • <BinServerRoot> — i2401 binning server root containing bin\, binned\, piggs\, and the official batch files.
  • <ClientRoot> — full client folder that will be mirrored to the launcher public game folder. Patch PIGGs normally live under <ClientRoot>\ouro\.
  • <ServerRoot> — the live server root. Approved raw server bins are promoted to <ServerRoot>\data\.
  • <WebRoot>\public\game — launcher distribution mirror. Mirrors <ClientRoot>; never receives loose server bins.

Step 1 — Prepare content in staging

  1. Place new powersets, defs, message stores, textures, PFX, sequencers, or other content into <StagingRoot>.
  2. Do not put loose files directly into the binning server source folders.
  3. Check for obvious issues before moving forward:
    • Missing .ms display strings.
    • Raw P-number labels showing in source.
    • Missing referenced PFX files.
    • Missing referenced entity or pet definitions.
    • Incorrect icon names or paths.
    • Files placed at the wrong folder depth.
    • New files that should be merged into existing canonical files.

Step 2 — Convert textures with City Icon

Use City Icon before binning whenever content includes icons, login screens, or other custom textures.

Power icons

  1. Open City Icon.
  2. Choose Power Icons mode.
  3. Select one or more images, or a folder of images.
  4. Set output to a folder literally named texture_library.
  5. Convert.
  6. Expected output: texture_library\GUI\Icons\powers\*.texture

Login screen

  1. Open City Icon.
  2. Choose Login Screen mode.
  3. Select the source login image.
  4. Set output to a folder literally named texture_library.
  5. Convert.
  6. Expected output: texture_library\GUI\CREATION\HybridUI\LoginScreen\COH_LogInScreen_Background.texture

Folder conversion

  • Use Folder mode when converting an existing texture_library tree.
  • City Icon should preserve the relative folder structure under texture_library.

Critical texture rule

The output folder must be named texture_library. If named output, temp, converted, or anything else, the embedded texture path will be wrong — the game can report a misnamed texture or show white icons.

Step 3 — Move clean content to deployment

  1. After staging content is corrected, move or merge it into <DeploymentRoot>.
  2. Keep Deployment clean — it should contain only content intended for the next binning run.
  3. If content belongs to an existing canonical data file, merge it into the relevant canonical file rather than keeping duplicate competing files.
  4. Place converted texture_library output into Deployment so City Hall can stage it for texture PIGG packaging.

Step 4 — Open City Hall and check settings

  1. <BinServerRoot> points to the binning server root.
  2. <StagingRoot> points to the staging folder.
  3. <DeploymentRoot> points to the deployment folder.
  4. <SourceFilesRoot> points to the canonical source/archive folder.
  5. <ClientRoot> points to the client folder.
  6. <ServerRoot> points to the live server folder.
  7. <WebRoot>\public\game is the launcher distribution target, if configured.
  8. Known-good baseline output is configured.
  9. Protected bins are enabled.
  10. PIGG names are set to your stable patch names.

Recommended protected-bin rule

Do not allow protected-bin promotion during normal content releases. Only allow protected-bin promotion after deliberate investigation and a clean full-client verification pass.

Step 5 — Run City Hall validation

  1. Validate Staging.
  2. Fix any reported issue before continuing.
  3. Run the Staging → Deployment merge dry-run.
  4. If the dry-run is clean, run the real Staging → Deployment merge.
  5. Validate Deployment.
  6. Fix any reported issue before continuing.
Do not bin if validation is still reporting missing paths, missing P strings, bad texture placement, or loose root-level files.

Step 6 — Merge deployment into bin server source

Important canonical destinations:

.powers      ->  <BinServerRoot>\bin\serverdata\Defs\powers\
.powersets   ->  <BinServerRoot>\bin\serverdata\Defs\powers\
.categories  ->  <BinServerRoot>\bin\serverdata\Defs\powers\
.ms          ->  <BinServerRoot>\bin\serverdata\texts\English\Powers\
texture_lib  ->  <BinServerRoot>\bin\localdata\texture_library\
Do not place .powers, .powersets, .categories, or .ms files loosely under <BinServerRoot>\bin\serverdata\Defs\. Loose files in the wrong source folder may not be binned correctly.

Step 7 — Run the official full binning chain

  1. 1-delete-old-bins.bat
  2. 2-rebuild-server-bins.bat
  3. 3-rebuild-client-bins.bat
  4. 8-copy-product-catalog.bat
  5. 9-copy-binned-files.bat
Do not substitute quick-update bins for a full content release unless you are only doing a temporary internal test. A full release should use the complete chain so server and client candidate output stays in sync.

Step 8 — Compare generated bins against baseline

Expected bins may include:

powers.bin
powersets.bin
powercats.bin
VillainDef.bin
product_catalog.bin
messages-en.bin
clientmessages-en.bin
costume.bin

Protected bins must be reviewed carefully and blocked by default:

sequencers.bin
ent_types.bin
behaviors.bin
behavioralias.bin
animlists.bin
fxinfo.bin
menuAnimations.bin
seqstatebits.bin
If protected bins changed unexpectedly, stop. Do not package or deploy the run.

Step 9 — Build patch PIGGs with City Hall

City Hall should call <BinServerRoot>\bin\tools\pig.exe and stage and build only approved patch contents:

  • Client patch PIGG — approved narrow client bins only. Must not include volatile protected bins.
  • Serverbin patch PIGG — approved power/server data bins needed by the client patchdir. Loose server bins must not be copied into client data folders.
  • Texture patch PIGG — approved texture_library content, including custom icons. Build only when texture assets exist.
  • Login patch PIGG — only the login background texture. Build only when login assets exist.
City Hall should also write PIGG contents listings. Review them before release. If forbidden volatile bins appear in a contents listing, stop and do not deploy.

Step 10 — Promote approved output

Client

  1. Copy approved patch PIGGs into <ClientRoot>\ouro\.
  2. Do not copy loose client bins into <ClientRoot>\data\bin\.
  3. Do not copy loose server bins anywhere under <ClientRoot>.

Server

  1. Promote approved raw server bins to <ServerRoot>\data\.
  2. Keep server-only raw bins server-side.

Launcher / public game folder

  1. Mirror <ClientRoot> to <WebRoot>\public\game\.
  2. Do not union old files with new files if that leaves stale content behind.
  3. The public game folder should represent the current client package exactly.

Step 11 — Generate the manifest

  1. Generate a fresh manifest from the launcher/admin manifest panel.
  2. Confirm the manifest contains the new or replaced patch PIGGs.
  3. Confirm file sizes and hashes match the actual files.
  4. Do not rely on old loose-bin manifest update scripts for PIGG-first releases.

Step 12 — Smoke test before announcing release

  1. Launcher downloads the expected patch files.
  2. Client starts without texture misnamed errors.
  3. Character creator opens.
  4. Relevant archetypes/powersets appear.
  5. New icons render correctly.
  6. New login screen or custom textures render correctly, if changed.
  7. A character can load into a map.
  8. Any new powers can be selected and activated.
  9. No protected-bin related crashes appear.

If testing fails

Stop the release. Restore the last known-good client patch PIGGs and server bins. Investigate the candidate output instead of overwriting more live files.

Final release checklist

  • Staging validated.
  • Deployment validated.
  • City Icon texture output uses texture_library headers.
  • Deployment merged into correct binning server source folders.
  • Official full binning chain completed.
  • Candidate bins compared to known-good baseline.
  • Protected-bin changes reviewed and blocked unless deliberately approved.
  • Patch PIGGs built with pig.exe.
  • PIGG contents listings reviewed.
  • Client patch PIGGs promoted to <ClientRoot>\ouro\.
  • Approved server bins promoted to <ServerRoot>\data\.
  • <WebRoot>\public\game mirrors <ClientRoot>.
  • Manifest regenerated.
  • Launcher / game smoke test passed.