diff --git a/cspell.json b/cspell.json index b0f722d8..15e5d9b9 100644 --- a/cspell.json +++ b/cspell.json @@ -29,6 +29,7 @@ "crowdsource", "crowdsourcing", "customizer", + "CVAR", "Deantendo", "devcontainer", "Digby", @@ -40,6 +41,7 @@ "FACTORYGAME", "favorited", "Feyko", + "FFGCondReplicatedProperty", "fgcheck", "fgrecipe", "FGUnlock", @@ -48,7 +50,6 @@ "FORCEINLINE", "Forsythe", "furtue", - "FFGCondReplicatedProperty", "Headlift", "HKEY", "hoverpack", @@ -88,6 +89,7 @@ "Quixel", "redirectors", "Robb", + "RTPC", "SCBP", "Schem", "SCIM", @@ -144,4 +146,4 @@ "destory", "conveneint" ] -} \ No newline at end of file +} diff --git a/modules/ROOT/images/Development/UpdatingGuides/SpawnLightweightBuildable.png b/modules/ROOT/images/Development/UpdatingGuides/SpawnLightweightBuildable.png new file mode 100644 index 00000000..2fee207b Binary files /dev/null and b/modules/ROOT/images/Development/UpdatingGuides/SpawnLightweightBuildable.png differ diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 4e7e45d1..8204d2f1 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -1,7 +1,6 @@ * xref:index.adoc[Introduction] * xref:faq.adoc[FAQ - Frequently Asked Questions] * xref:SMLChatCommands.adoc[Commands] -* xref:ManualInstallDirections.adoc[Manual Installation] * Playing with Mods ** xref:ForUsers/Welcome.adoc[Welcome to the Community] @@ -10,6 +9,7 @@ ** xref:ForUsers/Tags.adoc[Tags and Tag Search] ** xref:ForUsers/DedicatedServerSetup.adoc[Installing Mods on Dedicated Servers] ** xref:ForUsers/CoreRedirectMigration.adoc[Migrating Modded Content with Core Redirects] + ** xref:ManualInstallDirections.adoc[Manual Installation] * xref:Development/index.adoc[Development] ** xref:Development/UpdatingFromSml37.adoc[Updating from SML 3.7.0] @@ -72,6 +72,7 @@ **** xref:Development/Satisfactory/AdaMessages.adoc[ADA Messages] **** xref:Development/Satisfactory/CheatBoard.adoc[Cheat Board] *** Game Systems + **** xref:Development/Satisfactory/Audio.adoc[Audio] **** xref:Development/Satisfactory/PowerNetwork.adoc[Power Network] **** xref:Development/Satisfactory/BuildableHolograms.adoc[Buildable Holograms] **** xref:Development/Satisfactory/CustomLevels.adoc[Custom Levels] diff --git a/modules/ROOT/pages/CommunityResources/AssetToolkit.adoc b/modules/ROOT/pages/CommunityResources/AssetToolkit.adoc index 071f9273..7d302460 100644 --- a/modules/ROOT/pages/CommunityResources/AssetToolkit.adoc +++ b/modules/ROOT/pages/CommunityResources/AssetToolkit.adoc @@ -2,7 +2,7 @@ [WARNING] ==== -The Asset Toolkit has not yet been fully tested on UE5. +The Asset Toolkit has not yet been fully tested on UE5 or the 1.0 release. ==== [NOTE] @@ -52,7 +52,7 @@ Regardless, make sure the copy you obtain is of the `dev` branch. [NOTE] ==== Note that the link above points to the *dev branch of Mircea's fork* of the https://github.com/Archengius/UEAssetToolkit[original project]. -Said fork is the one that the https://github.com/mircearoata/satisfactory-modding-actions/blob/master/.github/workflows/updateSML.yml#L178[CI scripts] +Said fork is the one that the https://github.com/satisfactorymodding/UnrealProjectUpdater/blob/master/.github/workflows/updateSML.yml#L178[CI scripts] use to semi-automatically generate the starter project, and as such is usually kept more up to date. ==== @@ -67,7 +67,7 @@ UE will still be able to discover them. After the plugins have been moved into your modding project, re-xref:Development/BeginnersGuide/project_setup.adoc#_generate_visual_studio_files[Generate Visual Studio project files] -and build for Development Editor and Shipping. +and build for Development Editor. While you wait for it to compile, here's some info about the roles of each plugin. @@ -98,6 +98,8 @@ To install the Asset Dumper in your copy of the game, build it with Alpakit like you would any other mod. Be sure you have "Copy Mods to Game" enabled and the "Game Path" set correctly. +Make sure to not have any server targets enabled; the asset toolkit does not work on dedicated servers. + == Dumping Game Assets [WARNING] @@ -151,7 +153,7 @@ inside your game install directory. ==== Asset dumping is also used to create the stater project stubs when the game updates. If you're interested in how this works, check out the -https://github.com/mircearoata/satisfactory-modding-actions/blob/master/.github/workflows/updateSML.yml#L209[CI scripts], +https://github.com/satisfactorymodding/UnrealProjectUpdater/blob/master/.github/workflows/updateSML.yml#L209[CI scripts], or contact us on the discord for more info. ==== @@ -232,10 +234,10 @@ function CleanupTempFiles { # Clean up the temp files, in case the script was exited or crashed earlier for some reason CleanupTempFiles -# Force generated package names from https://github.com/mircearoata/satisfactory-modding-actions/blob/master/ForceGeneratePackages.txt +# Force generated package names from https://github.com/satisfactorymodding/UnrealProjectUpdater/blob/master/ForceGeneratePackages.txt Write-Output "/Game/FactoryGame/Buildable/-Shared/Widgets/Widget_Output_Slot" >> $ForceGenerateFile -# Skip save package names from https://github.com/mircearoata/satisfactory-modding-actions/blob/master/SkipSavePackages.txt +# Skip save package names from https://github.com/satisfactorymodding/UnrealProjectUpdater/blob/master/SkipSavePackages.txt Write-Output "/Game/FactoryGame/Interface/UI/BPI_ShoppingList" >> $SkipSaveFile Write-Output "/Game/FactoryGame/Unlocks/BPI_UnlockableInterface" >> $SkipSaveFile Write-Output "/Game/FactoryGame/Interface/UI/InGame/Graph/BPW_Graph" >> $SkipSaveFile @@ -312,7 +314,7 @@ you'll need to grab multiple files from your backup copy of the starter project' and bring some in to replace the ones in your current copy. The list of files to move is -https://github.com/mircearoata/satisfactory-modding-actions/blob/master/CustomAssets.txt[here], +https://github.com/satisfactorymodding/UnrealProjectUpdater/blob/master/CustomAssets.txt[here], except skip any texture assets (usually those starting with `TX_`) mentioned in the list, because the generator's copy of textures is more accurate. diff --git a/modules/ROOT/pages/Development/BeginnersGuide/StarterProjectStructure.adoc b/modules/ROOT/pages/Development/BeginnersGuide/StarterProjectStructure.adoc index 41d51007..b1f1ce2d 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/StarterProjectStructure.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/StarterProjectStructure.adoc @@ -107,6 +107,10 @@ either as code examples for you to look at, or because they are required to get They appear in the `All` > `Plugins` section of the Content Browser (for those that contain assets) and are located in the `Mods/` folder on disk. Later on, your own mods' folders will appear in this section as well. +You might need to click on `View Options` -> `Show Plugin Content` +in a Content Browser to see the `Plugins` section in the Unreal Editor. +image:BeginnersGuide/simpleMod/ShowPluginContentInViewer.png[Show Plugin Content in Viewer] + * xref:Development/ModLoader/AccessTransformers.adoc[Access Transformers] ** Editor-only mod to enable other mods to access extra information without modifying the auto-generated C++ stubs. * Alpakit diff --git a/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc b/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc index 48a39e03..450d6469 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/dependencies.adoc @@ -68,7 +68,7 @@ Next, press `Review details` and continue with the installation. === Option 2: Manually Select Components From the "Workloads" tab, select: -` + - `Desktop & Mobile` > `Desktop development with {cpp}` - `Gaming` > `Game development with {cpp}`. @@ -288,21 +288,27 @@ or asking for help on the Discord. Once presented with options on what to install, select: +// Inline HTML to make checkmarks green +// https://docs.asciidoctor.org/asciidoc/latest/pass/pass-block/ +// https://docs.asciidoctor.org/asciidoc/latest/pass/pass-macro/ +[pass] + + * _Packages_ -** ✔ Authoring -** ✔ SDK (C++) +** pass:[✔] Authoring +** pass:[✔] SDK (C++) * _Deployment Platforms_ -** ✔ Linux +** pass:[✔] Linux ** _Microsoft_ *** _Windows_ -**** ✔ Visual Studio 2019 -**** ✔ Visual Studio 2022 +**** pass:[✔] Visual Studio 2019 +**** pass:[✔] Visual Studio 2022 If anything is selected by default, do not uncheck them. They are required for Visual Studio to work. Click `Next` (you may need to scroll down to see the button). You don't need to add any plugins, -so press `Deselect All` in the top right then `Install` in the bottom left to begin the installation process. +so press `Select None` in the top right then `Install` in the bottom left to begin the installation process. Accept the terms and conditions prompts that appear along the way. == Satisfactory Mod Manager diff --git a/modules/ROOT/pages/Development/BeginnersGuide/project_setup.adoc b/modules/ROOT/pages/Development/BeginnersGuide/project_setup.adoc index f5254838..7c822bad 100644 --- a/modules/ROOT/pages/Development/BeginnersGuide/project_setup.adoc +++ b/modules/ROOT/pages/Development/BeginnersGuide/project_setup.adoc @@ -339,6 +339,15 @@ How to access the Content Browser, including adding multiple Content Browser pan - https://docs.unrealengine.com/5.3/en-US/content-browser-interface-in-unreal-engine/[Content Browser Interface] - How to use the various features offered by the Content Browser. +[NOTE] +==== +You may see error messages in the editor's Level `Viewport 1` tab such as +"LANDSCAPE: 64 ACTORS WITH PHYSICAL MATERIALS NEED TO BE REBUILT". + +It is usually safe to ignore errors in the Level Viewport tab +because errors displayed there are unrelated to typical mod content. +==== + == (Optional) Modify Editor Color Scheme The Unreal Engine 5 editor is very dark by default. diff --git a/modules/ROOT/pages/Development/Satisfactory/Audio.adoc b/modules/ROOT/pages/Development/Satisfactory/Audio.adoc new file mode 100644 index 00000000..39a5e47a --- /dev/null +++ b/modules/ROOT/pages/Development/Satisfactory/Audio.adoc @@ -0,0 +1,52 @@ += Audio + +[NOTE] +==== +This page is a work in progress. +==== + +== Wwise + +TODO + +Coffee Stain uses the Wwise audio system to play sounds in Satisfactory. + +At the time of writing it is very difficult for modders to interface with Wwise systems, +so you should use Unreal's built in sound system instead. + +The SML team is working on enabling modders to interface with Wwise. + +== ADA + +See the xref:Development/Satisfactory/AdaMessages.adoc[dedicated page on ADA Messages] for more information. + +== Volume Options + +To retrieve the user's volume options, use "Get FGGame User Settings" and "Get Float Option Value". + +To find out what CVARs to use in, +adjusting your own user setting for the value then checking your +xref:faq.adoc#Files_GameConfig[GameUserSettings.ini file] to see what they are saved as. + +As of the 1.0 release update, these are the CVARs for the main volume categories: + +// cspell:ignore Menu_Volume_Vehicules +``` +RTPC.Menu_Volume_Master +RTPC.Menu_Volume_Dialogue +RTPC.Menu_Volume_SoundEffects +RTPC.Menu_Volume_UI +RTPC.Music_Bus_Volume +RTPC.Menu_Volume_Ambience +RTPC.Consumables_Bus_Volume +RTPC.Menu_Volume_Creatures +RTPC.Menu_Volume_Equipment +RTPC.Menu_Volume_Factory +RTPC.Menu_Volume_Foley +RTPC.Menu_Volume_Vehicules +RTPC.Menu_Volume_Weapons +``` + +These values are on a scale of `0.0` (off) to `1.0` (full volume). +If multiple categories apply, multiply them together to reach the final volume value. +For example, the Chainsaw's volume is probably Master multiplied with Equipment multiplied with the chainsaw's specific category. diff --git a/modules/ROOT/pages/Development/TestingResources.adoc b/modules/ROOT/pages/Development/TestingResources.adoc index 968088e8..35fcc073 100644 --- a/modules/ROOT/pages/Development/TestingResources.adoc +++ b/modules/ROOT/pages/Development/TestingResources.adoc @@ -364,33 +364,48 @@ $Args2 = "-EpicPortal", "-NoSteamClient", '-Username="'+$Username2+'"', "-WinX=9 == Multiplayer Testing -[WARNING] +Locally testing multiplayer functionality requires one of the following approaches: + +[id="MultiplayerTesting_Launch2Copies"] +=== Approach A: Launch 2 game clients + +You can run two copies of the game client at once and join one from the other +using the game's host and play multiplayer system. +Normally the Steam and Epic Games launchers don't allow you to do this, +but the link:#LaunchScript[launch script] in the previous section can detach your game from the launcher so you can run two copies. +Note that doing so breaks "normal" multiplayer functionality and only allows using IP multiplayer sessions. + +[NOTE] ==== -Update 8 has recently changed how local multiplayer testing works. -This page has not yet been updated to reflect these changes. -You must load with the `-offline` flag and use a Map Travel URL with the `?listen` argument to be able to connect. -For example, `open Persistent_Level?loadgame=NameOfYourSaveGame?listen`. -Remember that Session Settings are stored in the Map Travel URL as well -so the defaults will be used if you don't specify them directly in the travel URL here. - -Consider locally hosting your own dedicated server for multiplayer testing instead. +If you own the game on both Epic and Steam you can join one client "normally" from the other. +Note that this requires you to compile your mod for both the Epic and Steam targets which can slow down development. ==== -Locally testing multiplayer functionality requires running two copies of the game at once. -Normally the Steam and Epic Games client don't allow you to do this, -but the link:#LaunchScript[launch script] in the previous section will allow you to do so. +To do this: -=== Instructions +1. Run the link:#LaunchScript[launch script] to open 2 copies of the game client. +2. On the copy you designate as the host, select a save file to load. +Before loading it, click the "Load Settings" button and change the "Session Type" to `IP`. +3. On the copy you designate as the client, open the "Join Game" menu and enter the ip `127.0.0.1`. +Alternatively, use the `open 127.0.0.1` xref:SMLChatCommands.adoc#ConsoleCommands[console command] from anywhere. -1. First, run the launch script with the `-multiplayer` flag to open two copies of the game. +[IMPORTANT] +==== +There is currently a bug in Satisfactory itself causing the host to crash when a client joins in this manner. +Until this is resolved, either use an Epic and Steam copy or Approach B. +==== + +[id="MultiplayerTesting_LocalDedicatedServer"] +=== Approach B: Launch Client and a Dedicated Server -2. Open up your save file in either copy of the game - this one will be the host, the other copy is the client. +You can run a dedicated server locally and connect to it with a game client. +This has the downside of needing to compile your mod for both the client and server targets every time you want to test, +which will slow down development. -3. Once you've loaded in, go to the client game instance and open the in-game console. -Learn how to do this -xref:SMLChatCommands.adoc#ConsoleCommands[here]. -Then type in `open 127.0.0.1` and hit enter. -The second instance will now connect to the game hosted by the first instance. +Dedicated servers will automatically load a save file on launch, +which may or may not speed up your testing process depending on what behaviors you are testing. + +To use this approach, check out the link:#TestingDedicatedServers[dedicated server section of this page]. [id="LoadCustomLevel"] == Load a Custom Level on Launch @@ -417,6 +432,8 @@ While you're at it, there are a few other flags you can use to customize the loa FG Map Options Switches from Archengius: +++