Skip to content

Param Patching (Features)

Ali Hussain edited this page Sep 28, 2023 · 1 revision

In Super Smash Bros. Ultimate, there are various file types that store parameters that the game will reference at runtime. Think of these as settings for the game stored in special param files, that all follow a specific format that we abbreviate to "PRC".

Multiple file types use this, and those are:

  • prc
  • stprm
  • stdat

ARCropolis supports the loading and patching of these files through dedicated files called param patches. They are essentially special PRC files (or XML) files that can be used in place of the original file, allowing multiple mods to modify the same file. This is super helpful for mods that impact any of the ui/param/database files, as those are the most often edited.

Creating a patch file

Before you can create a patch file, you need the source (vanilla) file and the modded file. You can get the vanilla file from extracting it from the game, and for the modded file you can use prickly, a TUI based param editor to edit the vanilla file. For example, lets say we have a file called vanilla_fighter_param.prc and a file called modded_fighter_param.prc. We want to generate a patch file which can go from the vanilla to the modded param file consistently.

To do so, you're going to need to use parcel, which you can install using cargo install --git https://github.com/blu-dev/parcel, or by downloading the binaries from the releases.

parcel supports both diffing and patching files. image

In order to generate a binary batch file, you'll want to run a command similar to the following:

parcel diff vanilla_fighter_param.prc modded_fighter_param.prc fighter_param.prcx

This will generate a single file named fighter_param.prcx, which when placed into fighter/common/param/ will serve as patch file for fighter_param.prc

However, this is not always the easiest to make frequent edits with. For that reason, ARCropolis also supports using XML patches, in which case you'll want to also go ahead and download ParamLabels.csv from the hashes repository. You would run the following command:

parcel diff vanilla_fighter_param.prc modded_fighter_param.prc fighter_param.prcxml --type xml --hashes ParamLabels.csv

And that would generate an XML file that contains all of the modified parameters, and ARCropolis will patch the file properly, although reading in the data might be a little bit slower than actual binary data. Of