As part of the Unified Community Platform project, your wiki will be migrated to the new platform in the next few weeks. Read more here.

Modding

From Automation Wiki
Jump to: navigation, search

Modding of the legacy Kee Engine version is possible, but discouraged, as this version is no longer in development.

Modding of the UE4 Version of Automation is supported, having started at the end of September 2017.

What you will need:[edit | edit source]

  • UE4 Editor (free download from Epic Games)
  • A 3D modeling package (ex. 3DS Max, Blender and Maya, etc.., but this wiki only covers the specifics of using 3ds-max and blender)
  • The Automation Workshop Tools (from Steam)

Installing UE4[edit | edit source]

You will need to download and install UE4 Editor 4.24 From Epic Games, To do this, grab the Launcher from here: https://www.unrealengine.com/download

make sure to download the correct version. we do not use the latest version of UE4.

Do not install the UE4 Editor to Program Files. Install the editor to a custom location without a space in it, like C:\UE4\UE_4xx or similar.

Ue424.png

Installing Automation Workshop Tools[edit | edit source]

Within Steam Go to Library > Tools, and download the Automation - Car Company Tycoon Workshop Tools, this contains the mod project for Automation.

It is recommended to copy the AutomationGame project to another folder.

Browse to the location of the modding sdk in your steam tools library (by default, this is C:\Program Files (x86)\Steam\steamapps\common\Automation_SDK), and copy the project folder to a new location (with no spaces in the file path).

Once installed, you can open the AutomationGame project with UE4 Editor by launching the UE4 editor from the epic games launcher and browsing to the automationgame project file.

The automation modding project is located in Automation_SDK\AutomationGame\AutomationGame.uproject

Project browser 01.png
Project-browser-02.gif
Project-browser-03.gif
Project-browser-04.gif


Troubleshooting Startup Issues[edit | edit source]

  • The first launch of the SDK will be very slow. So be patient, on slower computers can be 30 mins to 1 hour. This is due to it generating editor cache data (Derived Data Cache). If you make a Shortcut to UE4Editor.exe, you can change to target to: D:\UE4\UE4_424\Engine\Binaries\Win64\UE4Editor.exe D:\AutomationGame\AutomationGame.uproject -LOG  With the paths updated to where your UE4Editor is installed, and where you have copied the Automation SDK to. This will open the editor with a Log Console Window along with the splash screen, and will give you an idea if it is actually processing items, or has gotten stuck.
  • If you get errors relating to FMODStudio Plugin not loading, or other plugins not loading. This could be due to Redistributes and dependencies not being installed correctly. You Need Visual C++ 2019 Visual C++ 2013 Redistributables, Direct X June 2010 Runtimes


Core concepts[edit | edit source]

  • Mods in UE4 are called 'Plugins'. They go in the 'Mods' folder. (I know.)
  • Do not make any assets in the Root Content folder. Only make assets in your mod's folder. (See "Content browser" below.)
  • Editor assets cannot be used directly by the game - they have to be 'cooked'. We can only cook your plugin, not our content. Hence, the requirement to make content in your mod folder.

Content browser[edit | edit source]

Click on the "Show or hide sources" icon To the left of the Content Browser Search box to view the folder structure. Click on View Options (bottom right of the content browser), and turn on "Show Plugin Content" to view all mods.

Project-browser-05.gif

Optimisation and performance considerations for mods[edit | edit source]

Performance of fixtures and bodies in UE4 is a heated topic. while it is true that in terms of mesh rendering and draw calls there is practically 0 impact to performance for meshes with less than 2k polygons, it is not true for shader rendering or fixture stamping.

  • for shaders, they are calculated in a 2x2 grid, so polycount only impacts performance here if you end up with polygons too close together in screen-space. this is usually not an issue for us, but if you start to create meshes that are too dense and small you will see a performance impact. this is a negligible consideration compared to raycasts for fixtures however [explained below].
  • there is a performance impact to polycount with fixtures in that we have to cast a ray to the body for every vertex of the fixture and the body. so, the more vertices there are on a mesh, the longer it'll take to conform to the body. this is why you'll see some detailed fixtures sit there for a few seconds before snapping to the car. this is doubly so for fixtures that cut in to the car - a UV Mesh's vertices are raycast to the car on every frame while you're dragging the fixture around. UV meshes impact performance greatly with a higher poly count. try to keep UV meshes as low as possible.
  • likewise, the poly count of a car impacts performance in that the more polygons a car has the longer it takes to complete these raycasts. a 10k poly body may make dragging fixtures around and conforming them to the car take slightly longer than usual, but if that same body uses morph targets instead of bones, this polycount is multiplied by the number of morphs. a 10k poly body with 10 morphs affecting every vertex effectively has 100k polygons that the fixture system has to raycast to, and this impacts fixture stamping time greatly.

