1. convertbundle.py
- Purpose: Converts an Academy asset bundle (format 7) to an Original/Retro format (format 6). This is a necessary step for compatibility with the earlier versions of FusionFall.
- Key Steps:
- Reads object pointers in the preload table.
- Maps internal object pointers to new indices in the preload, container, and object lists.
- Updates pointers and path IDs to match the new structure.
- Ensures proper order in the Unity object dictionary for game stability.
- Output: Saves the converted asset in format 6 for use in the Original/Retro version.
2. backport.py
- Purpose: Backports specific NPCs or objects from the Academy bundles to an Original/Retro game version.
- Functionality:
- Partially extracts and injects objects from Academy bundles.
- Transfers objects by traversing their dependencies, remapping path IDs, and updating preload tables.
- Works for assets such as characters and their textures.
- Note: This script predates convertbundle.py and is less comprehensive in its handling of assets.
3. backportvo.py
- Purpose: Extends backport.py to handle voice lines for NPCs.
- Key Features:
- Imports voice line data using preset index ranges for simplicity.
- Dynamically updates container and preload tables to include audio clips.
- Use Case: Useful for ensuring NPCs have their voice lines when backported to Retro.
4. sharedassets.py
- Purpose: Edits the sharedassets0.assets file, which manages caching and asset bundle registration.
- Main Features:
- Adds new bundles or updates versions to force client-side reloads.
- Edits music and ambient data, ensuring they are paired correctly to avoid crashes.
- Usage: To manage new or updated assets required by the game.
5. academyitem.py
- Purpose: Adds items from the Academy version to the Retro version.
- Functionality:
- Transfers item data, including icons, textures, and meshes, while updating tables.
- Ensures proper mapping of icons and mesh data into the preload and container tables.
- Use Case: Integrates new items like weapons, clothing, or accessories into Retro.
6. addmission.py
- Purpose: Adds new missions to the Retro version.
- Key Features:
- Defines mission objectives, tasks, rewards, and prerequisites.
- Supports complex mission types, such as escort or multi-step tasks.
- Adds necessary data to mission and quest item tables.
- Use Case: Creates new storylines or tasks for players.
7. addwarp.py
- Purpose: Adds warp points and custom NPCs to the game.
- Features:
- Defines NPC data such as location, appearance, and behavior.
- Registers warp data for quick travel between areas.
- Use Case: Expands map accessibility and introduces new NPCs.
8. area.py
- Purpose: Ports a map tile from the Academy version into the Retro format.
- Key Steps:
- Maps and replaces object references to ensure compatibility.
- Updates preload data to match the converted map's structure.
- Use Case: Introduces new playable areas into the game.
9. areadata.py
- Purpose: Registers new map tiles in the table data for visibility on the minimap and during character selection.
- Functionality:
- Adds entries for map tiles, specifying zone names and coordinates.
- Use Case: Ensures new areas are properly recognized by the game's UI.
10. assetlist.py
- Purpose: Lists every asset from every bundle in the cache.
- Functionality:
- Outputs asset names and indices for quick reference during development.
- Use Case: Useful for identifying assets needed for backporting or editing.