Python Modding Scripts for UnityPackFF (backport, convert bundle, academy item)

Python Modding Scripts for UnityPackFF (backport, convert bundle, academy item)

Python Modding Scripts for UnityPackFF (backport, convert bundle, academy item)

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.
Top