for optimal performance:[edit | edit source]

  • keep UV Meshes lower than 100 tris. higher than this and they start to feel 'laggy' when dragging the fixture around. higher than 150 tris and it will feel too laggy to use properly
  • try to keep conforming meshes lower than 5k tris. more than this and they take longer than usual to conform to the car once they are placed.
  • try to keep bodies between 7k-30k polygons, and use bone weighting for as many morphs as possible. Use shape keys and morph targets sparingly.
    • The fewer vertices a body has, the less information there is to interpolate the cutouts, so some fixtures may have misaligned holes.
    • the greater vertices a body has, the longer it takes to stamp a fixture.

This is a body that uses all bone weighting for its morphs, and has 7K polygons:

This is a body that uses all shape keys for its morphs, and has 40k polygons:

Known issues[edit | edit source]

  • We have not yet implemented a way for you to build custom materials to load onto cars/fixtures. As we have to replace materials at runtime, we will provide a mechanism for this at some point. for now, any material assigned to a mesh you create will be kept on that mesh so long as the player does not change the material. as soon as the material is changed in-game to something in the materials swatch, any custom materials you assigned to it are lost until that fixture is removed and re-placed.

Mod types[edit | edit source]

Cooking[edit | edit source]

when you've made your files and want to share your mod, select Share -> [Mod Name to share].

Project-browser-06.gif

WARNING: THE FOLDER YOU SELECT WILL HAVE ALL OF ITS CONTENTS DELETED. YOU HAVE BEEN WARNED.

SELECT AN EMPTY OR NEW FOLDER.

Select a path where there are no spaces in the file path.

  1. "C:\Users\Name\Documents\Unreal Projects\AutomationGame" is NOT OKAY, as there is a space between "Unreal" and "Projects".
  2. "C:\Users\Name\Documents\UnrealProjects\AutomationGame" is OKAY because there is no spaces in the file path.

Fixing possible cooking Issues:

  • Search Output Log for "Error:".
  • Lines will be prefixed by UATHelper.
    • If Error contains "Unable to find PackagePlugins" or similar, this is due to the Editor being in Program Files. It will be unable to copy Camso_UATScripts.Automation.dll to Engine/Binaries/DotNet/AutomationScripts. You can do this yourself by going to AutomationGame/Build/Camso_UATScripts/bin and copying the DLL to UE4/Engine/Binaries/DotNet/AutomationScripts.
    • If Error contains "an item with the same key already exists", then you have a mod or plugin somewhere with a duplicate .uplugin file. navigate to the plugin and mod files and delete any duplicate .uplugin files and try again. If any one mod has a duplicate, all mods will fail to cook.
  • visit the forums or discord to ask for further help.


Sharing Your Mod To The Steam Workshop[edit | edit source]

Once you have your cooked content, navigate to the modding SDK folder and open the Automation Workshop Publishing Tool.exe

This tool will handle the initial upload of any mod you want to share with the community. Once you have seeded your mod, you can edit any of the properties, such as uploading images, editing the description, setting the visibility, etc... from the steam workshop page of the mod.

For any updates you want to make to the mod, you will have to use this tool and upload a new version with an optional Change Note .

SteamModSharing 01.gif
  1. The list of your mods. Select New Item to start a new mod.
  2. browse to the location of your mod by picking the path, or type the location manually. The mod location is the root mod folder that you cooked in to.
  3. Write a title and description for your mod. these can be edited later within the steam workshop page.
  4. pick the path, or type out the path, for the header image to use for your mod. This will show up as the thumbnail when players are browsing the workshop, and if you dont have any images (uploaded through steam on the workshop page for this mod), then this image will also be the header image at the top of your mod description page. all images must be under 1MB.
  5. Chose a visibility. This can be edited later in the steam workshop page for your mod. setting it to private or hidden first may ease your mind as you can subscribe to it and see if it works properly before publishing it to the greater world.
  6. chose a category for your mod. This helps discoverability as people may be looking for a certain type of mod only.
  7. submit your mod with an optional change note. Once the submission process is completed, a browser window will open up to the newly created steam workshop page for your mod.

see also[edit | edit source]