Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
4b21cde
feat: Added Wwise volume sliders
mrhid6 Apr 21, 2025
2613e79
Fix outdated note on ada voiceline importing and TTS options
budak7273 Jun 14, 2025
cd4266c
UE5 calls it Revision instead of Source Control
budak7273 Jun 19, 2025
2180074
Hybrid subsystem info, getting subsystems in C++, Wait for Subsystem
budak7273 Jun 21, 2025
f7a322b
Actor mixin behavior clarifications
budak7273 Jun 22, 2025
e0c0e0a
Clarify hybrid subsystem naming and creation
budak7273 Jun 22, 2025
9149afd
Info on hooking failure log messages
budak7273 Jun 29, 2025
9e68df7
Mention Details pane options for Hook nodes
budak7273 Jun 29, 2025
a45f658
Add note about cloud sync and the Desktop
budak7273 Jul 1, 2025
5e19d9f
Mixin Target/Self info
budak7273 Jul 2, 2025
9a5b9e2
Fix outdated link to Unreal Resource
DavidHGillen Jul 28, 2025
cc99a80
Merge pull request #390 from DavidHGillen/patch-1
budak7273 Jul 30, 2025
3cc2b08
Remove old 1.0 download notes
budak7273 Aug 5, 2025
3f7492b
Mention Mod Module data validation
budak7273 Aug 5, 2025
ab2efe1
Clarify how to set Wwise project directory, remove reference to remov…
budak7273 Aug 5, 2025
58c495f
Clarify process of setting up example buildable mesh
budak7273 Aug 6, 2025
87d78a5
Merge pull request #382 from mrhid6/Dev
budak7273 Aug 9, 2025
78cf1dc
Formatting and typo fixes
budak7273 Aug 9, 2025
d34db06
Screenshots for Research Tree Editor page
budak7273 Aug 11, 2025
ab928f3
Added more info on using Access Transformers for struct properties
mklierman Aug 16, 2025
b3b7c83
Add comment explaining why `Class=` is used to select the struct
budak7273 Aug 16, 2025
aca7137
Merge pull request #394 from mklierman/Dev
budak7273 Aug 16, 2025
ff9edad
rename Notify job for clarity
budak7273 Aug 16, 2025
e092f6b
Merge branch 'Dev' of github.com:satisfactorymodding/Documentation in…
budak7273 Aug 16, 2025
19e0612
Mention additional tools for tracking down asset paths
budak7273 Aug 19, 2025
55ae67a
Fix typo, add info, formatting
budak7273 Aug 21, 2025
afe2a32
Additional info on key bind display + formatting
budak7273 Aug 22, 2025
ca9634d
Multiplayer/singleplayer codepaths note, clarify why 20 custom data f…
budak7273 Aug 23, 2025
79c7dbf
Add note about VS unsupported components warning
budak7273 Aug 23, 2025
6c8e2a5
Add "Unreal Learning Resources" page and link to it from relevant pag…
budak7273 Aug 24, 2025
a5209f2
Escape asciidoc attribute syntax
budak7273 Aug 25, 2025
758284d
List cpp Alpakit Convert option before new mod option
budak7273 Aug 25, 2025
8484f50
Quick reference table for building Cpp targets from Visual Studio
budak7273 Aug 25, 2025
9e6f815
Link mods useful for icon gen
budak7273 Aug 27, 2025
aa6f99a
More info on SetReplicationRelevancyOwner
budak7273 Aug 27, 2025
3314bda
Make notice about editing the script more obvious
budak7273 Aug 27, 2025
fe65ec2
Fix launch script unset gameDir check
budak7273 Aug 27, 2025
9db877d
Note about how to tell if you have a plugin or project level repo
budak7273 Aug 27, 2025
d1910c3
Info on working around asset toolkit stalled merges
budak7273 Aug 27, 2025
0098d20
`-nullrhi` works again when used with `-norhithread`
budak7273 Aug 27, 2025
4469afc
Additional powershell usage info, prevent path from splitting to mult…
budak7273 Aug 27, 2025
20954bb
Clearer action links on front page
budak7273 Aug 27, 2025
f425f2f
Move ContentLib before TweakIt since TweakIt hasn't been updated for …
budak7273 Aug 27, 2025
b4d2beb
Use asciidoc includes to centralize editing engine and repo download …
budak7273 Aug 27, 2025
cabddfa
Mention session setting replication in overview
budak7273 Aug 31, 2025
af69a94
Mention how to make a c++ mod module root
budak7273 Sep 1, 2025
118d5e3
WIP page on optional mod dependencies based on BlueBeka example
budak7273 Sep 1, 2025
e6e435a
Clarify wording
budak7273 Sep 17, 2025
ea30603
style: :art: Updated localization images to UE5
Rovetown Sep 20, 2025
16dc834
style: :art: Added WWise Installation Images
Rovetown Sep 20, 2025
899358f
Update asset toolkit fork info
budak7273 Sep 30, 2025
fda155e
Mention VS "packages with vulnerabilities" note
budak7273 Sep 30, 2025
f6200d5
Remove outdated BindOnBPFunction info
budak7273 Sep 30, 2025
7878234
More specific UE docs link
budak7273 Sep 30, 2025
d9251e6
Move images to correct folder, remove extra 1px left on wwise_version
budak7273 Sep 30, 2025
9f22904
Remove dates, add note about UI differences, add headings
budak7273 Sep 30, 2025
dd8506d
Retake wwise_no_plugins with with Install button instead of Modify
budak7273 Sep 30, 2025
9054aaf
Edit wwise_version to hide existing install UI elements
budak7273 Sep 30, 2025
441d30a
Merge pull request #403 from Rovetown/wwise-image-update
budak7273 Sep 30, 2025
a8e680c
Update .vsconfig to fix reference to a removed package
budak7273 Sep 30, 2025
05ce51f
Move VS popup info into headings. Add "Unreal Engine Integration Conf…
budak7273 Sep 30, 2025
5ce3f02
Merge remote-tracking branch 'origin/Dev' into pr/Rovetown/400
budak7273 Sep 30, 2025
30c639f
Edit out dead space in screenshots
budak7273 Sep 30, 2025
9cea9d0
Add unused ConfigureTargetDependencies screenshot
budak7273 Sep 30, 2025
2979d78
Merge pull request #400 from Rovetown/localisation-update-clean
budak7273 Sep 30, 2025
d9b84d9
Update DedicatedServerSetup.adoc with hosting details
nunopaiva1 Oct 2, 2025
ef08251
Remove Shockbyte from Unsupported Hosts (#405)
budak7273 Oct 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ jobs:
BUILD=build:ci

notify:
name: Notify
name: Build Failure Notifications
runs-on: ubuntu-latest
needs:
- build
Expand Down
6 changes: 5 additions & 1 deletion antora.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,8 @@ asciidoc:
# https://github.com/asciidoctor/asciidoctor/blob/917d3800a08a8f283a8d05beb08bb75af1673de5/lib/asciidoctor.rb#L391
attributes:
# Uses zero-width joiner (U+200D) to avoid being split across lines
cpp: C‍+‍+
cpp: C‍+‍+
# Use backslash without it escaping things in other situations
literal-backslash: \
# To keep paths from breaking across lines
NoBreakBackslash: ‍\‍
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.Graphics.Tools",
"Microsoft.VisualStudio.Component.VC.DiagnosticTools",
"Microsoft.VisualStudio.Component.Windows11SDK.22000",
"Microsoft.VisualStudio.Component.Windows11SDK.26100",
"Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites",
"Microsoft.VisualStudio.Component.DotNetModelBuilder",
"Microsoft.ComponentGroup.Blend",
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified modules/ROOT/images/L10n/AddNewCulture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified modules/ROOT/images/L10n/CompileTranslations.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified modules/ROOT/images/L10n/ConfigureTargetDependencies.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified modules/ROOT/images/L10n/EditTranslationsForCulture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified modules/ROOT/images/L10n/EditTranslationsInEditor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified modules/ROOT/images/L10n/GatherText.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified modules/ROOT/images/L10n/PickPlugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified modules/ROOT/images/L10n/RenameTarget.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified modules/ROOT/images/L10n/ViewTarget.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file removed modules/ROOT/images/UnrealEditor/MainMenuBar.jpg
Diff not rendered.
Binary file removed modules/ROOT/images/UnrealEditor/MainModes.jpg
Diff not rendered.
Binary file removed modules/ROOT/images/UnrealEditor/MainOutliner.jpg
Diff not rendered.
Binary file removed modules/ROOT/images/UnrealEditor/MainToolBar.jpg
Diff not rendered.
Binary file removed modules/ROOT/images/UnrealEditor/MainViewport.jpg
Diff not rendered.
Binary file removed modules/ROOT/images/UnrealEditor/TabBar.jpg
Diff not rendered.
10 changes: 6 additions & 4 deletions modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,11 @@
*** xref:Development/Modeling/MainMaterials.adoc[Main Materials]
*** xref:Development/Modeling/style.adoc[Style Guide]
** xref:Development/UnrealEngine/index.adoc[Unreal Engine]
*** xref:Development/UnrealEngine/Code.adoc[Code]
*** xref:Development/UnrealEngine/BluePrints.adoc[Blueprints]
*** xref:Development/UnrealEngine/Editor/index.adoc[Unreal Editor]
**** xref:Development/UnrealEngine/Editor/MainWindow.adoc[Main Window]
*** xref:Development/UnrealEngine/UnrealLearningResources.adoc[Unreal Learning Resources]
*** xref:Development/UnrealEngine/CoreRedirect.adoc[Core Redirects]
*** xref:Development/UnrealEngine/StringClasses.adoc[String Classes]
*** xref:Development/UnrealEngine/Code.adoc[Code]
*** xref:Development/UnrealEngine/BluePrints.adoc[Blueprints]
** xref:Development/Satisfactory/index.adoc[Satisfactory]
*** xref:Development/Satisfactory/Multiplayer.adoc[Multiplayer]
*** Game Features
Expand Down Expand Up @@ -128,6 +127,7 @@
** xref:Development/ReuseGameFiles.adoc[Reusing Base Game Files]
** xref:Development/ExtractGameFiles.adoc[Extracting Game Files]
** xref:Development/TestingResources.adoc[Testing/Multiplayer Testing]
// TODO ** xref:Development/OptionalModDependencies.adoc[Optional Mod Dependencies]
** xref:Development/OpenSourceExamples.adoc[Learning from Open Source Mods]
** xref:UploadToSMR.adoc[Uploading your Mod to SMR]

Expand All @@ -144,6 +144,8 @@
// * Translating Mods
// ** xref:Translation/GetStartedTranslating.adoc[Get Started Translating]
// ** xref:Translation/UsingTolgee.adoc[Using Tolgee]
// ** For Users
// *** TODO
// ** For Mod Developers
// *** xref:Translation/Developers/RequestTolgeeProject.adoc[Using Tolgee]
// *** xref:Development/Localization.adoc[Localizing Mods]
Expand Down
58 changes: 32 additions & 26 deletions modules/ROOT/pages/CommunityResources/AssetToolkit.adoc
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
= Unreal Engine Asset Toolkit

[WARNING]
====
The Asset Toolkit has not yet been fully tested on UE5 or the 1.0 release.
====

[NOTE]
====
This article is a work-in-progress. Please contact us on the Discord if you run into any issues here.
====

Community member Archengius has created a set of two plugins
useful for dumping content from a compiled Unreal Engine game and importing it into the Unreal Engine Editor.

Expand All @@ -26,10 +16,10 @@ making working with base-game content much more convenient.
[WARNING]
====
If you decide to generate a complete copy of the project,
make sure that your Content folder is not publicly available on Github or similar.
make sure that your Content folder is not publicly available on GitHub or similar.

If you only have a plugin-level repo, this is not a problem,
but if you have a project-level repo as well, you should watch out for this.
If you only have a plugin-level repo (root folder has a `.uplugin` file), this is not a problem,
but if you have a project-level repo as well (root folder has a `.uproject` file), you should watch out for this.

Because the assets are already tracked (shipped with the starter project),
simply adding them to your `.gitignore` will not ensure they are excluded.
Expand All @@ -44,16 +34,19 @@ for more info.
The Asset Toolkit repository consists of two plugins,
a dumper, to be installed in the game,
and an asset generator, to be installed in the editor.
Both are contained in the https://github.com/mircearoata/UEAssetToolkit/tree/dev[Asset Toolkit repository].
Both are contained in the https://github.com/satisfactorymodding/UEAssetToolkit/tree/dev[Asset Toolkit repository].
Download a zip of the repository and extract somewhere,
or clone it if desired.
Regardless, make sure the copy you obtain is of the **`dev` branch** as it will have the latest fixes.

[NOTE]
====
Note that the link above points to the *dev branch of Mircea's fork* of the https://github.com/Archengius/UEAssetToolkit[original project].
Note that the link above points to the *dev branch of the Satisfactory Modding Org's fork* of the https://github.com/Archengius/UEAssetToolkit[original project].
Said fork is the one that the https://github.com/satisfactorymodding/UnrealProjectUpdater/blob/master/.github/workflows/updateSML.yml#L176[CI scripts]
use to semi-automatically generate the starter project, and as such is usually kept more up to date.

Community changes to the Asset Toolkit are often slow to merge,
so it's best to ask on the Discord to see if there is a more recent fork or branch available.
====

Once you have downloaded the files,
Expand Down Expand Up @@ -90,7 +83,8 @@ It takes files produced by the dumper and generates the uasset files your editor
#include "MaterialEditingLibrary.h"
----
- If you get errors about unresolved external modules, try deleting the project's `Intermediates` folder, regenerating project files, and building again.
- Ask for help on the discord.
- Ask on the Discord if there is a community fork that is more up to date.
- Ask for help on the Discord.

=== Packaging the Asset Dumper as a Mod

Expand All @@ -110,22 +104,29 @@ If you don't, you could get ambiguous errors while dumping and generating.
====

A user interface exists for using the dumper,
but there are some crashing problems with it,
but there are many crash problems with it,
so these directions will cover using the command line version instead.

To dump assets, navigate to your game install directory in Powershell.
For example, `C:\EpicGamesGames\SatisfactoryEarlyAccess`
First, navigate to your game install directory in Powershell.
Open Powershell and use the `cd` command to change directories.
For example, if your game is installed at `C:{NoBreakBackslash}EpicGamesGames{NoBreakBackslash}SatisfactoryEarlyAccess`,
you would run:

`cd C:\EpicGamesGames\SatisfactoryEarlyAccess`

Next, from that directory, edit the following Powershell command to point to your game executable, then run it:

`FactoryGameEGS.exe -EpicPortal -NoSteamClient -DumpAllGameAssets -RootAssetPath=/Game -ExcludePackagePaths=/Game/WwiseAudio -ExcludePackageNames=/Game/Geometry/Meshes/1M_Cube_Chamfer -PackagesPerTick=32 -ExitOnFinish -log -NewConsole`
// cspell:ignore norhithread
// Prevent break on dash and its argument
`FactoryGameEGS.exe -EpicPortal -NoSteamClient -DumpAllGameAssets -{wj}RootAssetPath=/Game -ExcludePackagePaths=/Game/WwiseAudio -ExcludePackageNames=/Game/Geometry/Meshes/1M_Cube_Chamfer -PackagesPerTick=32 -ExitOnFinish -log -NewConsole -nullrhi -norhithread`

[WARNING]
====
The above command assumes you are using an Epic Games copy `FactoryGameEGS`.
If you are using a Steam copy of the game:

1. Use the xref:Development/TestingResources.adoc#LaunchScript[Launch Script] at least once before running the command to create the files required for the Steam game to launch correctly from the command line.
1. Use the xref:Development/TestingResources.adoc#LaunchScript[Launch Script] at least once before running the command
to create the files required for the Steam game to launch correctly from the command line.
2. Adjust the command to use `FactoryGameSteam` instead of `FactoryGameEGS`.
====

Expand All @@ -142,11 +143,13 @@ which will provide info regarding the dumping process (since `-log -NewConsole`
You can safely close the Powershell window once you see the console log window,
although you may wish to keep it open to restart it if it crashes.

Normally the dumper would be run with the `-nullrhi` flag to avoid wasting processing power on rendering the game's menu
but this argument seems to be broken as of Satisfactory 1.0,
so it has been excluded from the command.
The game window will appear and will be exceedingly low FPS and behind in playing sound effects.
Keep it minimized as the asset dumper operates and focus on the console window.
The game user interface will never open since we used the `-nullrhi -norhithread` arguments,
leaving only the console window visible.
// Normally the dumper would be run with the `-nullrhi` flag to avoid wasting processing power on rendering the game's menu
// but this argument seems to be broken as of Satisfactory 1.0,
// so it has been excluded from the command.
// The game window will appear and will be exceedingly low FPS and behind in playing sound effects.
// Keep it minimized as the asset dumper operates and focus on the console window.

// The game window itself will never open since the `-nullrhi` argument was used.
After the game's loading process, you should see a sequence of `LogAssetDumper` messages.
Expand Down Expand Up @@ -346,6 +349,9 @@ because they are stored raw in the pak file (not the utoc/ucas) and the automati

[TIP]
====
There may be some files in the CustomAssets list that you don't have in your backup copy of the Starter Project.
They were probably removed from the game and the CustomAssets list has not been updated to reflect this.

Check the https://github.com/satisfactorymodding/UnrealProjectUpdater/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen[open pull requests]
for the UnrealProjectUpdater repository to see if there are any additional CustomAssets that haven't been merged into the project's list yet.
====
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-d

The custom engine version used in the Satisfactory Modding community has been modified to allow Unreal Engine's Git integration to recognize and work with multiple git repos in a single project.

To enable, navigate to "Tools" > (Source Control heading) > "Connect to Source Control...".
To enable, navigate to "Tools" > (Revision Control heading) > "Connect to Revision Control...".
Select Git from the dropdown, then click "Accept Settings".

You can now right click on assets in the Content Browser to view their change history, diff assets, and more.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,15 @@ You've reached the end of the getting started guide - congratulations!
If you're still looking to learn about a specific concept,
check and see if we have a page on it in the other sections of the documentation.

Once you have a mod you're ready to upload, follow the
xref:Development/BeginnersGuide/ReleaseMod.adoc[Releasing Your Mod]
directions to export and upload it for other people to use.

You can also ask questions on the https://discord.ficsit.app[Discord Server].

You may also be interested in {cpp} modding,
which allows modifying and creating much more advanced game behaviors.
More info can be found on that xref:Development/Cpp/index.adoc[here].

Consider checking out what mods on ficsit.app have their source code available and
xref:Development/BeginnersGuide/ImportingAnotherMod.adoc[checking them out in your editor]
to learn from their code.
A curated list of open source examples can be found xref:Development/OpenSourceExamples.adoc[here].
* Once you have a mod you're ready to upload, follow the
xref:Development/BeginnersGuide/ReleaseMod.adoc[Releasing Your Mod]
directions to export and upload it for other people to use.
* You can also ask questions on the https://discord.ficsit.app[Discord Server].
* You may also be interested in {cpp} modding,
which allows modifying and creating much more advanced game behaviors.
More info can be found on that xref:Development/Cpp/index.adoc[here].
* Consider checking out what mods on ficsit.app have their source code available and
xref:Development/BeginnersGuide/ImportingAnotherMod.adoc[checking them out in your editor]
to learn from their code.
A curated list of open source examples can be found xref:Development/OpenSourceExamples.adoc[here].
* Check out resources linked on the xref:Development/UnrealEngine/UnrealLearningResources.adoc[Unreal Learning Resources page]
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,19 @@ You can learn more about how holograms work on the xref:Development/Satisfactory
====

As you can see in the `Components` pane in the top left, the actor already contains a few components.
But not any visuals, so, now add a new FGColoredInstancedMeshProxy component in the center of the viewport.
The build gun uses the origin when targeting the mesh to be built or snapped.
You can use link:{attachmentsdir}/BeginnersGuide/simpleMod/Mesh_DocBuild.fbx[this example Mesh], the Plantpot of Knowledge, for your buildable.
These are inherited from the parent class `FGBuildable`.

Note that the building does not currently have any visuals.
To fix this, add a new `FGColoredInstancedMeshProxy` component in the center of the viewport.
This component is an optimized version of the base Unreal static mesh component that supports Satisfactory's Customizer painting system.
To tell it what mesh to display, assign one in the "Static Mesh" field of the component's Details panel.
Import link:{attachmentsdir}/BeginnersGuide/simpleMod/Mesh_DocBuild.fbx[this example Mesh], the Plantpot of Knowledge,
which we'll use for this building.
Use the default import settings when prompted.

This Actor is also where you can define the snapping area and the clearance area, but we won't do that for now. Look to other machines and examples for inspiration as there are several relevant settings to make those behaviors work correctly.
The build gun uses the origin when targeting the mesh to be built or snapped.
This Actor is also where you can define the snapping area and the clearance area (mClearanceData), but we won't do that for now.
Look to other machines and examples for inspiration as there are several relevant settings to make those behaviors work correctly.

== Make it Paintable

Expand Down Expand Up @@ -116,7 +124,8 @@ That's it! You don't need to register anything else. When the recipe gets loaded

== Trying it Out

If you load up the game now, you should be able to build the Doc Build in game, but it is purely an object that sits there and exists. You should be able to paint it with the paint tool, and it should look roughly like it does in the icon image.
If you load up the game now, you should be able to build the Doc Build in game.
You should be able to paint it with the paint tool, and it should look roughly like it does in the icon image.

== Troubleshooting

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,25 +195,28 @@ By giving it a name that includes the mod reference,
it becomes easier to identify in crash logs
and helps you tell the modules of different mods apart in the editor.

You will be able to register recipes and other content using this module.

Next, double click on the module to open up its blueprint settings.

To make sure that SML automatically detects and loads our module,
we must be sure to mark that it is the Root Module via the `Root Module` details field.
mark it as the Root Module via the `Root Module` checkbox in the Details pane.

image:BeginnersGuide/simpleMod/MakeRootModule.png[Make Root Module]

[WARNING]
====
Make sure that you mark your new Module as the Root via the blueprint details field!
There can be one Root module per type (Instance, GameWorld, MenuWorld).
If you don't do this, the module will be silently ignored,
and the content you create later won't be loaded.
This mistake won't be apparent until you have some content to test later.
Make sure to mark your new Module as the Root Module!
Most content not referenced by a module (or the Content Registration API)
will be inaccessible and silently ignored by the game.

To assist with catching this mistake,
the editor performs data validation when you save Mod Modules.
If you exceed more than one Root module per type (Instance, GameWorld, MenuWorld),
or have modules of a type but none are marked as Root,
the module will **fail data validation** and cause an error in the editor
informing you of what you need to change.
====

If you'd like to learn more about root modules, you can read about it on the
If you'd like to learn more about root modules, you can read about them on the
xref:Development/ModLoader/ModModules.adoc[Mod Modules] system page.

== Compile and Save
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
Let's create a simple interaction GUI for our xref:Development/BeginnersGuide/SimpleMod/machines/SimpleMachine.adoc[Item Counter Machine].
We'll use it to read the current data and to reset the counters.

[WARNING]
====
This tutorial assumes you have a basic understanding of Unreal Engine's Blueprint editor interface and Blueprint scripting system.

If you are unfamiliar with this system, please check out the resources linked in the
xref:Development/UnrealEngine/UnrealLearningResources.adoc#UnrealBlueprint[Unreal Learning Resources section: "Blueprint Scripting"]
====

[TIP]
=====
A completed version of this interaction GUI is included in the ExampleMod in the starter project.
Expand All @@ -26,7 +34,7 @@ This guide focuses on the Satisfactory Modding specific portions of creating a w

Check out the following documentation from Unreal as a starting point for learning how to design widgets.

* https://dev.epicgames.com/documentation/en-us/unreal-engine/umg-ui-designer-quick-start-guide-in-unreal-engine#2-displayinghealth,energy&ammo[UMG UI Designer Quick Start Guide: 2 - Displaying Health, Energy & Ammo]
* https://dev.epicgames.com/documentation/en-us/unreal-engine/umg-ui-designer-quick-start-guide-in-unreal-engine?application_version=5.3#2-displayinghealth,energy&ammo[UMG UI Designer Quick Start Guide: 2 - Displaying Health, Energy & Ammo]
* https://dev.epicgames.com/documentation/en-us/unreal-engine/umg-editor-reference-for-unreal-engine?application_version=5.3[UMG Editor Reference]

== Retrieving Information from our Machine
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

In this chapter we'll create a machine which simply counts the items and types of items that pass through it, outputting them again on the other side.

[WARNING]
====
This tutorial assumes you have a basic understanding of Unreal Engine's Blueprint editor interface and Blueprint scripting system.

If you are unfamiliar with this system, please check out the resources linked in the
xref:Development/UnrealEngine/UnrealLearningResources.adoc#UnrealBlueprint[Unreal Learning Resources section: "Blueprint Scripting"]
====

[TIP]
=====
A completed version of this machine is included in the ExampleMod in the starter project.
Expand Down Expand Up @@ -53,9 +61,8 @@ There is not that much we need to do here.
The only thing we need to do is to set the PowerInfo on the PowerConnection and configure the target consumption of the `FGPowerInfo` to something like 1.0.
This controls how much power in MW the building will use to operate.

image:BeginnersGuide/simpleMod/machines/SimpleMachine_Init.jpg[image]

(Logic in the Event Graph)
.Logic in the Event Graph
image::BeginnersGuide/simpleMod/machines/SimpleMachine_Init.jpg[image]

== Grab Logic

Expand Down
Loading