Uploading your mod to Satisfactory Mod Repository (ficsit.app)

Once you’ve made your amazing mod, Satisfactory Mod Repository is the best place to upload it if you want others to find and use your mod. Mods uploaded to SMR will automatically work with the Mod Manager. All mods available to SMR are checked for potential security concern, so having your mod on SMR means that users can trust that it is secure.

The process of uploading your mod is fairly straightforward. First, sign into SMR with an existing Github, Google, or Facebook account.

Creating Your Mod Page

Before you can upload a version of your mod for users to download, you’ll have to create the mod page and get it approved first.

On the front page of SMR, click New Mod in the top right corner to get started.

Provide a name, short description, and long description for your mod. The name is the title that will appear in the mod list and browser. The short description is the summary text that will show up below the mod icon. The long description supports Markdown formatting (help on the help page) and is shown when the user clicks to 'View' your mod. You can edit all of these later.

One of the most important fields on this screen is the mod_reference field. Explained in more detail in the Mod Reference section of the Getting Started guide, your mod reference is your mod’s unique name. As a reminder, your mod’s Content folder and C++ source folder (if using C++) must have the same name as your mod reference. Your mod reference can not contain special characters or spaces.

You can’t change the mod reference after you have added your mod to SMR!

So make sure it is correct! At least five times! And read up on the Mod Reference section again to make sure you understand what other parts of your mod need to use this same value.

Next, you can upload an image to use as the display image for your mod, and a link to your source code if it is hosted on a site like GitHub or similar.

Once you click Submit, your mod page will be created. You still need to upload a version for your mod to be usable by players. This version submission process will be covered in the following sections.

Data.json Format

SMR requires you to include an additional file with your mod files to help the site and launcher function correctly. The same file also allows you to specify what other mods players must have installed in order to use your mod. This file will come in the form of a .json that is zipped together with your mod pak file.

You can see an example of a completed data.json here. You can also paste your data.json into the box on the right of that same page, which will help you identify errors with your json before you attempt to upload it.

Below is a quick explanation of the fields and what they do.

Parameter Description of Function

mod_reference

The unique name for your mod. Used by everything as the identifier for your mod. Tells SML in which folder your InitMod is located and also what name your C++ module has. Again, you can read up on it here.

name

The name of your mod that will be displayed to users. This should match your mod name on SMR.

version

Version number for the mod. Should always increase with new releases, and should follow the semver format, ex. 2.0.0

sml_version

Version number of SML required to run the mod. Players are allowed to use newer versions than the number you specify, but not older versions. You can see a list of all released SML versions here. Also must follow the semver format.

remote_version

Version number defined by your mod which is used for allowing different version of the mod to be playable with each other in multiplayer. You can think about it like a protocol version.

description

A short description of the mod

authors

A list of authors and contributors to the mod

credits

A string containing some additional credit information about the mod.

resources

A object containing archive root relative paths to files mainly used for representing additional information about the mod.
Fields:

  • icon

    Points to a image file of type jpg, png or bmp used as icon in the ingame mod list.

objects

A manifest of all files (except data.json itself) within the zip you upload. See the example for formatting. Dll files are of type sml_mod`s and paks are of type `pak. You can also give each file a loading_priority inside the metadata tag, a number greater than or equal to 0 that defines what priority the mod is loaded with. Higher numbers means it will load later, overwriting content added by other mods if needed. You will need to set this to something greater than 0 if you want your mod to overwrite Vanilla content as well. See the below example.

dependencies

Mod IDs of other mods that this mod requires be installed to function. The Mod Manager will automatically fetch these other mods for players. SML will then load these mods before your mod.

optional_dependencies

Mod references of other mods that this mod lists as being optional to use. The Mod Manager will not automatically fetch these other mods for players.

An example data.json with minimal info is presented here:

Example minimal data.json:

{
  "mod_id": "6gDfrm1m1fgAqV",
  "mod_reference": "BaseMod",
  "name": "BaseMod",
  "version": "0.0.1",
  "sml_version": "2.1.0",
  "remote_version": "0.1.2",
  "description": "A basic mod created to showcase SML's functionality.",
  "authors": ["SuperCoder79"],
  "objects": [
    {
      "type": "sml_mod",
      "path": "BaseMod.dll"
    },
    {
      "type": "pak",
      "path": "BaseMod.pak",
	  "metadata": {
        "loading_priority": 1
      }
    }
  ],
  "resources": {
	"icon": "BaseMod_Icon.png"
  },
  "dependencies": {
  },
  "optional_dependencies": {
  }
}

When you update a new version of your mod in the future, the only thing in data.json that you’ll need to change is likely the version number.

Uploading a Version

Once you have finished formatting your data.json, you will need to package your mod into a zip file for uploading. Put the data.json and any pak and/or dll files for your mod into a folder and zip it, then upload it in the Version File field.

Put "Alpha", "Beta", "Release", etc. in the stability field so that users know how far along in development you consider this version of your mod to be.

Finally, write up a list of all of the things you changed or added in this version for the Changelog field. We also strongly suggest you copy this information into an 'update history' section of your mod’s description on the main mod page.

You should be all set now - press Submit!

Awaiting Approval

If you’ve uploaded a pak only mod, you’re all set, and your mod is ready for download and use! Regardless, we still suggest you read the below. If you’ve uploaded a C++ mod, however, you’ll have to wait for it to be approved by the automated approval process before users can download it. The approval process is generally quite quick, about 1 to 3 minutes, and exists to make sure that users aren’t uploading content that violates SMR’s terms and conditions or harms players' computers.

In the mean time, we strongly suggest you take a look at your mod description and consider adding additional information to it. The mod description is what most players will see when deciding whether or not they want to use your mod, so keep it organized, and try to leave a good first impression! We suggest taking the following steps to encourage users to try out your mod:

  • Check your grammar and spelling! Consider asking someone else to proofread your description. It’s an easy thing to do, and having correct grammar makes you appear more professional.

  • Pictures! Take some screenshots of what your mod can do, and what its buildings or features look like in game. Again, the long description supports Markdown formatting, which you can get help with using on the help page.

  • List where you can be reached for help, issue reporting, leaving suggestions, etc. Where do you want users to report issues to you with the mod? Via Discord, the forums, your mod’s Github page, or somewhere else? Consider putting your Discord tag in your mod description so people can contact you on the community Discord, and consider changing your nickname on the server to include your mod name.

  • Explain concepts or features of your mod that may be unclear to the user. Unless you write documentation or a guide for how to use your mod, players might have some trouble figuring out how to use all of the amazing new content in your mod.

  • List the features of your mod, and how to unlock them for use ingame. Consider listing what tiers the content is unlocked at.

  • Credit other users that contributed ideas, models, etc. by name and/or by link.