Autogenerated dummy classes
Is a class working incorrect? Create an issue or message ghostrider-05 on Discord.
Warning
If you get recompile errors, you likely already have the Dummy Classes installed without deleting the folders. You don't need to change any autogenerated class to get it to recompile!
- If you already have the Dummy Classes installed, remove the dummy classes in these folders in
/Development/Src/(continue to the next step if you don't have them installed):AkAudioProjectXTAGame
- Download the
Srcfolder - Extract the downloaded folder to
UDK/{UDK name}/Development/ - Recompile the classes
- If you want to go back: delete the same folders as in step 1, download the Dummy classes or UDK classes and do steps 3 and 4 again.
If preferred, you can also use svn export or git sparse-checkout.
Example commands for git
- Install Git on your system. If you already have Git, you can skip this step.
- Create a git project and add the autogenerated classes:
# Change this to your folder where UDK is installed
cd ./UDK/{UDK name}/Development/
git init
git remote add origin https://github.com/ghostrider-05/RL-dummy-classes2
git config core.sparsecheckout true
echo "Src/*" >> .git/info/sparse-checkout
git pull --depth=1 origin mainTo update when new classes are added, run the following commands:
# Go back to the /Development/ folder
cd ./UDK/{UDK name}/Development/
# Fetch updated classes
git pull --depth=1 origin main
# Recompile classes
cd ../Binaries/Win32/
UDK make -fullThat's it!
Scripts to update classes
- Update the game to the new version.
- Set
Versioninconfig.tomlto the new version. - Run
npm start. Update all cases to recompile without errors. - Run
npm run github:newto create a new pull request. - Merge the pull request.
To merge only some classes with the Dummy classes repo, as that repo is more used, run npm run github:merge and pick the classes to merge.
Extractor
config.toml is the configuration file for adding more options during the extraction.
Top level:
Version: the current version of the game to extract
AssetExtraction:
IgnoredFlags: these variable flags will be removed during the extractionIgnoredDefaultProperties: default properties that contain these words will be commented
Descriptions
Fill the description.toml configuration with the class descriptions.
When running the CI this file will be merged with the classes to combine the descriptions.
Special classes:
_DummyClass: this will hold some descriptions commonly used in extracting the classes._ApplyToAll_DummyClass: all properties listed in this class will be applied to all classes that have that property. Specify that property on a class to overwrite the descriptions or set it to empty to remove it.
Descriptions can be defined for:
VariablesStructures.{Structure name}EnumsDefaultVariablesNodeInputsNodeOutputsNodeVariables
All types use the property name as the key, except for the Node* types. These use the index of the link.
Example:
[MyClass.Variables]
PropertyName="Something interesting"
[MyKismetNode.NodeInputs]
0="The first input link"Warning
These replication statements may not be correct and more to give a suggestion on what could be replicated. Please check the official UDK documentation or reach out to Psyonix with your question, I likely do not know the answer.
If a class has replicated variables, there will be a replicated block at the bottom of the class.
replicated
{
if (statementCode) // The replication condition
Location; // The variables that will be replicated when the condition is true
}If a statement is not known, a comment will be placed behind the default statement.
The changelog will show the difference between an installation of the dummy classes at a certain commit (see the description of the changelog) and the autogenerated dummy classes.
The Engine changelog will contain a list of changes you could make to relevant classes in /Engine/Classes/.
You can also fetch the changelog (in JSON) from the GitHub API from the outputted files:
- kismet.json: lists new and deleted kismet nodes when switching from the dummy classes.
- classes.json: lists new and deleted classes, including kismet nodes, when switching from the dummy classes.
- extracted.json: lists all
AkAudio,ProjectXandTAGameclasses in JSON format.
Made using Martinn's decryption tools.