Giter Site home page Giter Site logo

me3tweaks / me3tweaksmodmanager Goto Github PK

View Code? Open in Web Editor NEW
119.0 6.0 35.0 329.85 MB

Mod Manager for Mass Effect Original Trilogy and Mass Effect Legendary Edition

License: GNU General Public License v3.0

C# 99.83% XSLT 0.03% C++ 0.10% C 0.01% Batchfile 0.01% PowerShell 0.01% UnrealScript 0.02%
modding mod masseffect

me3tweaksmodmanager's Introduction

ME3Tweaks Mod Manager

ME3Tweaks Mod Manager is the mod manager for Mass Effect Trilogy (2008/2010/2012) and Mass Effect Legendary Edition (2021) set of games. It is designed to facilitate the entire modding process for end users, from backing up and restoring, to installation and debugging. For developers, it's designed to be both the starting and ending point of mod development, with features to generate blank mods and deploy them for use.

mmwindow

Documentation

Mod Manager documentation

me3tweaksmodmanager's People

Contributors

akinari26 avatar chiaram96 avatar confidenti avatar costantino2000 avatar dependabot[bot] avatar falcoman94 avatar harharlinks avatar henbagle avatar herobrine24 avatar iamviolon avatar kinkojiro avatar lubieerror avatar melllin avatar mgamerz avatar shakahassan avatar sircxyrtyx avatar sonashii avatar squedgy avatar starkgate avatar sterlingvix avatar syzmonk avatar tajfun403 avatar thefellowjasper avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

me3tweaksmodmanager's Issues

Minor: Moddesc 6: DLCRequirements doesn't take DLC Name, only folder name

Creating a DLC Multilist option with DLCRequirements. such as below:
(Condition=COND_MANUAL,DLCRequirements=FROM_ASHES,ModOperation=OP_ADD_MULTILISTFILES_TO_CUSTOMDLC,MultiListId=1,MultiListRootPath=Alternates\Extra\EDI,ModDestDLC=DLC_MOD_EGM_Extra\CookedPCConsole,Description="Adds casual outfit version of EDI's From Ashes Armor",FriendlyName="Extra: EDI Casual Alliance Uniform DLC")

The DLCRequirements does not parse properly so the item remains always "Unavailable".

Changing to the official dlc folder name (e.g. DLC_HEN_PR) is a workaround.

add concise explanation of multiple targets for same game

have a popup with short explanation of how to and pitfalls of having multiple targets, including but not limited to:

  • changes origin default launch
  • gets updated when choosing from dropdown
  • see origin icon
  • origin setting must be updated to enable the "modpack" (obvious) and potentially update global config (e.g. LOD depending on ALOT installation)
  • if you have multiple targets, you should simply always launch through M3

Build 105 checklist

This is the task list for ME3Tweaks Mod Manager, Build 105.

New features

  • File-level rules for alternates - needs validation
  • Importing blacklist
  • Mod check for update on import if mod is updatable - needs validated
  • ME3CMM migration flow
  • Support EGM settings - needs validation
  • #77 Moddesc altfiles: COND_ALWAYS
  • #81 Updater Service delta for upload - needs validation
  • Drag/drop tools for devs
    • Coalesced decompiler
    • Coalesced compiler
    • TLK decompiler
    • TLK compiler
  • Drag/drop Modmaker sideload for xml files
  • altdlc: COND_SPECIFIC_DLC_SETUP
  • Conflict Detector UI for devs - needs validation
  • Basegame File Identification Service (diag only for now)
  • Official DLC Toggler - needs validation, especially for ME2, ME1
  • New option: Auto LODs

Changed features

  • Significantly improved log and diagnostics, on par with ALOT Installer - needs validation
  • Prevent RCW mod deployment - needs validation (with other mod deployments too)
  • #80 Restoring game should update the LODs if it's an active target - needs validation
  • Updated to May .NET Core to resolve windows wiping out temp directory

Other things

  • Localizations
    • French
    • Polish
    • German
    • Russian
  • Beta test
  • Documentation
  • Soak test (in progress)
  • Full deployment

Moved to 106

  • Direct Mixin installation, using three way merge
    • This will require further work than initially anticipated for multiple changes to the same export. It is partially implemented, but when merges are rejected, the UI is not informed
  • Three Way Merge - will take additional implementation work to support merging changes to same-exports and when to allow or deny these changes
  • RCW mods - support in deploy? maybe a mod will bundle a basegame coalesced change...? seems like a bad idea
  • RCW mods - support with other tasks, maybe a mod will bundle a basegame coalesced change...? seems like a bad idea

