Skip to content

Commit

Permalink
Merge pull request #295 from satisfactorymodding/Dev
Browse files Browse the repository at this point in the history
Update with changes from Dev
  • Loading branch information
budak7273 authored May 8, 2024
2 parents a0b6839 + 39579c9 commit 2fac077
Show file tree
Hide file tree
Showing 19 changed files with 108 additions and 41 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Documentation for Satisfactory Mod Loader (SML) and Satisfactory modding.
Master branch is live on <https://docs.ficsit.app/>.
Please contact us on the
[Satisfactory Modding Discord Server](https://discord.gg/xkVJ73E)
[Satisfactory Modding Discord Server](https://discord.ficsit.app)
with questions and suggestions, or contribute via PRs (see below).

We attempt to use [Semantic Line Break format](https://sembr.org/) in the source files,
Expand Down
3 changes: 2 additions & 1 deletion cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@
"reccomend",
"outselves",
"favortied",
"destory"
"destory",
"conveneint"
]
}
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.
2 changes: 1 addition & 1 deletion modules/ROOT/pages/CommunityModLists/QOL.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Use the Mod Tags system to xref:ForUsers/Tags.adoc[filter for mods tagged with #

Mods in this list are generally considered by the community to add convenient, quality-of-life-improving features to Satisfactory without significantly affecting the game's balance or progression.

If you have any suggestions for this list, feel free to discuss them on the https://discord.gg/xkVJ73E[Discord Server], or add them yourself via the 'Edit this Page' button in the top right.
If you have any suggestions for this list, feel free to discuss them on the https://discord.ficsit.app[Discord Server], or add them yourself via the 'Edit this Page' button in the top right.

== Mod List

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ 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.gg/xkVJ73E[Discord Server].
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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ You forgot to assign a hologram class in the FGBuildable - the default is `None`

=== Something Else

If something went wrong, feel free to contact us on the https://discord.gg/xkVJ73E[Discord] for help.
If something went wrong, feel free to contact us on the https://discord.ficsit.app[Discord] for help.

== Next Steps

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ types of items that pass through it
Knowledge about 3D modeling is very helpful if you want to add new items, buildings, enemies, etc. to the game.
If you have an idea for such a mod but aren't experienced with modeling,
consider posting it in the `#ideas-discussion` channel on the
https://discord.gg/xkVJ73E[Discord server].
https://discord.ficsit.app[Discord server].
You may find an artist willing to work with you on a project.
You could also learn how to model in a program like Blender, Meshmixer, Maya, etc.
====
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ And you're done! Go ahead and Alpakit your plugin, then check out your fancy new
You can find info on how to use Alpakit back on the
xref:Development/BeginnersGuide/project_setup.adoc#_setting_up_alpakit[Project Setup] page.

If something went wrong, feel free to contact us on the https://discord.gg/xkVJ73E[Discord] for help.
If something went wrong, feel free to contact us on the https://discord.ficsit.app[Discord] for help.

== Next Steps

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ Go back and check the recipe's properties to see if they match what was describe

=== Something Else

If something went wrong, feel free to contact us on the https://discord.gg/xkVJ73E[Discord] for help.
If something went wrong, feel free to contact us on the https://discord.ficsit.app[Discord] for help.
Even if you fix it yourself, please bring it up on the Discord
so we can update the docs with your findings to help other people that might have a similar issue!

Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/Development/BeginnersGuide/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Use this to keep track of how far though a page you are or jump between sections
== Join the Discord

Making mods for Satisfaction can get complex and confusing at times, but we're here to help.
Please consider joining our community https://discord.gg/xkVJ73E[Discord Server]
Please consider joining our community https://discord.ficsit.app[Discord Server]
and pick up the `Aspiring Modder` role in the `#rules` channel to get access to dedicated help channels for mod makers.

== Contributing to the Docs
Expand All @@ -74,7 +74,7 @@ These documentation pages are all written by community members, and are publicly
You can see the source code by clicking 'Edit this Page' in the top right corner of any page.

Please do not hesitate to contact us with corrections, suggestions, or questions.
The best way to reach the team is our https://discord.gg/xkVJ73E[Discord Server].
The best way to reach the team is our https://discord.ficsit.app[Discord Server].

You can find more info on contributing to the docs
https://github.com/satisfactorymodding/Documentation#readme[here].
Expand Down
24 changes: 9 additions & 15 deletions modules/ROOT/pages/Development/Cpp/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -89,24 +89,18 @@ If you want to learn more about that, there are plenty of good resources availab
In order to write {cpp} mods, you will require both general {cpp} knowledge, and knowledge about how {cpp} applies to Unreal Engine systems.
You can find a quick guide to the Unreal portion in the https://docs.unrealengine.com/en-US/Programming/Introduction/index.html[Unreal Documentation].

== Warning
== Modding Capabilities

Due to technical limitations, there are some functions/features of Satisfactory and Unreal Engine that
we are not able to access or need to use a work around to call correctly. This is the world we live in right now, and we can't do much about it.
As Satisfactory is packaged as a modular build and the developers distribute the headers and `pdb`s for us,
and mods are loaded as Unreal plugins,
there is very little of the game that {cpp} mods _can't_ modify.
It usually just comes down to how much patience you have to figure out how to do it.

If you experience a crash or some undefined behavior while using a function from Unreal Engine or Satisfactory,
you should read the javadoc comment that has been added to the function. Sometimes the comment will tell you that it doesn't work
and suggest you use the workaround written in the comment.
you should read the doc comment that has been added to the function.
Sometimes the comment will tell you that it doesn't work
and suggest you use the workaround written in the comment,
or it may contain valuable context about how the function can be used.

If it still doesn't work, and you are **absolutely sure** that you are using it correctly,
contact the SML developers on the Discord for further advice.

If your mod requires calling a Satisfactory function that is not compiled into their binaries,
f.e. when the function is marked as `inline`, then it will create a log entry starting with
`[FATAL] Executable missing symbol with mangled name`.
This will you also tell you the mangled symbol name it was not able to find.
You can still run the game, but when your mod tries to call this function, the game will crash.
The crash may not cause the crash reporter to open, which is a signal that you should then checkout
FactoryGame.log since it will tell you which symbol got called.
This information will be very useful in fixing the bug, so keep it on hand if you plan to ask for help with your mod on the Discord.

3 changes: 2 additions & 1 deletion modules/ROOT/pages/Development/Modeling/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ Ambient Occlusion Bake::
https://web.archive.org/web/20231202113004/https://www.katsbits.com/tutorials/blender/baking-ambient-occlusion.php[Tutorial Article]

== Help
Keep in mind these are common techniques and many more resources are available to learn from. Feel free to ask for help in the `+#help-making-mods+` channel on the https://discord.gg/xkVJ73E[Discord server] or in the https://forums.ficsit.app/[SMR Forums]

Keep in mind these are common techniques and many more resources are available to learn from.

Feel free to ask for help in the `#general-help` channel on the https://discord.ficsit.app[Discord server]
26 changes: 26 additions & 0 deletions modules/ROOT/pages/Development/OpenSourceExamples.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,29 @@ _Notable Mod Loader Features Used:_
** Tracking if the user has modified the config from the defaults
to know if future mod updates should automatically overwrite them with updated default data
** Programatically modifying config values and saving the changes

== Screw It

Meme mod, changes most things to be named and/or look like Screws.

_Source Code_: Linked on the https://ficsit.app/mod/ScrewIt[Mod Page]

_Mod Type_: Hybrid Blueprint/{cpp}

_Notable Techniques Used:_

* Using the Asset Registry to quickly discover subclasses (both vanilla and modded)
* Asynchronous asset loading to avoid stalling the game while waiting for disk I/O
* CDO edits in bulk (on the aforementioned loaded classes), implemented in {cpp}
* Hybrid Blueprint/{cpp} game instance module
** Root instance's final implementations is in Blueprint,
but it is backed by a custom {cpp} parent class to be
able to easily reference Blueprint-only assets

_Notable Satisfactory Features Used:_

* None

_Notable Mod Loader Features Used:_

* Access Transformers, to be able to change otherwise inaccessible member variables.
59 changes: 51 additions & 8 deletions modules/ROOT/pages/ForUsers/DedicatedServerSetup.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,19 @@ the Mod Manager and ficsit-cli _should_ be able to interact with them normally.

With this in mind, continue to the link:#GetModManager[next section].

[id="UnsupportedHosting"]
==== Unsupported Hosts

We do not currently maintain a list of server hosts that support modded servers.

The following 3rd party hosting services are known to **NOT support mods**,
regardless of what their websites and marketing pages claim:

- low.ms

If you believe a site is listed here in error,
contact us about it on the https://discord.ficsit.app[Discord].

[id="GetModManager"]
== Use a Mod Manager to Connect to the Server

Expand All @@ -64,7 +77,7 @@ You could also install ficsit-cli on the server and interact with its file syste

[IMPORTANT]
====
Since dedicated Server support is still a work in progress,
Since dedicated server support is still a work in progress,
there are TWO different versions of Satisfactory Mod Manager available!
- SMM2 is the one automatically downloaded when you visit https://smm.ficsit.app/. It doesn't support dedicated servers.
Expand Down Expand Up @@ -201,28 +214,39 @@ Remember, we can only provided limited support for third-party hosted servers
as we do not know or control their systems.
Contact your server host's support lines if you encounter problems.

Contact us on the https://discord.gg/xkVJ73E[Discord Server] if something is confusing or goes wrong.
Contact us on the https://discord.ficsit.app[Discord Server] if something is confusing or goes wrong.

[id="InstallingMods"]
== Installing Mods

Once you have set up the mod manager of choice you can start installing mods on the server.
Read the below warning, then check out the set of directions specific to the mod manager you chose.

[NOTE]
====
[id="CheckModDedicatedServerSupport"]
=== Checking if a Mod Supports Dedicated Servers

Not all mods are compatible with dedicated servers.
They must be specially compiled and packaged for the alternative format.
A greater percentage of mods will support servers once Satisfactory 1.0 launches since
all developers will be forced to recompile their mods for that anyways.

As dedicated server support is still a work in progress,
there is not currently a conveneint way to filter mods for dedicated server support on the ficsit.app website.
there is not currently a convenient way to filter mods for dedicated server support on the ficsit.app website.

When viewing the webpage for a mod, check the "Latest Version" section -
if you see a table with a "Server" column, and a checkmark is present on your server type,
the mod is compatible with dedicated servers.
If you see an X or the table is absent, the mod does not yet support dedicated servers.
If you see an X, or the table is absent, the mod does not yet support dedicated servers.

.Example Mod that Supports Dedicated Servers
image::DedicatedServers/ExampleSupportsDedicatedServers.png[Supported Example]
.Example Mod that Does NOT Support Dedicated Servers
image::DedicatedServers/ExampleDoesNotSupportDedicatedServers.png[No Support Example]

Satisfactory Mod Manager offers a "compatible" filtering mode which,
while managing a server install, causes only server-compatible mods to be displayed.

Ficsit-cli does not currently have a way to filter mods for dedicated server support.
====

[id="ServerClientConsistency"]
=== Important: Server-Client Mod Consistency
Expand All @@ -233,7 +257,7 @@ preventing you from connecting.

It is not feasible to export a profile created in SMM for a client to be used on a server
because there are some mods that only exist client or server side.
In the future, the ability to create and share "modpacks" will resolve this problem,
In the future, the ability to create and share "modpacks" will be introduced to resolve this problem,
as modpacks will be able to keep track of mods that may not apply for a game target.

In the mean time, we suggest using an installation of SMM or ficsit-cli on your client computer
Expand Down Expand Up @@ -266,6 +290,25 @@ Note that applying changes in ficsit-cli is a global action -
all installations the program is aware of will have any staged changes they may have applied in parallel.
This does _not_ mean that all installs must be on the same profile.

[id="JoiningModdedDedicatedServer"]
== Joining a Modded Dedicated Server

As described in the link:#ServerClientConsistency[Server-Client Mod Consistency] section,
client players must have the same mods installed as the server to be able to join.
In the case of a failed join due to a mod mismatch,
SML will attempt to provide a meaningful disconnect message, but this is not always possible.

If you're having trouble joining your server,
first verify that it is possible to connect to the server in its unmodified state
by removing all mods from the server and client.
Most connection issues people encounter also affect the unmodified server.
If that works, try adding mods back in small groups to see which one is causing the problem.

If you're still encountering problems,
join the https://discord.ficsit.app[Discord]
and upload logs from both your client and server in the `#help-using-mods` channel.

[id="ModdedServerConfiguration"]
== Configuring Mods on Servers

There is not currently an interface for adjusting
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/ForUsers/Welcome.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ If you have a question, there's a pretty good chance it has been answered on our
xref:faq.adoc[FAQ - Frequently Asked Questions] page.

If it's not answered there, or something is unclear, feel free to ask in our
https://discord.gg/xkVJ73E[Discord server].
https://discord.ficsit.app[Discord server].

== Installing the Mod Manager

Expand Down
8 changes: 5 additions & 3 deletions modules/ROOT/pages/faq.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Consider using your browser's Find on Page functionality (usually `Ctrl+F`)
to quickly search this page for key words in your question.

Is there a question you see asked a lot and would like to see it here?
Feel free to discuss them on the https://discord.gg/xkVJ73E[Discord Server],
Feel free to discuss them on the https://discord.ficsit.app[Discord Server],
or add them yourself via the 'Edit this Page' button in the top right.

[id="Installation"]
Expand Down Expand Up @@ -145,9 +145,11 @@ and we will investigate and update the info if necessary.

== Do mods work with dedicated servers?

In general, yes, but exact support will vary depending on the mod.
_Or: How do I tell if a mod works on Dedicated Servers?_

In general, mods do work on dedicated servers, but exact support will vary depending on the mod.
See xref:ForUsers/DedicatedServerSetup.adoc[Installing Mods on Dedicated Servers] for more details.
The xref:ForUsers/DedicatedServerSetup.adoc#InstallingMods[Installing Mods section]
The xref:ForUsers/DedicatedServerSetup.adoc#CheckModDedicatedServerSupport[Installing Mods section]
describes how to tell if an individual mod supports Dedicated Servers.

== Satisfactory Mod Manager is open, but I can't see it's window!
Expand Down
4 changes: 2 additions & 2 deletions modules/ROOT/pages/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ In this page, we will provide some surface level information for both mod users

[TIP]
====
We suggest you join our https://discord.gg/xkVJ73E[Discord Server]
We suggest you join our https://discord.ficsit.app[Discord Server]
to get support and chat with fellow mod users and developers!
====

Expand Down Expand Up @@ -62,7 +62,7 @@ or Lua xref:Development/BeginnersGuide/overwriting.adoc#_tweakit[(TweakIt)].
If you're looking to write your own mods, we suggest you start with
making blueprint mods first rather than C++ mods.
Check out the xref:Development/BeginnersGuide/index.adoc[Getting Started Guide]
and consider picking up the `Aspiring Modder` role in our https://discord.gg/xkVJ73E[Discord]'s `#rules` channel.
and consider picking up the `Aspiring Modder` role in our https://discord.ficsit.app[Discord]'s `#rules` channel.

If you're looking to make models, it's best to learn how to put a mod together first.
Once you've completed the `Buildable` step in `Beginners Guide`, then check out our xref:Development/Modeling/index.adoc[Modeling Guide].
Expand Down
2 changes: 1 addition & 1 deletion supplemental-ui/partials/header-content.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<div class="navbar-item has-dropdown is-hoverable">
<div class="navbar-link">Community</div>
<div class="navbar-dropdown is-right">
<a class="navbar-item" href="https://discord.gg/xkVJ73E">Discord</a>
<a class="navbar-item" href="https://discord.ficsit.app">Discord</a>
<a class="navbar-item" href="https://github.com/satisfactorymodding">GitHub</a>
<a class="navbar-item" href="https://forums.ficsit.app">Archived Forums</a>
</div>
Expand Down

0 comments on commit 2fac077

Please sign in to comment.