Corrected version dropdown to reflect actual game versions: - 15.0.0 (Community Server Latest) - 14.0.1 (EA Official Latest) - 14.0.0 through 8.0.0 (Historical EA versions) Updated documentation to match real version history. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4.9 KiB
4.9 KiB
RR3 Asset Manifest Specification
Overview
When uploading ZIP files to the RR3 Community Server, you can include a manifest.json or manifest.xml file to automatically configure asset metadata, version, and categorization.
File Format Options
Option 1: JSON Format (Recommended)
Place manifest.json in the root of your ZIP file:
{
"version": "9.3.0",
"gameVersion": "9.3.0",
"description": "Porsche Pack - 911 Models",
"author": "CommunityModder",
"category": "cars",
"assets": [
{
"file": "porsche/911_turbo.dat",
"category": "cars/porsche",
"type": "Model",
"required": true,
"description": "Porsche 911 Turbo model"
},
{
"file": "textures/911_turbo_paint.tex",
"category": "textures/cars",
"type": "Texture",
"required": false
}
]
}
Option 2: XML Format
Place manifest.xml in the root of your ZIP file:
<?xml version="1.0" encoding="UTF-8"?>
<AssetManifest>
<Version>9.3.0</Version>
<GameVersion>9.3.0</GameVersion>
<Description>Porsche Pack - 911 Models</Description>
<Author>CommunityModder</Author>
<Category>cars</Category>
<Assets>
<Asset>
<File>porsche/911_turbo.dat</File>
<Category>cars/porsche</Category>
<Type>Model</Type>
<Required>true</Required>
<Description>Porsche 911 Turbo model</Description>
</Asset>
<Asset>
<File>textures/911_turbo_paint.tex</File>
<Category>textures/cars</Category>
<Type>Texture</Type>
<Required>false</Required>
</Asset>
</Assets>
</AssetManifest>
Field Descriptions
Root Fields
- version: Asset pack version (e.g., "1.0.0")
- gameVersion: RR3 game version this pack is for (e.g., "14.0.1", "15.0.0")
- description: Brief description of the asset pack
- author: Creator name (optional)
- category: Default category if not specified per-asset
Asset Fields
- file: Relative path to file within ZIP (required)
- category: Asset category (overrides root category)
- type: Asset type (Data, Texture, Audio, Model, Config)
- required: Whether clients must download this (true/false)
- description: Brief description (optional)
Game Version Format
- Use semantic versioning:
MAJOR.MINOR.PATCH - Examples:
15.0.0(Community),14.0.1(EA Latest),14.0.0,13.0.0 - Compatibility: Patch versions are compatible (14.0.x works with 14.0.0)
Version History
- 15.0.0 - Community Server version (current)
- 14.0.1 - EA's latest official version
- 14.0.0 - EA version 14
- 13.0.0 - 8.0.0 - Earlier EA versions
Categories
Standard categories:
base- Core game filescars- Car models and datatracks- Track models and dataaudio- Sound effects and musictextures- Texture filesui- User interface elementsevents- Event configurationsdlc- Downloadable contentupdates- Game updates
Subcategories allowed (e.g., cars/porsche, tracks/silverstone)
Asset Types
Data- Generic data files (.dat, .pak, .z)Texture- Texture files (.tex, .dds, .png)Audio- Audio files (.ogg, .mp3, .wav)Model- 3D model files (.nct, .obj)Config- Configuration files (.json, .xml)
Automatic Detection Fallback
If no manifest file is provided, the server uses smart detection:
- Searches folder names for keywords (cars, tracks, audio, etc.)
- Preserves folder structure as subcategories
- Falls back to first folder name if no keywords match
- Version defaults to manual selection or "unknown"
Example ZIP Structure
my-asset-pack.zip
├── manifest.json # Metadata file
├── cars/
│ ├── porsche/
│ │ ├── 911_turbo.dat
│ │ └── 911_gt3.dat
│ └── ferrari/
│ └── 488_gtb.dat
└── textures/
└── cars/
└── paint_textures.pak
Upload Behavior
- Server extracts ZIP to temp location
- Searches for
manifest.jsonormanifest.xmlin root - If found: Uses metadata from manifest
- If not found: Uses smart folder detection
- Processes each file according to configuration
- Calculates MD5/SHA256 hashes automatically
- Stores in database with version + category info
Version Compatibility
When a game client requests assets:
- Client sends version:
14.0.1 - Server returns assets for:
14.0.0,14.0.1(patch-compatible) - Server excludes:
13.x.x,15.x.x
Major/minor versions must match exactly, patch versions are compatible within the same minor version.
Best Practices
- Always include a manifest file for large packs
- Use semantic versioning for both pack and game version
- Mark base game assets as
required: true - Use descriptive categories and subcategories
- Include author information for community tracking
- Test with single-file upload before bulk ZIP upload
- Use JSON format for better tool support