indicate that Discord is in English

I already implemented it this way in deu.xaml:

Because Discord is only in English, indicate it in non-english localizations.

For example:

<system:String x:Key="string_dialogCriticalFilesMissing">"Mod Manager konnte zur korrekten Ausführung des Programms notwendige Dateien nicht herunterladen.\nBitte stelle sicher, dass du mit dem Internet verbunden bist und sowohl GitHub.com als auch ME3Tweaks.com erreichen kannst.\nMod Manager wird sich nun beenden. Falls du Hilfe benötigst, kannst du uns im ME3Tweaks Discord (Englisch) kontaktieren.</system:String>

string_tooltip_reloadModsFromLibrary

trying to think as a user here and when translating in general, so here goes.

<system:String x:Key="string_tooltip_reloadModsFromLibrary">Reload mods from mod library</system:String>

The concept of "library" must be made very clear and chosen for either "left half of m3" or "some folder on your HDD". I'd use library for the former.

In this case I find the description unclear and would propose "Reload mods from HDD" or "Reload library from HDD".

I feel like "reload" implies throwing away the current index and rebuilding it from HDD, i.e. discovering new Mods. If that's the case, great.
Alternatively, if reload is done based on current index, I'd say refresh might be more fitting.

PS: maybe there's a better word instead of HDD (SSD nitpicking) that has equally intuitive meaning unlike "storage".

Build 108 Changelog

This should be the build that ME3CMM users can upgrade to, for reals this time! This build is currently soak testing - not all users will receive it.

Note: The GUI Compatibility Pack Generator is scheduled for deprecation, pending an update for the Interface Scaling Mod. Once this mod is updated, the GUI Compatibility Pack Generator will no longer be necessary, as they won't override files anymore. As of SP Controller Support 3.0, a GUI Compatibility Pack for that mod is no longer required.

New features

  • Mod deployment now has blocking checks that will prevent a mod from being deployed to 7z if the checks fail. Not all checks will trigger this.
  • New tool ported from ME3CMM: Keybinds Injector. Place a me3-bioinput.xml file in C:\ProgramData\ME3TweaksModManager\keybindsoverride and inject them into the game. These are no longer tied to a mod, but can be included automatically in ModMaker mods in the options panel.
  • New tool: Origin in-game disabler. This will install my proxy d3d9.dll that will make Origin unable to inject it's overlay into the application. This overlay has a significant performance impact on the Steam version of ME3 and the Origin version of ME1, however due to a bug (maybe?) in Steam <-> Origin handling, the ME3 version can't actually be manually disabled in the Origin settings.
  • Basegame File Identification Service - 'Modified basegame files' in the Installation Information panel should now try to look up the source of the file. This is a best-effort system and may not be 100% accurate.
  • A mod manager tutorial has been added. It will show up after first boot, and can be viewed in the Help menu.
  • The Installation Information panel now has a new tab, called "Extras", which has extra information about the game, such as number of installed ASIs, extra dlls, etc.
  • New moddesc.ini task header: LOCALIZATION, which allows installing .tlk files into existing directories, for localization 'mods' of existing mods.

Changed features

  • Log collection strings are now localized
  • Support Steam version of ME3
  • More online components (services, etc) can now fallback to github if ME3Tweaks is unavailable to your system (happens in countries like Russia at times)
  • A work in progress moddesc.ini editor has been added - but it is not functional
  • Importing a texture modded DLC mod from the game directory is no longer allowed
  • The 'backup nag' will now show the status of a backup, if it's validating, etc.
  • The GUI Compatibility Pack generator will now build in a list of what it's built against, and will prevent installation if the list of targets does not match what it was built against.
  • The date of the file will now be preserved if you use the 'compress packages' option on mod import
  • The taskbar will now show progress if many long running options

Bugfixes

  • AltFiles multilist now properly work if the mod is not at the root of the archive
  • Hopefully fix crash that appears to occur when download mod update files, but only for some users
  • Targets will occasionally reload on certain actions to make sure the underlying state and the state known in mod manager remain in sync
  • Fix issue that would make target switching not possible due to Steam's use of 32-bit and 64-bit registry keys for Mass Effect 3
  • Fix folder deletion failures not triggering messages about it
  • Fix inability to uninstall ASI mods that are not part of the manifest
  • Fix french versions of ME1 failing the vanilla check

Adding image support for moddescs with options

I believe the mod manager could benefit from supporting images during the mod installation process, much like the Vortex and old Nexus Mod Manger have for quite a while now.

