03. Best Practices - NellsRelo/OMD3-uSDK GitHub Wiki
Best Practices
uSDK Best Practices
Best practices for working with the uSDK haven't been firmly established yet, however there are two things to keep in mind relating to locations:
Custom Maps
Vanilla maps fall under a particular File structure:
Content/Maps/Category/MapFileName/MapFileName.umap
Category typically corresponds to which campaign the map is a part of, though it also includes cinematic maps, as well as an "Other" folder for the endless-only maps.
The best practice here is to replicate said file structure for custom maps, with some differences:
Content/Maps/CustomMaps/AuthorName/MapFileName/MapFileName.umap
CustomMaps/
is a preset folder the uSDK has supplied, the idea being that an extra layer specific to custom maps will keep things better organized. As you add more maps, the Maps folder could get pretty crowded. Category/
has been replaced with AuthorName
. An alternative would be BundleName
if you're bundling together multiple maps. This, admittedly, has little benefit, but prolific map modders, as well as those who want to collaborate, may find this to be a good idea.
BP Mods
Blueprint mods should go under the Content/Mods/ModName
folder. This is so that UnrealModLoader can see them. It's important to note that ModName
should be whatever you will call your eventual .pak file.
Modding Best Practices
Leaderboard Management
TODO: Upload Tipping the Scales version of the Score fixer
Any mod that affects the balance of the game to allow higher scores must disable scores on enemy kills. In the future, we may find a way to disable transmitting scores to the leaderboard, but for now, the way to handle this would be to go to Unpacked\Uassets\OMD\Content\Data\AICharacterProtos.uasset
(Located in pakchunk0), and for each individual enemy, update the ScoreOnDeath
field to 0
. This will make Robot Entertainment’s life easier, keeping them at peace with the existence of the modding community. There is a premade version of this file, based on the 8/11/21 Update, made by TimeMaster.
Unreleased/Blocked Content
No mod should be released to the public if it enables unreleased Weapons, Traps, Trinkets, or enemies, or opens up Pre-Order/DLC-specific items to people who don’t own the DLC.
Readme/Changelogs
Documenting changes and functionality is kind of important when it comes to making mods. This lets your users know what they’re getting into, and reminds you what you were doing. Every mod should at least have a readme.
Naming Conventions
Supplementary Text Files (Readmes, Changelogs)
Ex. ModName-TextFilePurpose.txt
It’s ideal to make Readme file names descriptive, as most mods will have one.
Data Additions
Ex. CUL_PlaceOnCeilingSp
Mod Initials, followed by an Underscore, followed by the data piece’s name
. Mod Initials ensure that your piece of data will be less likely to collide with another mod or official update, and makes it clear whether an addition is custom or was always there.
Mod .paks
PriorityNumber-ModName_P.pak
(ex. 500-OMD2StyleOrcs_P.pak)
Lower numbers cause a mod to load first. Higher numbers will override lower numbers. This can cause you to accidentally overwrite another mod’s changes if they touch the same file or object. Ending with _P
denotes the mod as a patch, ensuring that the game knows to load it.