Coder Social home page Coder Social logo

lvlyke / starfield-mod-loader Goto Github PK

View Code? Open in Web Editor NEW
20.0 1.0 0.0 3 MB

A simple mod manager for Starfield and Fallout 4 that supports both Steam and Game Pass versions of the games.

License: GNU General Public License v3.0

JavaScript 17.86% TypeScript 60.17% HTML 13.95% SCSS 8.02%
game game-pass gamepass mod mod-loader mod-manager pass starfield manager loader

starfield-mod-loader's Introduction

Starfield Mod Loader

A simple mod manager for Starfield and Fallout 4 that supports both Steam and UWP (Game Pass) versions of the games.

Starfield Mod Loader

Features

  • Support for Steam and UWP (Game Pass) versions of games
  • Add, re-order, rename, disable and remove your mods and plugins
  • Multiple profiles enable quick switching between different games and mod loadouts
  • Root mod support enables management of ENBs, script extenders, and other injectors
  • Support for FOMOD installers
  • Native Linux version (including Steam Deck)

Releases

Releases can be found here:

    Starfield Mod Loader releases

Supported Games

Starfield Mod Loader supports the following games:

  • Starfield
  • Fallout 4

Installation

To install Starfield Mod Loader, simply download the latest release from the releases page and extract the archive to a folder of your choice.

To enable mods in Starfield, add the following lines to the StarfieldCustom.ini file in your Documents/My Games/Starfield folder if not already present:

[Archive]
bInvalidateOlderFiles=1
sResourceDataDirsFinal=

Using Starfield Mod Loader

Note: This guide refers specifically to Starfield, but most of the information also applies to other games.

Create a profile

To add and manage mods you must first create a profile. Upon first launching the app you will be shown a form to create a new profile.

The Mod Base Directory path should be set to the Data folder in either your Documents/My Games/Starfield folder or the game's installation folder (required for SFSE mods).

Note: If you are using the game's installation Data folder, make sure you delete the Data folder at Documents/My Games/Starfield, otherwise your mods will not be detected by the game.

The Game Base Directory path should be set to the game's installation directory. By default this will be C:\Program Files (x86)\Steam\steamapps\common\Starfield for Steam or C:\XboxGames\Starfield\Content for UWP/Game Pass, but this may vary depending on where you chose to install the game.

The Game Executable path should point to Starfield.exe (or sfse_loader.exe if using SFSE), which should be in the game base directory from the prior step. Note: You may get an error from Windows Explorer when selecting the UWP version of Starfield.exe that says "You don't have permission to open this file". If this happens, simply copy the path of the file and manually paste it into the input field without using the file explorer.

You can create additional profiles at any time by pressing the Create Profile button above the Mod List section or by selecting Profile > Add New Profile from the the menu bar.

Add some mods

Once your profile is set up you can begin adding and managing mods. To add a new mod, click the + icon in the Mod List section and select Add Mod, or select Profile > Mods > Add Mod from the menu bar and choose the mod that you want to install.

Note: You can also import existing mods by clicking the + icon in the Mod List section and select Import Mod, or select Profile > Mods > Import Mod from the menu bar. This will allow you to add a mod from a folder, which can be useful for importing mods from other profiles.

Tip: You can also add mods by dragging and dropping them into the app. This will allow you to install multiple mods at a time.

After choosing a mod to add you will be shown either a FOMOD installer, or the default installation options.

Default mod installation

The default installation allows you to rename the mod and select which files from the mod to add. By default, all files from the mod will be added. However, some mods may occasionally contain a non-standard directory structure that can require changing the root data dir, like in the following example:

Add Mod Example 1

This mod contains a single root directory called standard that contains an inner Data directory with all of the mod files. We need to mark this inner Data directory as the root data dir in order for the mod to be installed correctly:

Add Mod Example 2

Now, only the files in standard/Data directory will be added for this mod.

FOMOD installers

Some mods are packaged with special metadata known as FOMOD that allows for customizing the installation through a guided flow. Starfield Mod Loader supports FOMOD and will automatically show the installation wizard for FOMOD-compatible mods, as shown in the example below:

FOMOD Installer Example 1

The installer will guide you through the installation of the mod. Hovering over or selecting an option will show information about what it does. If you wish to install the mod manually instead, you can click the Manual Install button at the bottom left corner of the installer window.

Note: Many mods will ask you if you are using Vortex or Mod Organizer 2. Starfield Mod Loader supports either option, but if you encounter any issues, select Mod Organizer 2.

Tip: Click the preview image (or the ? tooltip in compact view) to show a fullscreen view of the image.