When you have a mod that includes multiple options, especially ones with visual differences, users will have a better experience choosing between them, because you can have an image that swaps between the different variations as you select, or hover over them.

Here's a concept I made:
gif

Here's an example from Vortex: https://wiki.nexusmods.com/index.php/How_to_create_mod_installers
image

Broken strings

due to substitution error?

  1. The following needs a the 0 removed:
    <system:String x:Key="string_interp_validation_modjob_optionGroupMustHaveAtLeastOneItemWithCheckedByDefault">Alternate Files that use the OptionGroup feature must have at least one AlternateFile struct in their 0 set with the CheckedByDefault option, as at least one option must always be chosen. The failing option group name is '{0}'.</system:String>
  2. The following needs their 0 replaced by their set:
    <system:String x:Key="string_interp_validation_modjob_optionGroupMayOnlyHaveOneItemWithCheckedByDefault">Alternate Files that use the OptionGroup feature may only have one AlternateFile struct set with the CheckedByDefault option within their 0. The failing option group name is '{0}'.</system:String>

Potentially needs propagation to all localizations.

string_deploy

<system:String x:Key="string_deploy">Deploy</system:String>

While I get the meaning, I'm having trouble translating it, which makes me wonder if that's the correct term in the first place.

Alternatives that come to mind:

  • export: imprecise, you could also export an existing mod from the library
  • pack/package: maybe, and more so if the same terminology was used for importing mods
  • ?

consistent and best term for "custom DLC mod"/"content/DLC mods"/"DLC/mods"

Naturally there are many mentions of custom DLC mods, e.g. the first one:

<system:String x:Key="string_ImportalreadyinstalledCustomDLCmod">Import already installed Custom DLC mod</system:String>

However the term is not used consistently. It should be decided which is the best term, e.g. most easily understandable, sufficiently precise and least technical.

check INT.xaml for it's/its mistakes

eg:

<system:String x:Key="string_interp_validation_modparsing_loadfailed_headerDoesNothing">This mod has a job header ({0}) in it's moddesc.ini that no values in add, replace, or remove descriptors. This header does effectively nothing and must be removed from the mod.</system:String>

<system:String x:Key="string_interp_validation_modparsing_loadfailed_canOnlyHaveOneBalanceChangesFile">This mod specifies that balance changes will be modified, but provides an invalid amount of files to install. BALANCE_CHANGES only supports 1 item in it's newfiles descriptor, however {0} were parsed.</system:String>

TLK Compilation error

There are significant errors in the TLK compilation. While the file is valid all the strings and randomly ordered. Of course this means that for ME2/3 any strings with higher ones above are not read.

Here is a sample, split-tlk.
tlk.zip

It compiles/decompiles correctly in MM5.

Mod Manager 6.2 Checklist

List of things hopefully planned for 6.2

User features

  • Diagnostics: Check for incompatible DLC setup
  • Diagnostic: Throw errors when seeing multiple same ASI
  • Updater Service: download all - Needs further testing!
  • Mod archive importing: Disable package compression if updatecode is specified
  • Mod Installer: Choose install target
  • Mod Installer: Support choosing compression
  • Have a way to show all of what will be installed to user. E.g. So they can see what files are going to be installed into basegame. So when they say 'any mod that touches... X' they can possibly tell. However, this will only be estimate as actual installation options are not calculated until installation commences and the installation queues are built
  • Updater Service: Check if existing file is in manifest before looking at decompressed data
  • Update Installation Information panel's ALOT section for new V4 possible configs

Developer features

  • Check if mod is in TPMI when deploying and advertise telemetry submission
  • Moddesc Editor
  • Moddesc 6.2: Support images in alternates
  • Support banner images for mods
  • Deployment: Choose validation target
  • _metacmm.txt: Store incompatible DLC
  • Deployment: Check for bad properties
  • Deployment: Support multiple mods (this will require significant overhaul of deployment and way of selecting multiple mods)

Internal changes

  • Rebase file handling backend onto ME3ExplorerCore
  • Switch to .NET 5
    - The app still ships on .NET Core 3.1 because AppCenter does not appear to be compatible with .NET 5 Single-file executables, which means I have no crash telemetry, which significantly crippled ability to fix bugs. The app is built and tested on .NET 5 but is built against .NET Core 3.1
  • _metacmm.txt: Options chosen at installation time
  • Remove GUI Compatibility Pack Generator + associated code
  • Updater Service: Disallow compressed package upload
  • Classic updater: Support rename operations by indexing all references instead of server references

Localization

  • Localize to INT

