Content Manager (abbreviated as CM) is the included content management GUI utility for managing assets, uploading and downloading content from the Download Station, and for exporting and importing cdp files for archiving or sharing. It has been part of Trainz releases since the debut of TRS2006 (then called Content Manager Plus and CMP) in the fall of 2005, and was the major improvement made to the four service packs that evolved TRS2004's advances replacing several separate .exe file modules with a single common user interface to manipulate and manage assets and content. CM includes the ability to archive assets, disable them so they would not appear in Surveyor asset selection APIs and a filter definition and selection system which allowed the Trainz user to fine tune the selections presented in the menuing of the Surveyor module tools APIs.
Content Manager is intended to address the following functions:
- Install and remove custom content.
- Archive custom content.
- Search both local and DLS content.
- Download DLS content.
- Create and edit custom content.
- Provide a platform for executing Content Manager Tools.
Content Manager is designed to allow content creators to produce new content, and to allow end-users to download with a minimal of hassle. It is tightly integrated with the Download Station (DLS) to allow content to be uploaded and downloaded in a reliable fashion.
Content Manager is specifically not intended for users to perform regular editing of content created by others; this behavior is considered fairly counter-productive for the following reasons:
- It is expected that DLS content will be available in a working format, and that Content Manager will transfer the content to the local machine in a working format.
- This is historically inaccurate, please see the Download Station Cleanup page. It was found that many legacy content items, had typos, misspellings, and formatting errors of one sort or another that were further linked to Trainz run-time crashes.
- Trainz software was revised to trap and expose these errors.
- It is required that local content maintains parity with the original DLS content, such that dependencies and updates continue to work appropriately.
- By editing DLS content locally, the user is establishing that they will take responsibility for maintaining not only the edited asset, but potentially all assets which share some kind of dependency on the edited asset.
- When a user downloads or purchases a new item of content, they have a reasonable expectation that it will work "out of the box".
- This expectation is in direct conflict with the user performing significant edits to other content.
There are some obvious cases where edits are harmless, and CMP attempts to allow for the most useful of these- such as renaming or hiding an asset.
It is expected that the Trainz environment will be optimised and extended with each new version release. To allow existing custom content to work with newer versions of Trainz, N3V has adopted an "installation" process for custom content, in favor of the original "drop it in a folder" process. During this process, the Trainz environment performs the following steps:
- Validates that the content will work with the current Trainz installation.
- Precaches various metrics from the content that Trainz requires at runtime such that the entire item of content does not need to be loaded at game startup (as was the case in the earliest Trainz versions.)
- Upgrades files within the content to the latest file formats, such that the upgrade process does need to not occur during loading.
- Converts some files from human-readable form to a machine-optimized format.
- Moves the raw content files to storage within the Trainz Asset Database.
- Notifies running Trainz executables of any changes.
Changes since TRS2004
Users are no longer provided with direct access to installed custom content, for the following reasons, but such assets may be cloned under a user kuid code:
- Installed content may be stored in a custom internal format, rather than in the public distribution format.
- Edits made to files which have supposedly been pre-processed will result in runtime errors where the cached data no longer matches the actual content on disk.
Since direct access is not possible, Content Manager provides a mechanism for users to 'check out' items for editing, and to check them in again after the edits are complete. (Open for Edit, asset validation, and Committing the asset) The normal installation steps are performed during the check-in process allowing Trainz to use the updated content safely. Trainz will issue a query and warning when installed content has been modified, or as has sometimes happened, imported from an older version of Trainz, then the separate asset (now part of the new release) might be in the situation of overwriting an updated validated version.