Root mods

Root mods are mods that are deployed to the Game Base Directory instead of the Mod Base Directory. This allows for script extenders, DLSS injectors, ENBs, and other types of injectors to be managed as mods in your profile.

To add a root mod, click the + icon in the Mod List section and select Add Root Mod, or select Profile > Mods > Add Root Mod from the menu bar and chose the mod that you want to install.

Managing your mods

Mods you have added will appear in your mods list with the load order of that mod shown to the right of its name. You can modify the load order of a mod by dragging and dropping it in the list. Unchecking a mod will disable it and make it inactive. To rename or delete a mod, right click it and select the appropriate option.

You can customize which columns of the mods list are visible under the View > Mod List Columns section of the app menu bar.

Any mod files that you have manually copied to your Mod Base Directory outside of the app will show up in the UI as Manually installed mods. These mods cannot be managed by Starfield Mod Loader and will not be removed or overwritten. This means that any manually copied mods in your Mod Base Directory folder will override the mods in Starfield Mod Loader.

Tip: You can change the app theme under File > Preferences.

ESP/ESM plugins

Once at least one mod with a plugin has been installed, you will see your plugins listed along with their load order. Plugins can be individually disabled or re-ordered by dragging and dropping them.

Plugin support can be enable or disabled by going to File > Preferences and toggling the plugin support option. If disabled, you will be prompted to enable plugins when adding mods that include plugins.

IMPORTANT NOTE FOR STARFIELD: Starfield does not yet officially support plugins. To use unofficial plugins for Starfield, you will also need to install the Plugins.txt Enabler mod for plugins to load correctly.

Activate your mods

To enable mods in the game you must first activate them. Press the Activate Mods button in the Actions section and your mods will be deployed to the Mod Base Directory.

Mods will now remain active until you press the Deactivate Mods button, even if you close the app or restart your PC.

IMPORTANT NOTE: If you update any of the profile's mod files externally (i.e. in a text editor) while mods are deployed, make sure to press the Refresh Files button after, otherwise your changes will not be applied.

Tip (Linux): It is recommended to enable the Normalize path case option under File > Preferences when using Linux with a case-sensitive file system. See here for more info.

Launch the game

Click the Start Game button or launch the game directly from Steam or Game Pass. Your mods should now be active!

Troubleshooting

Common issues

My mods are not loading

First, make sure you have added the following lines to your StarfieldCustom.ini file:

[Archive]
bInvalidateOlderFiles=1
sResourceDataDirsFinal=

If mods still are not working, you may also need to also add these lines to your StarfieldPrefs.ini file.

If you are using the game's installation Data folder as your Mod Base Directory, make sure you delete the Data folder at Documents/My Games/Starfield, otherwise your mods will not be detected by the game. The game will automatically create this folder on game start and when you take in-game screenshots. To change this behavior, you can add the following lines to your StarfieldCustom.ini and StarfieldPrefs.ini files to disable MotD and change your screenshots folder:

[General]
bEnableMessageOfTheDay=0
[Display]
sPhotoModeFolder=Photos

(Linux) Some mods are not loading/strange behavior when loading some mods

Some mods may use different casing for their files/folders (i.e. Interface vs interface) and this can cause issues on case-sensitive file systems, which are often used on Linux. To prevent this issue, you can enable the Normalize path case option under File > Preferences. When this setting is enabled, Starfield Mod Loader will automatically convert all activated mod files and folders to lowercase.

(Linux) Mods are not loading when using SFSE

When running SFSE via Proton, Steam will create a new virtual C drive for SFSE that's different from the virtual C drive used for Starfield. This means that when running SFSE, your StarfieldCustom.ini and StarfieldPrefs.ini files will not be loaded, and instead new ones will be created on the new virtual C drive.

To avoid having two separate copies of these files, the easiest solution is to create a symlink on the new virtual C drive to the Documents/My Games/Starfield directory on the original Starfield virtual C drive. This way, both virtual C drives will point to the same Documents/My Games/Starfield directory.

You will first need to figure out the new virtual C drive directory for SFSE, which will be located in ~/.local/share/Steam/steamapps/compatdata. You will see a number of directories in here with numerical IDs. One of these directories corresponds to the game ID that Steam assigned to SFSE. To determine which game ID is the correct one, you can look at the folder's "Date modified" timestamp to figure out which virtual drive directories were created recently. Assuming you added SFSE recently, it should have a Date modified field that matches when SFSE was added.