Todo

  • Steam game lookup before first run - Needs target switching and game launch testing
  • Update moddesc documentation

Something that will be done someday, maybe

  • Make new mod format for porting assets into existing file... ugh...

content updates

Content is just online updates. Such as refreshing latest items (tips, importing info, etc).

only used once, the other times "content" is used is to do with required DLC/Mods:

<system:String x:Key="string_Checkforcontentupdates">Check for content updates</system:String>

  1. why does this need an update button that's so prominent?
  2. also surely you fetch it automatically anyway, is this more than a debug option? if yes, user needs clearer name
  3. is there really no better name than content? supporting files, #29?

Minor: Cosmetic text issues

Minor issues with test build 105:

(1) When backing up the item being backed up shows: "string_basegame" or "string_movies"
(2) When building a manifest before uploading a mod to the server there is no space between "Building manifest" and the percentage eg "Building manifest10%"

Build 104 todo list

This is the todo list for ME3Tweaks Mod Manager 6.0 Preview 5, Build 104.

This build is currently soak testing and will be re-issued as bugs are reported before a wider release.

Features that are yet to be implemented

  • None

Mods planned for supporting

  • PEOM 1.5.2
  • Other ME2 specific items
  • Convert finalizer realistic gravity mixins to non-finalizer by changing RealTimeSeconds name entry to DefaultGravityZ and swapping the float value (this can be done at any time since this is serverside)

Bugs needing fixed

  • TPMI Submission - ALOV for ME3 is missing Optionals folder. - Fixed by some previous commit in 104, not sure which
  • Re-create realistic gravity mixin for MPCer3 as it breaks file. Issue is also present in ME3CMM, seems to be bad jsf file in mixin package on the server
  • Re-create realistic gravity mixin for MPCer as it doesn't seem to work in M3 or ME3CMM. Seems to be bad jsf
  • Handle corrupt archive files
    • May need to be revisited depending on when the error occurs. This should catch any issues when initially parsing the files, but we may have issues down the road when data is being extracted itself.

Features - In need of validation

  • Batch Installer
  • ME3Tweaks ModMaker
  • Updater Service Uploader for devs
  • Setup wizard
  • Import a mod from DLC directory
  • Filter in target info restore UI
  • Each game - tool to set what keys are used for the console
  • AutoTOC after files are restored (ME3) (only for restore all basegame files)
  • Mod updater system: ME3Tweaks ModMaker
  • Multilists for Basegame and Official DLC headers
  • Mod updater system: NexusMods whitelist
  • Backup nag system
  • Migrate settings from app data to programdata
  • Workaround for breaking change for TPMI ME3 mod imports that will fail to pass validation due to missing game attribute in builds 103 and below
  • Mixins (front end for new mods)
  • Escape pressing in usercontrols
  • Tooltips
  • Target Info: searchable basegame files

Features - Validated

  • Mod-Parsing: minsupportedbuild to prevent loading mods on same-version spec builds while spec is in development
  • Mixins (back end)
  • Multilists for CustomDLC - Tested on Priority Earth Overhaul Mod 1.5.2

Localizations

  • Localization pass: English
  • Localizer tool - needs validated
    • [ ] Support forks No longer necessary
    • Support local file saving and loading
  • [ ] Localize French, Polish, Spanish These languages are no longer supported
  • Update localizations from 103 -> 104: Russian, German

Documentation

  • Documentation for 103 (missing)
  • Documentation for 104

Deployment

  • Soak Test - In progress
  • Full Release

New mods supported
These mods will become available for importing and install once deployment goes to Full Release

  • ME2 No Mini Games - pending validation and server moddesc
  • ME2 Vignette Remover - pending validation and server moddesc

Moved to 105

  • Three Way Merge (backend is in 104)
  • Beta mode
  • Diagnostics in log
  • Mixins - Merge into existing mods
  • Migrate from ME3CMM automated procedure
  • Drag/Drop coalesced compiler
  • Drag/Drop TLK Compiler/ME3Exp TLK Editor Launcher (ME3Exp will have to be updated or TLK Editor ported)
  • Directly apply mixins

string_selectGameExecutable and related

<system:String x:Key="string_selectGameExecutable">Select game executable</system:String>

Let me precede this by saying that i'm not sure if this might be a non-issue in English.

From my experience, German users have no idea what "executable"/it's translated equivalent is. However if you speak of an ".exe (file)" it is usually clear to people.

Thus I suggest:

<system:String x:Key="string_selectGameExecutable">Wähle ausführbare Datei (.exe) des Spiels</system:String>

