Everyone at Playsport has been working feverishly hard on opening up Steam Workshop support for Motorsport Manager. If you've always wanted to make your own mods for the game, this gives you the opportunity to change the game to suit you.
The team have created some guidelines to show you what can be done and how to approach it, and we're happy to share them with you here.
Steam Workshop support allows content creators to mod Motorsport Manager in the following ways:
- Game databases (eg. drivers, teams).
- 3D models for cars and car parts (eg. front wings)
- 3D models for Headquarters buildings
- Car Liveries
- 2D Art Atlases (eg. sponsor logos, team logos)
- Driver Portraits
- Transition Videos
Motorsport Manager uses Unity, and modders will need to install Unity 5.3.6, which can be downloaded for free here: https://unity3d.com/get-unity/download/archive
Mods are based on Asset Bundles - a Unity feature that packs assets together.
- Install Unity and create a new project
- The MM Steam Workshop update installs a template UnityPackage to your machine. You can find it in the MM installation folder (eg. C:\Program Files (x86)\Steam\steamapps\common\MM2\MM_Data\StreamingAssets\Mod Template\)
- Import the mod template UnityPackage into the project, by going to Assets -> Import Package -> Custom Package and selecting MM_WorkshopPackage.unitypackage
- Import the package.
- The Unity project will be populated with sample assets for you to edit. It contains the default databases, atlases, materials and so on.
Mod Creation Flow
Content creators can generate assets to be imported into the game using Asset Bundles. You can test these assets locally using our Workshop Staging folder structure and then publish the item to Steam Workshop. To do this:
1. Create your assets (eg. car model, database), or edit the mod template assets.
2. If creating an asset, import it into Unity (Assets -> Import New Asset).
3. Click on the asset you want to export to the game in Unity’s Project view.
4. At the bottom of the Inspector, there is an AssetBundle dropdown.
5. Click on “New…” and then type in a name to create a new AssetBundle.
6. Build the Asset Bundle. (Assets -> Build AssetBundle). For more information on building AssetBundles: https://docs.unity3d.com/Manual/BuildingAssetBundles.html
7. This will create a file within your Unity project (eg. C:\MyUnityProject\AssetBundles). It should look something like this:
8. Copy the generated asset bundles into the MM folder structure (eg. C:\Program Files (x86)\Steam\steamapps\common\MM2\MM_Data\Modding). More details on the folder structure below. Note that you do not need to copy the .manifest file.
9. Load up Motorsport Manager.
10. Select “New Career”.
11. On the Steam Workshop panel of the Game Settings screen, turn the “Test My Mods” option on.
12. Continue testing your assets inside the game.
13. Publish your mod when you’re happy with the results!
Only add one type of asset to a bundle!
When you’re exporting an AssetBundle, the assets must all be the same type. For example, you can add 4 databases to an AssetBundle, but you can’t add 1 car model, 1 database and 1 livery.
If you want to create a mod which uses many different types of asset, create bundles for each asset type. You can then bundle those together by placing them in the Workshop Staging folder.
Workshop Staging Folder Structure
As mentioned above, when you create a mod you will need to place your assets inside the MM folder structure. The folder can be found in the folder where MM is installed, for example:
C:\Program Files (x86)\Steam\steamapps\common\MM2\MM_Data\Modding
The structure is as follows:
- Preview.png (image used as thumbnail (max 1mb size)).
So, if you create a database mod, place it inside the Databases folder, place car models inside the Vehicles folder, and so on…
I can’t find the modding folder!
- Open Steam
- Go to your library
- Ensure that Motorsport Manager is up to date
- Right click on the Motorsport Manager entry
- Select “Properties”
- A “Motorsport Manager - Properties” window should have opened. Select “Local Files”.
- Select “Browse Local Files…”
- This will open the installation folder.
- Open the “MM_Data” folder.
- Open the “Modding” folder.
I’m working on multiple mods! Can I create more folders?
No. However, when publishing a mod you can choose to publish certain files. This means that you can leave all of the mods you’re working on in the Modding folder.
The preview image is the icon which appears within Steam Workshop. This needs to live inside the root Modding folder, like so:
Preview images should be:
- Named “Preview”.
- Smaller than 1mb size, and preferably with an aspect ratio of 16:9.
You can edit the preview image from within Steam once you’ve created your AssetBundle.
Data is at the heart of the game! Within our Unity Package users will find our default databases, and will be able to edit them at will. The files are:
- Team assistants.
- Team chairmen.
- This is where you can edit the races, teams, prize money, and rules which appear within in a particular championship.
- Team numbers refer to the row number of the team in the Teams.txt database. You can see the numbers here.
- Locations refer to tracks. The track IDs are detailed here.
- Rules are detailed here.
- The temperatures and rainfall chances of the different weather types.
- Everything to do with drivers can be edited here.
- The teams a driver can join are detailed here.
- This allows you to edit the Lead Designers.
- Designers’ Components are detailed here.
- The journalists who ask you various questions and publish media reports.
- The race mechanics’ names and stats.
- Mechanic bonuses are detailed here.
- Media Outlets.txt
- The outlets which the journalists write for.
- Here you can edit Ernie Hecklerock himself!
- The chief scouts, who find you new drivers.
- The principal moneygivers of the game. Sponsors can be attached to multiple teams at any one time, as seen in the Team Sponsoring column.
- Prestige is the sponsor’s star rating.
- Upfront Value, HomeBonus Value, Bonus Amount, Per Race Payment are all multiplied by one million when imported into the game (ie. ‘0.2’ is £200,000).
- Bonuses are optional.
- Team Principals.txt
- The managers of the AI teams.
- Change the names and locations of the teams. Information about
- Color refers to a colour set. If you want to swap certain certain team colours around, this is the place to do it (eg. swapping Steinmann Motorsport to Color 4 will give them a red car and red UI elements).
- Political Attributes define how teams will vote in certain GMA rules.
- Budget is the team’s starting cash.
- Race Payment offset is a bit of ‘bonus’ money which is added to the Chairman Payment. This is intended to replicate some teams having a bigger warchest.
- Aggression defines how risky a team will be in regard to various AI decisions (parts being built, race orders, etc). 0 is less aggressive, 1 is more aggressive.
- … more database types will follow in updates.
Putting Databases In Game
For database edits, you do not create an AssetBundle. Simply copy the modified .txt file into the “.../Modding/Databases” folder.
Just remember that file names need to be the same as the ones in the list above, otherwise the system won’t pick them up.
Mods containing modified database files will only be usable when starting a New Career, so bear that in mind.
If you are creating a mod with 3D models and Databases you might want to publish two different items, so that users will be able to use the 3D models in their existing career savegames.
3D Models for cars and car parts
If you have created 3D Models for cars and car parts, you can import them into Unity so that they can be bundled together.
- Bundled models will stay inside the folder “.../Modding/Models/Vehicle”.
- Inside the folder there can be as many asset bundles as the user wants
- No special naming conventions are required
When creating the prefabs, user will need to name them as follow:
- Chassis - the main part of the car
The system will build the car starting from the Chassis and using other parts when needed. If there are no custom parts, the system will fallback to the default part. This allows creation of Wheel packs, Frontwing packs etc.
The Chassis model will need to have sockets transforms into its hierarchy so that the system know where to place the other parts of the car when building it. This follows a naming convention and general hierarchy as follow:
- Chassis transform
The seven sockets determine where the parts are placed. For instance, the SteeringWheel model, will be placed as a child of the Steering_Wheel transform.
The naming convention needs to be followed to ensure that the system works correctly.
For performance reasons, the management hub and the race simulation use two separate car models. The race simulation model is lower resolution than the management hub model.
This means that you’ll have to add a second model to your mods in order to have the car appear in race. So, if they are modding a Chassis, they will have to add a Chassis_RaceSim too.
Ideally the *_RaceSim file will have a much lower poly count to maintain performance. For example, the Chassis file will be a highly detailed model with high poly count, seen ingame when choosing teams/changing liveries etc. while the Chassis_RaceSim is only used in-race.
Other naming conventions
By changing the name of a model, users can also specify whether a model is used for certain teams or championships.
- “_Team#” defines which team the model is supposed to be used for
- This uses the order of the teams when you first boot up the game.
- Eg. _Team0 for Steinmann Motorsport
- “_Championship#” defines which championship uses the model
- _Championship0 for the World Motorsport Championship
- _Championship1 for the Asia-Pacific Supercup
- _Championship2 for the European Racing Series
- “_RaceSim” defines the model that is used in the race simulation
For example, “Frontwing_RaceSim_Championship0” refers to a front wing that is used in the WMC during the race simulation by all teams. “Chassis_Team3” is used in the management hub by Scuderia Rossini and “Chassis_RaceSim_Team3” is used in the race simulation.
3D Models and liveries
In the modding template Unity Package, users will find our shader used for the liveries in the frontend and in the simulation.
- Custom/LiveryShader is used in frontend. In order to get the livery shader hooked into the system, they will just need to create a material using the “Custom/LiveryShader”. No need for special names.
- Custom/RaceCar is used during simulation. To hook this up, they will need to create a material and call it “Car_Body”. Only a material called that way will be recognized by the system.
3D Models and sponsors
- Custom/Car_Sponser (spelling is correct - doh!) shader is used in front end. To hook up the sponsors, create 6 materials called “Sponsor01”, “Sponsor02” etc, and use it on any mesh they want the sponsors to appear.
- In the mod template, you can see this on the Chassis prefab.
If you don’t want to use the sponsor shader, you can just use your own materials/textures/shaders to do whatever you like, (eg. draw sponsors straight into the chassis texture).
3D Models for HQs
Like the car models, the HQ models need to be imported into Unity and made into prefabs. You can see an example in the mod templates. Once all the models are prefabs they will need to be bundled into one AssetBundle (the name of which does not matter).
We use these names for each of the buildings:
Different Building Levels
Some buildings have different levels (for example, the Design Centre has 4 levels). You can specify the level by using a _Level# suffix at the end of the name. For example:
- WindTunnel_Level0 - the first level of the Wind Tunnel.
This is optional. If you do not add a level suffix, the model will be used for all levels.
When buildings are being built or upgraded, there is an intermediate ‘building’ state. To create a model for this state of the buildings when they are upgrading, add “_Upgrade” or “_Upgrade_Level#” if specific to a level. For example:
- WindTunnel_Upgrade - used whenever the Wind Tunnel is being upgraded.
- TestTrack_Upgrade_Level1 - used when the Test Track is being upgraded from level 1 to level 2.
Liveries are images that are applied to the 3D models of cars.
Preferred Size: 2048 * 1024
You will need two files for each livery, named:
LiveryBase is the applied to the sides of the model, while LiveryDetail is applied to the top.
Users will have to create an asset bundle called Liveries or LiveryPack, then put the bundle in the Images folder.
Why are there two different names?
Naming the pack Liveries will overwrite the existing liveries. LiveryPack will create a pack of additional liveries, similar to the Livery DLC pack.
The files should be named like so:
- LiveryBase_1 to LiveryBase_#
- LiveryDetail_1 to LiveryDetail_#
As mentioned above, if the bundle is named LiveryPack, then it will add liveries to the game, so you’ll be able to subscribe to many mods containing a livery pack and have them all together. It will also be able to specify championship for some liveries
- LiveryBase_1 to LiveryBase_#
- LiveryDetail_1 to LiveryDetail_#
To specify the championship, add the suffix “_Championship#” to both files.
Liveries follow this colour convention in order to work with the livery shader:
- Black: 000000 - Primary
- Red: ff0000 - Secondary
- Green: 29fa00 - Tertiary
- Blue: 0000ff - Trim
Logos in Atlases
Atlases are where logos and UI graphics are kept. The Logos1 atlas is contains most of the logos in the game.
Creators will need to name this texture Logos1, and create an AssetBundle with it with the same name, Logos1. Required size of the texture: 4096*4096.
Once created, simply drop the AssetBundle into the Logos folder.
Content creators can add photos or illustrations as portraits for any person in the game.
To do this, you need to create one AssetBundle (named Portraits), which will contain each portrait as one single image. After that, simply place the AssetBundle into the Images folder.
Preferred size: 184 * 184px
We have a number of different portrait types:
Portrait file names will have to follow the names above, and add “_#” suffix at the end of the name to make one portrait specific to a person. For instance, Driver_0 refers to the first driver in the Drivers database - Harry Chapman.
If no suffix is used, the portrait will be used as a generic portrait on every person of that type. For example, a portrait called Mechanic will be used for all mechanics in the game.
Player and President do not require a suffix, as there is only one player and one president.
The fan portrait (used in post race event social media) does not need a suffix as only one generic portrait will be used.
Motorsport Manager uses Bink video player to play videos in the game. This means that modders will need to convert their videos into Bink format (*.bik) and follow a naming convention and folder hierarchy in order for the system to pick them up.
As with database edits, you do not create an AssetBundle for videos. Simply copy the *.bik file into the “.../Modding/Videos” folder.
- Download and install Rad Video tools here: http://www.radgametools.com/bnkdown.htm
- Convert your video to .bik format
- Name video and place it into the Videos folder accordingly.
- TeamIntro0 to TeamIntro30
- Champ1 to Champ3
Background Movie (played in the management hub)
- FrontendBackgound (spelling is correct).
Track Intro Videos
Video names (nb. spaces are required here)
- Black Sea
- Cape Town
- Rio de Janeiro