Once you have figured out the game ID for SFSE, navigate to <game_id>/pfx/drive_c/users/steamuser/Documents/My Games. Delete the existing Starfield directory inside of this directory and then open a terminal at this directory and run the following command:

# Starfield's game ID is 1716740
ln -s "~/.local/share/Steam/steamapps/compatdata/1716740/pfx/drive_c/users/steamuser/Documents/My Games/Starfield" "./Starfield"

This will create a symlink to Starfield's Documents/My Games/Starfield directory, ensuring that SFSE is using the same ini files as the base game.

Report an issue

If you run into a problem, please check the issues page to see if your question has been answered or create a new issue if you have a bug to report.

Devs - Building and testing

To build and run the app for testing and development, ensure you have Node and NPM installed on your machine and run npm install and npm run start.

starfield-mod-loader's People

Contributors

lvlyke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

starfield-mod-loader's Issues

Infinitely syncing mods

I have 3 simple mods I'm trying to load to test this out, but upon hitting activate mods for the first time it just infinitely says "syncing mods". Now I seem to be locked out, as i can't cancel the process, and restarting the app auto restarts the infinite syncing. I'm on garuda hyprland, and running the latest release of the mod manager.

Mod loader freezes up when extremely large files are added

Added the "8k planets" mod (link: https://www.nexusmods.com/starfield/mods/1845) via the mod loader and while it DID work, the application froze up for a solid 5 minutes and I wasn't sure if it crashed or not. Task manager indicated it was still pulling data from storage though.

Since it worked in the end it's not really a bug, but I would like some peace of mind in knowing if the application is crashing or not. Some kind of indicator status or flag when an extremely large file is being added.

Some mod .esm or .eps don't automatically get added to the plugins.txt and some mod files doesn't get installed

I've been trying to get this Patch, .esm to install correctly but nothing I try has worked. The plugin gets copied to the profile folder with no problem but the .esm doesn't get added to the plugins.txt.
is there a way to manually add the plugin to the list myself?
Question: If I have made changes to .esm files with xEdit while Mods are Activated does the changes get synced to the profile mods folder? Or do I have to manually replace the edited .esm files? If that's the case I suggest adding that feature into the next update it would really improve QOL for patching mods

Edit: I just found the Patch .esm I was talking about in the .txt, I thought it was not getting added but for some reason it added it to the middle, or I might just be slow and forgot it was on the list already when I did a reinstall and expected it to be added to the bottom of the list, apologies for the confusion.
The other issue I've encountered was that some mods get installed but no mod files get added to the profiles mods folder. I've found a simple workaround for this bug. I have to reinstall the same mod making sure the names are the same for the installed mod that has the bug, then confirming the install will prompt that there is a conflict with an already installed mod; Selecting the add feature instead of replace or overwrite seems to add the missing files and it also add the plugins if it was not added already. Also a small nitpick , the loading arrows are spinning the wrong way, could be a simple fix if its possible to horizontally flip the arrow asset 180 degrees.

UI Going Blank

I'm really excited to use this. I hadn't realized that Vortex wasn't supported on linux, and so to have a "native" tool is very exciting.

Unfortunately my window is going blank while trying to enter my directories. Initially everything looks fine, but after 15ish seconds, the whole display goes blank:

image

Running in the terminal, I see this when trying to go to preferences while the screen is blank:

Error sending from webFrameMain:  Error: Render frame was disposed before WebFrameMain could be accessed
    at WebFrameMain.send (node:electron/js2c/browser_init:2:94495)
    at WebContents.send (node:electron/js2c/browser_init:2:79721)
    at click (/media/austin/extradrive1/games/starfield-additional/programs/starfield-mod-loader-3-1/resources/app/electron.js:416:66)
    at MenuItem.click (node:electron/js2c/browser_init:2:30958)
    at Menu._executeCommand (node:electron/js2c/browser_init:2:36354)

I'm running the latest version of pop os.

Mod deployment failed. Check app.log file for more information.

Log says this
[2024-03-07 23:49:31.504] [error] Error: ENOENT: no such file or directory, open 'settings.json'
at Object.openSync (node:fs:603:3)
at Object.func [as openSync] (node:electron/js2c/asar_bundle:2:2131)
at Object.readFileSync (node:fs:471:35)
at Object.readFileSync (node:electron/js2c/asar_bundle:2:9462)
at ElectronLoader.loadSettings (/home/user/Mods/resources/app/electron.js:577:32)
at /home/user/Mods/resources/app/electron.js:152:29
at WebContents. (node:electron/js2c/browser_init:2:88656)
at WebContents.emit (node:events:514:28)

Also what do I put in Plugin List Path?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.