Update C# Implementation of JPatch

In September 2020, Joris Heirbaut released a new version of JojoDiff, which very lightly altered the diff file format. While old patches will work on the new application tool, new diffs will not work on the old code. The implementation changes are as follows:

Hi,
The only change is that the ESC-MOD sequence is now the default when a new operation sequence is needed 
(at the start of a file or after an EQL, DEL or BKT operation). It's a small efficiency gain of 2 bytes, but also simplifies the code.
Thank's for using jdiff !
Best regards,
Joris Heirbaut

The JPatch.cs implementation I wrote needs to be updated to account for these so I can leverage the updated patch files, as the new diffing algorithm seems to be more efficient.

string_nexusModsDirections

<system:String x:Key="string_nexusModsDirections">You can have Mod Manager automatically fetch an API key by logging into your NexusMods account. Click "Authenticate with NexusMods" below and authorize ME3Tweaks Mod Manager. You can manually authorize by pasting your NexusMods API key in after checking "Manual enter API key".</system:String>

should match

<system:String x:Key="string_manuallyEnterAPIKey">Manually enter API key</system:String>

In fact, maybe you can introduce a way to use placeholders for these kinds of references.

ME3Tweaks Mod Manager 6.1.4 Build 112 Changelog

This a minor update that adds three features and improves/fixes others.

New features

  • Update notifications can now be localized. These will only take effect once you've updated to the build, and if they are available. If they aren't available, it will fallback to English
  • You can now unlink backups from the Backup Creator window. This will make the app no longer think you have a backup for a game
  • When no mods are in the library, the mod library list is now replaced with text, explaining the mod library and a few other parts of Mod Manager

Changed features

  • Backups will now check for leftover files from a texture installation and fail to backup if any are found
  • When downloading a tool the version number is now shown

Bugfixes

  • Taskbar previews should now look correct, as I am using the native taskbar integrations rather than the poor excuse WPF has for one
  • App shouldn't crash if Windows doesn't think there's a taskbar (e.g. explorer.exe was not running)

ALOT Installer V4 option was removed from the interface (through a server side update), as V4 is now the primary download in Mod Manager, so there was no need to keep the old one available.

string_installationTarget

see also many related strings.

The term of "(installation) target" makes sense if you have a certain knowledge of what's going on, but might be confusing otherwise. Most people will have one "target" per game at most.

How do other mod managers handle this?

Are there existing ideas? Did CreeperLava have a suggestion?

Mod Manager 6.1.2 Build 110 changelog

This is a bugfix release and improves compatibility with ALOT Installer v4.

New features

  • AutoLODs have been changed to 2K/4K option rather than just one option, to work properly with upcoming ALOT Installer release
  • Localizations can now be updated independently of a build. New strings can't be added, but existing ones can be changed or missing ones from non-int can be added
  • "Flighting" support is implemented, which allows me to control what features are available and visible. I have a new feature ready for flighting (testing), but a bit more work needs to be done outside of Mod Manager before the feature can be turned on. Once the work is done this feature will be enabled

Changed features

  • ASI handling has been entirely rewritten. This should fix multiple issues relating to ASI installation. The user interface won't change but the backend code is entirely redone, with test cases
  • Operations during diagnostic are now logged
  • Mod deployments will no longer compress .bik or .tfc files
  • Basegame file telemetry is not submitted for modmaker mods
  • Diagnostics support MassEffectModderGui versions > 421. Older versions of M3 will not have fully functioning diagnostics once a new release of MEMNoGui is released as it will not be compatible

Bugfixes

  • Linking a backup will no longer check if there is space to make a backup, since it already exists on disk
  • Unpacked file detection is improved a bit
  • ME1 vanilla database updated with 2 new french-localization specific files (... for int...? demiurge???)
  • Fixed a few things that depend on server manifest such as mixins that may not update/download/run as they wouldn't think the server manifest had loaded

Changelog for Build 106

Build 106 is mostly a bugfix and QOL release.

New features

  • Added 'check all mods for updates' option in Mod Management
  • Installation Information/Modified SFARs tab now has option to restore only SP or MP SFARs
  • Hold 'shift' when deleting an installed DLC mod to bypass the confirmation dialog
  • Alternate DLC 'DLCRequirements' now supports official task headers as items in the list

Changed features

  • Restoring SFARs will now do them serially instead of in parallel
  • Installed DLC mods are now ordered by human name rather than DLC folder name
  • Logged many more areas where things could cause problems: ObjectInfos failing to load, failed to download moddesc.ini, etc
  • Added settings.ini option: WebclientTimeout
  • GameTarget objects don't try to load if the directory doesn't exist, which should clean up the logs a bit

