Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/docs-070' into release-0.7.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Sewer56 committed Nov 27, 2024
2 parents 17c2d09 + debf7fa commit 8226b2d
Show file tree
Hide file tree
Showing 32 changed files with 759 additions and 113 deletions.
48 changes: 48 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,50 @@
# v0.7.0 - 2024-11-XX

**Important: To update the app, you must completely uninstall the old version, including all mods.** [Why do I have to uninstall everything to update the app?](https://nexus-mods.github.io/NexusMods.App/users/faq/#why-do-i-have-to-uninstall-everything-to-update-the-app)

This release includes initial support for Mount & Blade II: Bannerlord, a basic implementation of REDmod load order for Cyberpunk 2077 and several UI refinements.

## Mount & Blade II: Bannerlord
This version adds basic support for Bannerlord. All modules can be easily installed and managed. We've also added several advanced [Health Check diagnostics](https://nexus-mods.github.io/NexusMods.App/users/games/Bannerlord/#loadout-health-check) to allow players to understand common issues in their setup, with more planned for the future when we add load order support!

![An example of the "Missing Dependency" and "Incompatible Mods" diagnostics for Bannerlord.](https://staticdelivery.nexusmods.com/mods/2295/images/26/26-1732536855-1001051460.png)

A huge thank you to [Aragas](https://www.nexusmods.com/mountandblade2bannerlord/users/2355906) for all his help during development of this feature!

## Collections Download Page
**Important: While we upgrade the Collections UI, some features that worked in earlier versions will be temporarily unavailable.**

We've further refined the Collections download page which unlocks the ability for non-Premium users to use the Collections feature and provides Premium users with the ability to see the list of mods included in a collection before downloading. As this page is still a work in progress, some of the UI buttons may not work as expected yet.

![The Collection Download Page showing a Stardew Valley collection.](https://staticdelivery.nexusmods.com/mods/2295/images/26/26-1732544476-32114395.png)

## EXPERIMENTAL - Cyberpunk 2077 REDmod Load Order
Users can now manage the order of REDmods installed for Cyberpunk 2077 through the new "Load Orders (WIP)" page that can be accessed from the New Tab menu.

Please note, this page is currently very basic and has not yet been styled.

## Features
* Baldur's Gate 3: Added [diagnostics](https://nexus-mods.github.io/NexusMods.App/users/games/BaldursGate3/#loadout-health-check) relating to BG3 Script Extender.
* Updated the My Games page design to better showcase the games you have managed, detected and available in the app but not detected.
* Updated the design of tabs in the Workspace system to make them more compact.
* General polish to areas of the UI such as Health Check.

## Technical Changes
* We've added a framework for data migrations which gets us a step closer to allowing users to update the app without resetting everything.
* The app has been upgraded to use .NET 9. This allows us to take advantage of the latest performance improvements and security fixes.

## Bugfixes
* Fixed an issue where the app would prompt the user to log in to Nexus Mods when starting up, even if they are already logged in.

## Known Issues
* The Collections feature is able to download all required files but will not install them. Mods can be manually installed from the Library but this will not import the collection configuration options. This feature will be re-implemented in the future.
* Any non-Nexus Mods file in a collection that requires the user to browse an external website can be installed into the library manually but will not be recognised as part of the collection.
* The game version is not checked when adding a collection meaning you can install outdated mods without being warned.
* Once a collection is added to the app, it cannot be removed.
* The first row of the My Mods or Library tables will sometimes be misaligned with the headers. Scrolling or adjusting any column width will correct this.
* The "Switch View" option does not persist in the Library/Installed Mods view.


# v0.6.3 - 2024-11-06

**Important: To update the app, you must completely uninstall the old version, including all mods.** [Why do I have to uninstall everything to update the app?](https://nexus-mods.github.io/NexusMods.App/users/faq/#why-do-i-have-to-uninstall-everything-to-update-the-app)
Expand Down Expand Up @@ -34,6 +81,7 @@ We are continuing to add features to support modding Baldur's Gate 3. In this up
* The main window will now pop into focus when the user successfully logs in.

## Known Issues
* The Library and Collections (WIP) pages are not filtered by game.
* Installing a collection which includes mods where the user must browse an external website to obtain the file(s) will fail with no error message. This is not supported in the current build.
* Trying to install a collection as a non-Premium user will fail with no error message. This is not supported in the current build.
* The game version is not checked when adding a collection meaning you can install outdated mods without being warned.
Expand Down
6 changes: 3 additions & 3 deletions docs/users/AddGames.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ In this guide, we'll cover adding and removing games in the app.
## Adding a Game
To get started, head to the home screen of the app by clicking the Nexus Mods logo at the top of the spine on the left. From here, click the "My Games" option in the left menu.

![The My Games screen with Stardew Valley and Cyberpunk 2077 unmanaged.](./images/0.6.0/AddGame.webp)
![The My Games screen with Stardew Valley, Cyberpunk 2077, Baldur's Gate 3 and Bannerlord unmanaged.](./images/0.7.0/AddGame.webp)

This page shows a list of games that are currently supported and those that are managed by the app currently.

Expand All @@ -23,8 +23,8 @@ Once the process is complete a new entry will be added to the spine menu on the

To stop managing a game with the app, click the home button at the top of the spine menu on the left, then select "My Games" in the left menu. This will open a screen with a list of both supported and managed games.

![The My Games screen with Stardew Valley and Cyberpunk 2077 managed.](./images/0.6.0/GameAdded.webp)
![The My Games screen with Stardew Valley and Cyberpunk 2077 managed.](./images/0.7.0/GameAdded.webp)

Under the "Games Added" section, click on the :material-delete-forever: icon on the game you wish to remove. This process may take a few second as the game is reverted back to the state it was in before you started modding it. Your mods are not deleted and will still be available in the Library section next time you manage the game.
Click on the :material-delete-forever: icon on the game you wish to remove. This process may take a few second as the game is reverted back to the state it was in before you started modding it. Your mods are not deleted and will still be available in the Library section next time you manage the game.

To completely remove the Nexus Mods app and all downloaded mods, please see [Uninstalling the app](./Uninstall.md).
6 changes: 3 additions & 3 deletions docs/users/games/BaldursGate3.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@ In addition to basic mod management features, players also benefit from these de
Get information on potential issues in your loadout(s). [Learn more about Health Checks.](../features/HealthCheck.md)

Diagnostics are shown in the following situations:

- A mod is installed and requires another mod which is not installed or enabled. This check uses the meta.lsx file inside the PAK.
- A mod is installed which requires BG3 Script Extender but it is not installed.
- On Linux, BG3 Script Extender is installed via WINE but the WINE DLL Override setting is not set to allow the correct DLL file to be used.

### Selective Game Backup
When managing Baldur's Gate 3 the app will back up only the core game files (default) or the entire game folder. Backing up the whole game requires significantly more hard drive space. This option can be toggled in the :material-cog: Settings menu.


## Compatibility
!!! warning "Launch options for the GOG version"
In 0.6.2 pressing the play button in the app will always launch the Vulkan version of the game. To play the DX11 version please launch the game through GOG Galaxy (Windows), Heroic Launcher (Linux) or via `bin\bg3_dx11.exe`.

This game can be managed via the app on the following operating systems and platforms. The application will automatically detect valid installations from supported game stores if possible.

|| :fontawesome-brands-windows: Windows | :fontawesome-brands-linux: Linux | :fontawesome-brands-apple: macOS |
Expand Down
38 changes: 38 additions & 0 deletions docs/users/games/Bannerlord.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Mount & Blade II: Bannerlord

!!! example "We're working on it"
Bannerlord support is currently in development. Get involved by joining us on [GitHub](https://github.com/Nexus-Mods/NexusMods.App/issues/new/choose), [Discord](https://discord.gg/ReWTxb93jS) or the [forums](https://forums.nexusmods.com/forum/9052-nexus-mods-app/)!

## Features
In addition to basic mod management features, players also benefit from these dedicated features:

### Loadout Health Check
Get information on potential issues in your loadout(s). [Learn more about Health Checks.](../features/HealthCheck.md)

![An example Health Check message prompting the installation of a missing mod.](../images/0.7.0/HealthCheckExampleBannerlord.webp)

Diagnostics are shown in the following situations and uses the SubModule.xml file included with mods to generate these messages:

- A mod is installed and requires another mod which is not installed or enabled.
- A mod is installed and requires a specific version of another mod which is not installed or enabled.
- Two mods are installed that are marked as incompatible or conflict with each other.
- The SubModule.xml file in the mod contains errors.
- The installed mods create a "circular dependency" meaning if you follow the dependencies for each mod you get into an infinite loop.
- Load order items need attention. This could be that an entry should be loaded before or after another.


### Selective Game Backup
When managing Bannerlord the app will back up only the core game files (default) or the entire game folder. Backing up the whole game requires significantly more hard drive space. This option can be toggled in the :material-cog: Settings menu.

## Compatibility
This game can be managed via the app on the following operating systems and platforms. The application will automatically detect valid installations from supported game stores if possible.

|| :fontawesome-brands-windows: Windows | :fontawesome-brands-linux: Linux | :fontawesome-brands-apple: macOS |
|---|---|---|---|
| :fontawesome-brands-steam: [Steam](https://store.steampowered.com/app/261550/Mount__Blade_II_Bannerlord/) | :material-check-circle: | :material-check-circle: | :material-close-thick: |
| <img src="../../images/GOG.com_logo_white.svg" alt="GOG" width="14"/> [GOG](https://www.gog.com/en/game/mount_blade_ii_bannerlord) | :material-check-circle:[^1] | :material-close-thick: | :material-close-thick: |
| <img src="../../images/epic-games.svg" alt="Epic Games Store" width="14"/> [Epic Games Store](https://store.epicgames.com/en-US/p/mount-and-blade-2) | :material-check-circle: | :material-close-thick: | :material-close-thick: |
| :fontawesome-brands-xbox: [Xbox Game Pass (PC)](https://www.xbox.com/en-GB/games/store/mount-blade-ii-bannerlord/9pdhwz7x3p03) | :material-close-thick:[^2] | :material-close-thick: | :material-close-thick: |

[^1]: Offline backup installs from GOG.com cannot be detected automatically.
[^2]: Xbox Game Pass for PC is not yet supported. <a href="https://github.com/Nexus-Mods/NexusMods.App/issues/1476">More.</a>
7 changes: 7 additions & 0 deletions docs/users/games/Cyberpunk2077.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ Diagnostics are shown in the following situations:
- [ArchiveXL](https://www.nexusmods.com/cyberpunk2077/mods/4198) - Detected by `.xl` files in the `archives` folder.
- [Cyber Engine Tweaks](https://www.nexusmods.com/cyberpunk2077/mods/107) - Detected by `.lua` files in the `bin/x64/plugins/cyber_engine_tweaks` folder.

### REDmod Load Ordering
Some mods for Cyberpunk 2077 make use of the official REDmod format for loading content. The Load Order page allows users to decide on the order in which the game will load content from REDmods. By default, the mods at the **top** of the list will win if they have conflicting changes with another REDmod lower down in the order.

You can learn more about the REDmod format on [community wiki](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-users/users-modding-cyberpunk-2077/redmod/usage).

Changes in REDmods are always overwritten by similar changes inside archive mods.

### Automated deployment for REDmods

??? info "REDmod with Heroic Launcher (Linux)"
Expand Down
31 changes: 24 additions & 7 deletions docs/users/games/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,32 @@

The following games are currently supported. Click on the game icon to learn more.

<a href="./StardewValley">
<img src="https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/Games/NexusMods.Games.StardewValley/Resources/icon.png?raw=true" style="max-width:150px" title="Stardew Valley" alt="Stardew Valley">
<div>
<a href="./StardewValley" title="Stardew Valley" alt="Stardew Valley">
<object style="max-width:150px" data="https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/Games/NexusMods.Games.StardewValley/Resources/icon.png?raw=true" type="image/png">
<img src="../images/GameFallback.webp">
</object>
</a>
<a href="./Cyberpunk2077">
<img src="https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/Games/NexusMods.Games.RedEngine/Resources/Cyberpunk2077/icon.png?raw=true" style="max-width:150px" title="Cyberpunk 2077" alt="Cyberpunk 2077">
<a href="./Cyberpunk2077" title="Cyberpunk 2077" alt="Cyberpunk 2077">
<object style="max-width:150px" data="https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/Games/NexusMods.Games.RedEngine/Resources/Cyberpunk2077/icon.png?raw=true" type="image/png">
<img src="../images/GameFallback.webp">
</object>
</a>
<a href="./BaldursGate3">
<img src="https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/Games/NexusMods.Games.Larian/Resources/BaldursGate3/icon.png?raw=true" style="max-width:150px" title="Baldur's Gate 3" alt="Baldur's Gate 3">
<a href="./BaldursGate3" title="Baldur's Gate 3" alt="Baldur's Gate 3">
<object style="max-width:150px" data="https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/Games/NexusMods.Games.Larian/Resources/BaldursGate3/icon.png?raw=true" type="image/png">
<img src="../images/GameFallback.webp">
</object>
</a>

<a href="./Bannerlord" title="Bannerlord" alt="Bannerlord">
<object style="max-width:150px" data="https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/Games/NexusMods.Games.MountAndBlade2Bannerlord/Resources/icon.png?raw=true" type="image/png">
<img src="../images/GameFallback.webp">
</object>
</a>
<!-- <a href="./SkyrimSE" title="Skyrim Special Edition" alt="Skyrim Special Edition">
<object style="max-width:150px" data="https://github.com/Nexus-Mods/NexusMods.App/blob/main/src/Games/NexusMods.Games.Bethesda/SkyrimSE/Resources/icon.png?raw=true" type="image/png">
<img src="../images/GameFallback.webp">
</object>
</a> -->
</div>

To find out which games are going to be supported next, please see [the roadmap](https://trello.com/b/gPzMuIr3/nexus-mods-app-roadmap).
Binary file removed docs/users/images/0.6.0/AddGame.webp
Binary file not shown.
Binary file removed docs/users/images/0.6.0/GameAdded.webp
Binary file not shown.
Binary file added docs/users/images/0.7.0/AddGame.webp
Binary file not shown.
Binary file added docs/users/images/0.7.0/GameAdded.webp
Binary file not shown.
Binary file not shown.
Binary file added docs/users/images/GameFallback.webp
Binary file not shown.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ nav:
- Stardew Valley: users/games/StardewValley.md
- Cyberpunk 2077: users/games/Cyberpunk2077.md
- Baldur's Gate 3: users/games/BaldursGate3.md
- Bannerlord: users/games/Bannerlord.md
- Frequently Asked Questions:
- users/faq/index.md
- How to find the log files: users/faq/LogFiles.md
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ private async Task PersistSortableEntries(List<RedModSortableItem> orderList)

private static bool RedModIsEnabled(RedModLoadoutGroup.ReadOnly grp)
{
return !grp.AsLoadoutItemGroup().AsLoadoutItem().GetThisAndParents().Any(f => f.Contains(LoadoutItem.Disabled));
return grp.AsLoadoutItemGroup().AsLoadoutItem().IsEnabled();
}

private static RelativePath RedModFolder(RedModLoadoutGroup.ReadOnly group)
Expand Down
9 changes: 9 additions & 0 deletions src/NexusMods.App.UI/NexusMods.App.UI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,15 @@
<Compile Update="Pages\Sorting\SortingSelection\SortingSelectionViewModel.cs">
<DependentUpon>ISortingSelectionViewModel.cs</DependentUpon>
</Compile>
<Compile Update="Pages\Sorting\LoadOrder\LoadOrderViewDesignViewModel.cs">
<DependentUpon>ILoadOrderViewModel.cs</DependentUpon>
</Compile>
<Compile Update="Pages\Sorting\SortingSelection\SortingSelectionDesignViewModel.cs">
<DependentUpon>ISortingSelectionViewModel.cs</DependentUpon>
</Compile>
<Compile Update="Pages\Sorting\LoadOrder\LoadOrderItemDesignModel.cs">
<DependentUpon>ILoadOrderItemModel.cs</DependentUpon>
</Compile>
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
using System.Reactive;
using NexusMods.Abstractions.Games;
using NexusMods.App.UI.Controls;
using ReactiveUI;

namespace NexusMods.App.UI.Pages.Sorting;

public interface ILoadOrderItemModel : ITreeDataGridItemModel<ILoadOrderItemModel, Guid>
{
public ISortableItem InnerItem { get; }
public ReactiveCommand<Unit, Unit> MoveUp { get; }
public ReactiveCommand<Unit, Unit> MoveDown { get; }
public int SortIndex { get; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.ComponentModel;
using System.Reactive;
using NexusMods.Abstractions.UI;
using NexusMods.App.UI.Controls;
using ReactiveUI;

namespace NexusMods.App.UI.Pages.Sorting;
Expand All @@ -10,7 +11,7 @@ public interface ILoadOrderViewModel : IViewModelInterface
/// <summary>
/// TreeDataGridAdapter for the Load Order, for setting up the TreeDataGrid
/// </summary>
LoadOrderTreeDataGridAdapter Adapter { get; }
TreeDataGridAdapter<ILoadOrderItemModel, Guid> Adapter { get; }

/// <summary>
/// Name of this sort order type
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System.Reactive;
using NexusMods.Abstractions.Games;
using NexusMods.App.UI.Controls;
using ReactiveUI;

namespace NexusMods.App.UI.Pages.Sorting;

public class LoadOrderItemDesignModel : TreeDataGridItemModel<ILoadOrderItemModel, Guid>, ILoadOrderItemModel
{
public ReactiveCommand<Unit, Unit> MoveUp { get; } = ReactiveCommand.Create(() => { });
public ReactiveCommand<Unit, Unit> MoveDown { get; } = ReactiveCommand.Create(() => { });
public int SortIndex { get; set; }
public string DisplayName { get; set; } = "Display Name";
public string ModName { get; set; } = "Mod Name";
public bool IsActive { get; set; }
public Guid Guid { get; set; }
}
Loading

0 comments on commit 8226b2d

Please sign in to comment.