Files
rr3-server/QUICK_REFERENCE_ASSETS.md
Daniel Elliott cb89aa07b9 Add quick reference guide for asset extraction
Added simple cheat sheet for when assets arrive from Discord.
Includes common commands, troubleshooting, and a drunk-friendly section.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 10:08:17 -08:00

3.8 KiB

Quick Reference: RR3 Asset Extraction

When Assets Arrive From Discord

Step 1: Extract .z Files (Linux/Unix)

cd RR3CommunityServer/Tools
chmod +x batch_extract_z_assets.sh
./batch_extract_z_assets.sh /path/to/discord/assets /path/to/extracted

Step 2: Extract .z Files (Windows)

cd RR3CommunityServer\Tools
.\extract_z_asset.ps1 -InputFile "C:\discord\assets\sprites_0.etc.dds.z"

Step 3: List All Extracted Files

ls -lh /path/to/extracted/*.dds

Step 4: Import to Server Database

cd RR3CommunityServer/RR3CommunityServer
dotnet run

# Use API to list assets
curl http://localhost:5143/api/AssetManagement/list

Common Commands

Extract Single File

# Linux/Unix
./extract_z_asset.sh sprites_0.etc.dds.z

# Windows
.\extract_z_asset.ps1 -InputFile "sprites_0.etc.dds.z"

Batch Extract Directory

# Linux/Unix
./batch_extract_z_assets.sh /assets/directory

# Windows (need to create batch version or use WSL)
wsl bash batch_extract_z_assets.sh /mnt/c/assets/directory

Pack Modified Asset

# Linux/Unix
./pack_z_asset.sh modified_sprite.dds

# Windows (use API)
curl -X POST http://localhost:5143/api/AssetManagement/pack \
  -H "Content-Type: application/json" \
  -d '{"fileName": "modified_sprite.dds"}'

File Locations

RR3CommunityServer/
├── Tools/
│   ├── extract_z_asset.sh          ← Use this for single files
│   ├── batch_extract_z_assets.sh   ← Use this for directories
│   ├── pack_z_asset.sh             ← Use this to create .z files
│   └── extract_z_asset.ps1         ← Windows version
├── Assets/                          ← Put .z files here
│   ├── raw/                        ← Original .z files
│   └── extracted/                  ← Extracted DDS textures
└── ASSET_EXTRACTION_GUIDE.md       ← Full documentation

Troubleshooting

Scripts won't run (Linux)

chmod +x *.sh

Python not found

# Ubuntu/Debian
sudo apt install python3

# RedHat/CentOS
sudo yum install python3

"No ZLIB blocks found"

File is corrupted or not a .z file. Check with:

hexdump -C file.z | head
# Should see: 78 9c or 78 da

Custom Content Workflow

1. Get PNG → 2. Convert to DDS → 3. Pack to .z → 4. Upload to server
        ↓              ↓                ↓               ↓
    GIMP/PS    AMD Compressor    pack_z_asset.sh    API POST

Important Notes

  • Backup originals before modifying
  • .z files are ZLIB compressed (not ZIP!)
  • DDS format: ETC2_RGBA (Android), BC3 (PC)
  • File size: Assets can be 1-100 MB each
  • Server path: Configure AssetBasePath in appsettings.json

Quick Test

# Download test file (if available)
wget https://example.com/test_sprite.z

# Extract
./extract_z_asset.sh test_sprite.z

# Verify it's DDS
file test_sprite.dds
# Output should be: DDS image data, ...

# Repack
./pack_z_asset.sh test_sprite.dds

# Compare sizes
ls -lh test_sprite.*

API Endpoints (Server Running)

# List all assets
curl http://localhost:5143/api/AssetManagement/list

# Extract via API
curl -X POST http://localhost:5143/api/AssetManagement/extract \
  -H "Content-Type: application/json" \
  -d '{"fileName": "sprites_0.etc.dds.z"}'

# Batch extract via API
curl -X POST http://localhost:5143/api/AssetManagement/batch-extract \
  -H "Content-Type: application/json" \
  -d '{"inputDirectory": "raw_assets"}'

When You're Drunk 🍺

# Just run this and everything will be extracted:
cd RR3CommunityServer/Tools
chmod +x batch_extract_z_assets.sh
./batch_extract_z_assets.sh /path/where/discord/gave/you/files

# Done! Check the "extracted" folder.

Need help? Check ASSET_EXTRACTION_GUIDE.md for complete documentation.