Bugfixes

  • Fix ModMaker Compiler crashing the application if your backup is of a single-language edition of ME3
  • Build system was fully updated to .NET Core 3.1 which hopefully will fully stamp out the partially deleted appdata issue
  • Fix issue where app may crash if the ASI manifest cannot be cached

Cross-Platform Work?

Was just wondering if it would be possible to make ME3Tweaks cross-platform with Linux by using Godot as a front-end and adapting the backend for native support for Linux Proton users of the trilogy?

MODDESC: Have an CND_ALWAYS operation

As a modder building complex mods with lots of potential options, I would like to be able to put items that are not optional as always installed in the ModDesc. The tick should not be able to be changed and be auto applied.

For example:
Ark Mod has many parts - the Paladin mission, and 5 different hazard maps. If in future other people want to use the MP resources kit or enemies or just untick every other part of the mod, they see what is installing.

image

ME3Tweaks(.com)

As discussed and partially implemented, when referring to an action concerning the me3tweaks.com website, the network-related character of this action should be indicated by adding .com to ME3Tweaks.

  • choose stylization: me3tweaks.com or ME3Tweaks.com
  • implement consistently and optimally in all localizations

I'd prefer the latter stylization.

Build 109 changelog

This is a bugfix release from the previous version, with many improvements to localization.

This build is soak testing. Not all users will receive this update.

Note: The GUI Compatibility Pack Generator is no longer required for the mods it was originally designed for and will be removed in a future update.

New features

  • New language supported: Brazilian Portuguese

Changed features

  • Localization for german is now up to date
  • Conflict detector now sorts files by filename

Bugfixes

  • ME3CMM migration (only was live for a few users)
    • Fix mod migration
    • Now can install redirection shim so your old shortcuts will continue to work
    • Fix alotinstaller/mem/me3explorer being moved to their new locations and then subsequently deleted in a later migration step
  • Fix some telemetry data not being sent about how much initial language is being set on first boot
  • Reduce crashes in some areas with try/catch. This won't fix the side effects (such as binkw32 not installing) but it will stop a crash
  • Fixed the bottom left 'background task engine' strings not showing the current task. This would often occur if a mod update check occurred on boot and would say 'checking write permissions' for an extended period of time rather than 'checking mods for updates'
  • Added many missing localization strings for all languages
  • Fixed a lot of localization interpolations
  • Fixed external tools (me3explorer, alot installer, etc) saving archive to the wrong directory, which would then subsequently cause them to not be deleted on app exit
  • Launching EGMSettings will now pass the game path

make file lists searchable

allow searching/filtering in the target info/modified files tab(s)

eg: enter .bik to only show modified biks

might also be relevant for other lists (mod lib, asi plugins?)

M3

Most of the time, "Mod Manager" is used to refer to this program. This is what is in the program's title bar, on the website, and on nexus. However there are 7 occurrences of "M3" as of now (plus some internally for string designations). This should be cleared up.

Build 103 todo list

The following items need to be completed before build 103 can be published.

Localizations

  • Localizations for French, Polish
    • Russian: Done!
    • German: Done!
  • Localize remaining unlocalized files
  • Localize tips service strings
    • Russian: Done!
    • German: Done!

Features

  • Handle ME3 logger - ensure only one version is installed
  • Find place to put "Endorse ME3Tweaks Mod Manager ME1/ME2/ME3"
  • Calculate required space to import mod as multiple crashes have been logged due to not enough disk space
  • Calculate required space to install a mod as multiple crashes have been logged due to not enough disk space

Testing

  • Test check/uncheck all mods
  • Test NexusMods integration (need testers to do this as I cannot endorse my own mods)
    • Needs some fixes but not blocking. Will be done in Build 104.
  • Test Alt Grouping
  • Test Mass Effect INI Modder
  • Test ASI Manager
  • Test all UIs for localization strings being incorrect/wrong substitutions
  • Test RCW mods (.me2mod)
    • Follow up testing: Additional bonus powers crashes M3 on install due to capitalization not correct in me2mod
  • Test offline/bad network connection behavior

Serverside

  • Update Tips Service on server
  • Make server definitions for JAM

Deployment

  • Soak test 103

ME3Tweaks Mod Manager 6.0.2 Build 107 Changelog

Build 107 fixes a few bugs in the program, as well as adding

New features

  • Experimental feature: Compress mod packages on import
    • This is an experimental feature that only works if ME3Tweaks server responds with it being allowed at app bootup. Otherwise, this feature is disabled by default due to its potential to break package files. When importing a mod from an archive, packages will be compressed, which will save disk space. This features only works for ME2 and ME3
  • Backup Creator can link to an existing game copy. The copy will be validated the same as the target would be and be set as the backup
  • ME3Explorer - ME3Tweaks Fork Nightlies are now available as a modding tool in the Tools menu. The nightly builds are built after every commit and have the most bleeding edge features. Opening the tool this way will automatically download newer versions when you launch it

Changed features

  • The UI library that is used to skin the program was updated. The notable difference is that the scrollbars will look different and the progressbar animation has been fixed to not have the animation when the progress is indeterminate
  • Balance changes ASI was updated to v3, which doesn't depend on zlib1.dll. This will fix ModMaker mods since zlib1.dll wasn't shipped with M3 by accident
  • Startup is faster because NexusMods login no longer blocks startup
  • Holding SHIFT and deleting custom DLC, restoring DLC and restoring basegame files will bypass the confirmation dialog, assuming there's no warnings
  • More logging
  • More tooltips
  • When trying to copy a directory (which is used on things like backup, restore, mod install), if an unauthorized exception is encountered, it will prompt for admin. This is an experimental change
  • Backup Creator: Block ability to create backups in the Documents/BioWare/ folders
  • When a backup is shown as invalid due to DLC mods being installed, the TPMI name (mod name through lookup) will also show up to explain it
  • 'Prepare for updater service' has been renamed to 'Upload to updater service'
  • Deploying a mod to 7z will now check to see if any _metacmm.txt files are present and will throw an error if one is found. These files should not be shipped in mods

Bugfixes

  • The ObjectInfo files (Package Information Database) will now be hash checked before loading. This will help fix some crashes when generating a GUI Compatibility pack
  • Prevent application crash if mixin package isn't available and modmaker compiler is run that uses mixins from the mixin package
  • Show message if static assets fail to download to indicate something is wrong. The code to show this dialog was not reachable as the exception that would trigger it was swallowed by the enclosing method
  • Package files being installed to the TESTPATCH DLC are no longer checked against the ALOT block. ALOT does not modify TESTPATCH and no TESTPATCH files have texture references so installing them after ALOT is OK
  • Updater Service compression step forces garbage collection after compressing a file to reduce memory overhead
  • Diagnostics: Case insensitive official DLC check. If for some reason you think it's a good idea to rename your official DLC folders (it's not) this will make them still appear as official in the diagnostics UI
  • Fix ugly ALOT icon in the tools menu due to poor scaling method
  • Backup space required for backup is now 10% more than actual space vs 5% due to many users consuming that 5% space in the time it takes to make the backup
  • Fix ASIs not installing if asi subdirectory did not exist (Thanks to Bunnyboy05 for reporting issue)
  • Fix ME1 DLC mods not being created correctly due to wrong value in AutoLoad.ini (Thanks to 55tumbl for reporting issue)
  • Fix TLK Compiler/Decompiler not being localized

Alternate logic can break out of DLC folder siloing

A malformed (or malicious) moddesc.ini that has installation routines outside of it's scoped DLC folder can install files outside of it's mod and into other mods. Mod Manager partially protects against this currently by identifying mod folder targets and wiping them out before install. However, it should prevent alternate logic from installing outside of the designated task headers, e.g. basegame should not allow touching DLC, alternates should not be able to escape their siloed job, custom dlc alternates should be forced to remain in scope of their listed dlc folders.

Full game restore over ALOT should remove GamerSettings.ini changes

As a user of M3 I want to fully restore a game that has previously had ALOT installed, and make sure ALOT's changes to graphical settings are also removed.

The various LOD changes that ALOT adds should be removed, otherwise you open the game subsequently and everything goes a bit pear shaped and weird.

Game restore utility does not delete TexturesMEM*.tfc files

As reported via Discord:

Summary

Game backup utility allows existing TexturesMEM*.tfc files to be backed up. These files then remain in the game directory, which triggers a warning for the ALOT V4 installer leaving them after a restore and causing ALOT v4 installer to detect modded files and fail to install textures.

Background

When using the preview version of the ALOT v4 installer for ME2, a warning modal appears telling the user that their game files have been modified and must be rolled back to a vanilla state, even when starting from a backup created via ME3Tweaks MM. Attempting the same operation using the v3 installer produces no such warning and textures are applied without issue.

@Mgamerz provided instructions to check for TexturesMEM*.tfc files in the Mass Effect 2/Biogame/CookedPC folder for .tfc files, which produced these results:
image

Problems identified

  • Original ME3Tweaks MM backup/restore utility for ME2/ME3 should not back up existing TexturesMEM*.tfc files present in the game directory during the backup operation.
  • ALOT v3 installer fails to detect the presence of any TexturesMEM*.tfc files (which should not exist, to allow a clean texture installation). It allows the user to mistakenly proceed with installing textures.

The game runs successfully without any problems on my system even after using the v3 installer, but that is not a valid test since it's an early playthrough and problems could appear later on.

Version information

  • ALOT 3.0.587.5615
  • ME3Tweaks Mod Manager 6.1.3, Build 111
  • Windows 10 Home build 19041.572
  • AMD Ryzen 7 3700X, 32 GB DDR

UPDATE: edited issue description to clear up confusion that it's the initial backup operation that has a problem, not the restoring of a game directory.

ME3Tweaks Mod Manager 6.1.3 Build 111 changelog

This is a small bugfix update that contains improvements to the application updater.

New features

  • The application updater can now make use of delta updates that I build to bridge versions of the application from one to another. So instead of updating and downloading a 55MB archive, a 2MB patch is downloaded and applied to the application instead, yielding the same result. This should drastically reduce the size of updates. If the update fails through this method, or there is no patch available to bridge your version to the updated version, it falls back to doing a normal style update. Patch updates will only be available from the previous version to the next, and between the same version's bugfix re-releases, e.g. build 111 will not be ale to update to build 113.

Changed features

  • Localizations are improved, as many were missing in build 110

Bugfixes

  • Don't throw exception when setting 2K LODs to ME2, ME3. In some instances this could cause crash at startup due to another bug
  • Do not set lods at startup
  • Fix restoring unpacked SFARs to packed versions. Previously if sfar was 32 bytes it wouldn't restore the SFAR
  • Fix very rare crash where the Windows acts like there is no taskbar and thus the app crashed trying to set the progress state on the taskbar
  • Fix crash at end of ME3CMM migration due to dialog opening when there is no window to center to
  • ASI Manager: Catch condition where github or me3tweaks is blocked (like in china) and prevent crash due to socket exception

October 8 Update

  • Fix update showing that updater executable could not be found
  • Update JPatch implementation to support latest JoJoDiff delta format
  • Update the vanilla database to account for a new version of Nemesis SFX AFC (ME3) that was recently found
  • Add RUS localization

Suggestion: INI layering or diffs

Problem

Mods that make changes to configuration files currently need to include a full copy of the files they change. This means they're incompatible with each other. If a user wants to use more than one mod that changes the same file, they need to manually merge the contents of the two files.

Proposed solution

Allow mods to provide a partial INI file, containing only the keys they want to modify. This program would handle overwriting the specific keys and values provided in those files without changing the other values.

Mods could also be expected to provide a different format (in case something like JSON was easier to deserialize and parse), as long as the program ended up writing the correctly formatted INI file to the config directory.

Use cases

As a user / player of the Mass Effect games, it would be really nice to be able to apply multiple small patches to INI configuration files without doing the manual work of tracking down what changed and trying to merge changes from a couple of different items.

As a developer, it would be great to be able to say "this mod is fully compatible with other config mods that don't mess with the key [key name]."

Examples

ME1Controller, Improved MAKO, and Gameplay Overhaul all modify BioGame.ini.

ME1Controller and Skip Dialogue Without Choosing Answer both modify BioInput.ini. The latter is explicitly flagged "only works with ME1Controller" because it used the former mod's config file as a base; what if I want to use KB&M controls and apply the Skip Dialogue mod?

static files

"Mod Manager components" is more descriptive and relevant than just "files".
Here you use "supporting files":

<system:String x:Key="string_dialogCouldNotDownloadStaticAssets">Could not download static supporting files to ME3Tweaks Mod Manager. Mod Manager may be unstable due to these files not being present. Ensure you are able to connect to Github.com so these assets may be downloaded.</system:String>

Out of curiosity, which ones are the static files anyway? Got to do with "content updates"?

prompt to choose mod library directoy on first launch

Don't wanna fill up user's system ssd with redundant mod copies.

Need to find a balance between "put this in your Documents" for write access and "put this somewhere appropriate for storage".

Maybe something along the lines of "if you have an ssd as system disk and an additonal hdd then choose somewhere on the hdd" should be added to the guide anyway.

It is my understanding that there is a mechanism to gain write access in place, this could also be applied to mod library directory if necessary.

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.