Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make the patcher copy folders that have a certain named pattern #926

Open
snouz opened this issue Oct 18, 2024 · 44 comments
Open

Make the patcher copy folders that have a certain named pattern #926

snouz opened this issue Oct 18, 2024 · 44 comments
Labels

Comments

@snouz
Copy link
Collaborator

snouz commented Oct 18, 2024

My idea is that if you add a specific name in an integrated folder, for example MoguriMain_integrated, the patcher would automatically copy it to FFIX, and remove the "_integrated" in the name

image

This would allow projects that want to bundle Memoria to just have the patcher in their zip, and clicking it would copy their own projects there, with minimal human intervention (no need to find the right folder, extract...)

@barkermn01
Copy link
Contributor

it would also need to update the memoria.ini file, but should be possible, I would look at possibly using an archive type setup with multiple mod folders inside it so people can create mod pack installers?

Would you like me to look into it?

@faospark
Copy link
Contributor

faospark commented Oct 19, 2024

This would allow projects that want to bundle Memoria to just have the patcher in their zip, and clicking it would copy their own projects there, with minimal human intervention (no need to find the right folder, extract...)

why bundle patcher though ? can it not be a bat file ?

@barkermn01
Copy link
Contributor

why bundle patcher though ? can it not be a bat file ?

a .bat file is not trusted by anyone but people who know how to read them, and even less so by Anti-Viruses when they are downloading &/ extracting files. it does not look very complete does opening up command prompts we have a loverly UI when using it why not make a nice UI for setup, and if people want to build mod packs give them the ability to within having janky hacked together things.

So to support a .bat we would still have to code into the patcher for the bat file to invoke it because there is no way the .bat file is writing a datastore file with options set inside it. then since we would have to be coding a proper solution anyway might as well get it in line with the new styles and make it feal uniform.

@snouz
Copy link
Collaborator Author

snouz commented Oct 20, 2024

This would allow projects that want to bundle Memoria to just have the patcher in their zip, and clicking it would copy their own projects there, with minimal human intervention (no need to find the right folder, extract...)

why bundle patcher though ? can it not be a bat file ?

I don"t see the added value of a bat file, when memoria patcher is already moving and copying files around by itself?

@faospark
Copy link
Contributor

faospark commented Oct 21, 2024

why bundle patcher though ? can it not be a bat file ?

a .bat file is not trusted by anyone but people who know how to read them, and even less so by Anti-Viruses when they are downloading &/ extracting files. it does not look very complete does opening up command prompts we have a loverly UI when using it why not make a nice UI for setup, and if people want to build mod packs give them the ability to within having janky hacked together things.

So to support a .bat we would still have to code into the patcher for the bat file to invoke it because there is no way the .bat file is writing a datastore file with options set inside it. then since we would have to be coding a proper solution anyway might as well get it in line with the new styles and make it feal uniform.

perhaps i did not phrase my response that well. i understand you point. i thought the idea was much more like case use for small projects. :)

@faospark
Copy link
Contributor

This would allow projects that want to bundle Memoria to just have the patcher in their zip, and clicking it would copy their own projects there, with minimal human intervention (no need to find the right folder, extract...)

why bundle patcher though ? can it not be a bat file ?

I don"t see the added value of a bat file, when memoria patcher is already moving and copying files around by itself?

Noted. I didn"t mean to suggest that a batch file is an alternative to your idea. Rather, my thought process was this: if a modder has a project or mod and simply wants to inject or transfer its contents directly into the game root, it"s not that difficult to automate with a batch file. This is part of my own workflow for my mods, but it seems that"s not the case here, so let me elaborate.

A few thoughts come to mind:

First, is there a real use case for bundling Memoria"s patcher (the main installer) with someone’s project? Not long ago, Moguri had an installer with a version of Memoria, TheMighty bundled Memoria with his project, and Echo-S had its own installer linking to the patcher. However, having multiple patchers with the same name across different projects might confuse users. This could partly explain why Memoria, despite being both the engine and mod manager, is still relatively obscure. Over-all its weird that The Patcher is included in mods.. Say for example, can you imagine something like the 7th Heaven installer being bundled with another project....

Another point is that it might undermine the mod catalog unless the catalog itself is on the way out. Bundling patchers with individual mods could lead to modders and users neglecting the catalog altogether. A modder could easily package their mod with a patcher, and users might prefer these bundled mods out of convenience, bypassing the catalog entirely.

Lastly, there’s the potential for bad actors. Someone could repackage existing mods, make slight changes, and release it under a different name—perhaps even call it something like “FF9: Remake” in another language. This ecosystem, including the mod catalog and Nexus, is vulnerable to this. A person could bundle several mods into one folder, set the memoria.ini to read-only, and configure the game to skip the launcher altogether. They wouldn"t even need the official installer since it’s already included. Furthermore, say for example, another voice mod that is not echo-s and shall remain nameless... does this.

Don’t get me wrong—I’m just thinking about the possibilities this opens up. I could be wrong, but we should consider whether this would truly be beneficial or if it risks opening Pandora’s box. While it may work well for a few projects, it also provides an easy path for those with bad intentions.

@barkermn01
Copy link
Contributor

barkermn01 commented Oct 22, 2024

@faospark you raise some very good points,

is there a real use case for bundling Memoria"s patcher (the main installer) with someone’s project,

My aim is to ensure that our installer is used exclusively, regardless of the project. Although this is a long-term goal, the first version will simply be a setup

Not long ago, Moguri had an installer with a version of Memoria, TheMighty bundled Memoria with his project, and Echo-S had its own installer linking to the patcher

This is another reason to standardize our installer to avoid confusion. Regardless of the mod being shipped, the Memoria installer should always be our official installer signed the same way we sign the patcher now.

Another point is that it might undermine the mod catalog unless the catalog itself is on the way out.

Hopefully not because the mod manager should still attempt to update mods even if installed via the installer, helping to reduce this risk,

There are some aspects that are beyond our control within the Modding community. Whether or not a mod manager is used, people can still download manually and add malicious code to mods a trick users into installing the modified version, including utilizing batch files. If someone distributes a compromised version of Memoria, we can’t completely prevent it. However, my proposal aims to mitigate this risk. By having a uniform installer that attempts to download a signed version when online, similar to how the patcher is currently signed, we can help prevent malicious modifications. Our installer will pull from our GitHub Releases.

My master plan

Please note these are just my initial idea"s on what i would like I"m working with @SamsamTS and @snouz to build this the way we all think is the correct way we might stop and never hit stage 3 i don"t know yet.

Stage 1)
Build a setup tool that checks if it"s online if so download and use the latest patcher from this GitHub Repo,

Stage 2)
Add support for mods to be shipped with the setup file (Memoria_Setup_Mods folder) with a instructions file, (JSON example for ease) i may turn it into a binary file format with some verification to stop people just tampering with the files.

{
"mods":[
   {
       "name":"Alternate Fantasy 9",
       "folder": "af9"
   }
]
}

The installer will check for Memoria_Setup_Mods/af9 folder will copy it to the Memoria install location named Alternate Fantasy 9, add the folder to the memoria.ini file that will also be shipped in the installer for if offline or downloaded from GitHub if it"s online.

Stage 3)
Check the catalogue for the mod name, and the ID, verify them maybe even have a hash tree of the files inside the mod folder.

  • if it"s not there warn people your installing a mod that is not part of the catalogue only do this if you trust the creator,
  • if not online warn them that mods can"t be verified make sure they trust the creator.
  • if they are online and the mod is found in the catalogue then download it from the catalogue. This also means people creating installers like Moguri, Echo-S ect don"t have to build a new installer Everytime they update there mod or Memoria update the installer will do it. Tsunamods Installer actually downloaded the Memoria.Patcher from GitHub it was @SamsamTS who built it but it broken when we moved to using a Signed Installer
  • Create a tool within Memoria that generates the necessary files for a repack. This tool would prompt users to select from their list of installed mods, then then build the setup package accordingly.

I hope this clears up any confusion and makes it clear I"m trying my best to make this as secure as possible.

@faospark
Copy link
Contributor

Thank you for responding @barkermn01, much appreciated. Don’t get me wrong, I see the intent is good, but I also think it"s necessary to ask the hard questions. So here we go.

At this point, the installer is pretty much standardized. It has been for a while—it’s just that past devs tended to treat it as a dependency rather than what it actually is: The Engine, Launcher, and Mod Manager.

The confusion didn’t arise because there were multiple installers; it occurred because projects treated Memoria as a side dependency and prioritized their own project names. We are now working with a much more capable tool compared to before. To give an example, look at the 7th Heaven mod manager (which also installs FFNx). Out of the 124 mods published on Nexus for Final Fantasy VII, not one contains an installer for the 7th Heaven mod manager. Instead, they ask you to download the manager and install it separately.

Which leads to my first rhetorical question: Why are we even allowing the patcher to look like a minor dependency and not the main requirement for the mods? I think you’ve provided an answer, but it complicates things just to get one result.

The modding paradigm is straightforward: if a mod manager exists, you download and install it first. Then, you download mods from any source and install them according to the mod manager’s rules. For all intents and purposes, the proposed idea is exactly the same as what some mods have done with their installers—just possibly without the .exe. It’s essentially an installer for a project, regardless of how anyone wants to complicate it. It feels like a step back, not forward, in my humble opinion.

Upon your further elaboration, @barkermn01, I see this is for a very specific use case, which I appreciate you revealing.

... This also means people creating installers like Moguri, Echo-S ect don"t have to build a new installer Everytime they update there mod or Memoria update the installer will do it...

First, I personally think @snouz would not want to revert to a separate installer, given the amount of time and effort they had to invest in packaging Moguri along with its other two components, plus setting up download services for it to be compliant and downloadable via the mod manager. Unless I’m wrong, I don’t see that happening.

Now, returning to the matter at hand: Since no other mods in the catalog, Nexus, or general Final Fantasy IX modding ecosystem come with an installer, we’re left with just one—Echo-S. So, here’s s question: Is it impossible for this project to be bundled as a Memoria Mod Package? It’s just a zip file with the required files. If it has other dependencies, you can still use your installer and just instruct people to ensure they have the latest Memoria installed—like the case of any other mod that uses a manager. Isn’t that the simpler approach?

I hope I don’t come across as antagonistic. If we are going to objectively assess the situation, we are trying to create a solution to a predicament that isn’t necessarily a Memoria problem.

Are we willing to add layers of complexity now and in the future, rather than simply ask people to install the latest version of Memoria and the voice mod on top of it?

This is also adding another layer where the entire Memoria project will adjust specifically for one project. It will create complications, as elaborated, with featured mods being assigned IDs for integrity checks, requiring an almost always-online system just to verify if a mod is featured or not.

If you guys aren’t busy, I’d also like to hear the thoughts of @Tirlititi and @Albeoris on this.

@SamsamTS
Copy link
Contributor

SamsamTS commented Oct 23, 2024

At this point, the installer is pretty much standardized. It has been for a while—it’s just that past devs tended to treat it as a dependency rather than what it actually is: The Engine, Launcher, and Mod Manager.

Amen to that. Let Memoria be the mod manager it"s meant to be. I said it before but I"ll say it again here, I"m against letting people distribute Memoria with their own projects. I"m in favor of having one and unique official source for Memoria.

Now something I"ve been thinking that could be good to make manual installation easier (in case downloading from the manager is not a possibility, which is the case for some people) is to have the launcher accept drag and drops. People would just have to drop the archive of the mod directly onto the launcher window and the mod would be installed and activated automatically.

@Tirlititi
Copy link
Collaborator

Agreed with faospark, and Samsam"s idea of drag-and-drop, which can also be useful in some situations.

@firehawkx
Copy link

firehawkx commented Oct 23, 2024

Having co-created AtmaWeapon (mod installer for FF6), I agree with the previous few messages that it is usually way easier for casual users to just have a single mod manager/installer... Of course advanced user that really do not want to use it can always do everything manually - but changing the patcher to allow for distribution of a single mod with just a tiny part while excluding the manager itself seems to be opening the door to a lot more abuse and confusion -- and I think it will ultimately confuse the more casual players that would have otherwise enjoyed having the mod installer many optional choices.

@barkermn01
Copy link
Contributor

barkermn01 commented Oct 23, 2024

Well to start with here is the basic installer, it required the new Patcher, so currently i have the patcher and the installer on my Repo for people to test with. i have a draft PR, but i had already done most of the work for this hence it"s here. feedback would be nice.

https://github.com/barkermn01/Memoria/releases/tag/test

If we"re all happy with it i will update change stuff to use this repo ready for release.

@barkermn01 barkermn01 mentioned this issue Oct 23, 2024
3 tasks
@Albeoris
Copy link
Owner

To make this discussion less holy war-like, I’d suggest starting with a very brief description of usage scenarios, commonly known as User Stories.

As I understand it, there are currently two:

  1. The user installs Memoria using its installer, then enables the desired mods and downloads them from Internet.
  2. The user downloads a specific mod installer, installs it and all "dependencies" like Memoria.

Then, I’d consider the issues we face:

  1. When using the Memoria installer, mod installation is spread across two steps. This requires an Internet connection, several clicks in different places, and knowledge of where to click. This increases the entry barrier, making it difficult for some players to use. Without Internet access, the user has to deal with multiple files—installer, mods—and manually install them. But this approach motivates contributing to Memoria and create mods integrated into it.

  2. When using a mod installer, we get diverse and often incompatible installation processes, outdated components, and potential security risks. However, the entire installation is streamlined with a straightforward Next -> Next -> Next approach and is completed in a single run, without needing to enable anything manually. This approach motivates developers to create their mods, popularize them, and collect donations.

Memoria.Patcher works well as an installer for Memoria"s core, but not for additional modifications for the reasons outlined above.

I fully agree that new mods should promote Memoria as the engine and help expand the player and mod maker community using it. However, I also believe that installing large-scale mods should not be more complicated than Next -> Next -> Next.

The plan described by @barkermn01 seems to address both problems if we integrate mod selection and the installation process.

The user downloads an "installer" or "launcher," runs it, selects the installation directory, and, on the next page, checks the desired mods.
We could provide both an online version, which displays an online catalog, and an offline version, where mods are loaded from a local directory, with the installer showing a warning if the directory is unavailable (as barkermn01 suggested). Configuration files in this directory could specify which mods are enabled by default. This would allow authors of large mods to preselect their preferred mods for users and create their own bundles, but all would still use the same Memoria installer.
And of course, it should support reusability - I could install a clean Memoria, then add a few mods and install them, later download an Echo-S package, and ultimately achieve the same state as if I had selected everything in the launcher after installing clean Memoria.

Local catalog can be like:

\Memoria\
  \ Memoria.exe
  \ Content
    \ Mods
      \ Alternate Fantasy
        \ enabled
      \ Echo-S
        \ default.cfg
        \ enabled

I believe this approach would address all the issues.
If desired, we can also make this directory a storage for all modified files, and instead of creating directories in the game folder, create hard-links to folders with mods inside it when launching the game via Memoria.exe

What do you think?

@SamsamTS
Copy link
Contributor

SamsamTS commented Nov 15, 2024

With the new drag and drop feature I recently added, manual installation is a lot easier now. The two situations I can see are

  1. The user can install mods directly from the catalog, all is well.
  2. The user cannot use the catalog for some reason or another. He can just download the mod(s) separately, drag n" drop on it/them on the launcher window and it/they"ll be installed and enabled. Really easy.

@faospark
Copy link
Contributor

faospark commented Nov 15, 2024

@Albeoris i appreciate the response .
Ill clarify this one

The user installs Memoria using its installer, then enables the desired mods and downloads them from Internet.
The user downloads a specific mod installer, installs it and all "dependencies" like Memoria.

currently Memoria is now a mod manager so the true scenarios are

  • install Memoria Patcher , installs featured mods from the mod manager and activate on the mod manager
  • install Memoria Patcher , downloads mods from Nexusmod or other locations, extract on game root and activate via mod manager.

Addendum :
SamsamTS"s further makes it easy for the second item mentioned above .

Now what is proposed on this issue raised it to make another pathway but more like and exemption if would be more direct.
in my opinion We should let Memoria Mod manager do it its thing... install and manage mods.

@Albeoris
Copy link
Owner

I mean something like:

image

  1. You always run Memoria.exe
  2. You can make a mod pack and distribute it, but users will still run Memoria.exe
  3. You can install it locally without internet access if you downloaded all the necessary mods in advance.
  4. If the online mod catalog is available, you can get a new version, even if the build contains an old version.
  5. If the mod author made his own build, but did not register his mod in the catalog, users will receive a warning that this is a third-party mod, and this will motivate mod authors to register their mods in the catalog.
  6. If the modifications selected by the author of the package are not installed, the installer window will appear. If they are installed, the Launcher will open immediately.

@SamsamTS
Copy link
Contributor

For security reasons having mods distributing an exe is a very bad idea. I"d rather they don"t.

@Albeoris
Copy link
Owner

Albeoris commented Nov 16, 2024

For security reasons having mods distributing an exe is a very bad idea. I"d rather they don"t.

@SamsamTS , why, if it will be our signed Memoria.exe installer?
The only thing they can do is add their mod archives to the Content folder.

@SamsamTS
Copy link
Contributor

SamsamTS commented Nov 16, 2024

There is no guaranty it"s our signed installer they are distributing. The code source is available, a malicious person can compile their own version and distribute it. Having the installer distributed from one unique official source is better for safety or at the very least for peace of mind. I don"t want to encourage modders to distribute our installer.

Now if all they are distributing is the Content folder, I"m fine with it. They most likely will zip it in some manner for distribution anyway and I find the drag and drop on the launcher more convenient than unzipping next to the installer and running it.

Also if people start getting a virus from some malicious installer we don"t want people accusing us for putting it in.

@Albeoris
Copy link
Owner

There is no guaranty it"s our signed installer they are distributing.

The same thing that is happening now with Memoria.Patcher.exe, you can also make a malicious self-extracting archive, or your own installer, or simply distribute a virus named Memoria.exe

The code source is available, a malicious person can compile their own version and distribute it.

No, he won"t be able to, since we will have a signed installer.
And the fact that users ignore warnings that they have an unsigned executable file, you can"t fix it.

That is, I understand your concerns, but I don"t understand how they relate to the problems described here.
If the author wants to distribute his mod through his installer, you can"t limit him in this.
The only thing you can do is give them a Memoria.exe build that doesn"t require recompilation and solves his problems.

Now if all they are distributing is the Content folder, I"m fine with it.

Yes, that"s the idea.

I find the drag and drop on the launcher more convenient than unzipping next to the installer and running it.

To do this you need to do 2 actions - install Mod Manager, install the mod.
Why, if you can select the mods to install together with the launch of Mod Manager?

Also if people start getting a virus from some malicious installer we don"t want people accusing us for putting it in.

This is solved by downloading the mod from our catalog and checking the checksums if it is delivered locally. If the checksum does not match or the mod is not in the catalog, we will display a large warning about this, warning the user that this is done at their own risk.

Like:

  • A new version of the mod is available, are you sure you want to install the old one?
  • The content of the local version of the mod differs from the content registered in the mod catalog. This may indicate that the archive is damaged or infected. Are you sure you want to install it?
  • The local version of the mod is not registered in the mod catalog. We cannot validate it, the archive may be damaged, outdated or infected. Are you sure you want to install this mod?

@SamsamTS
Copy link
Contributor

SamsamTS commented Nov 16, 2024

No, he won"t be able to, since we will have a signed installer.

I do it all the time with the patcher. Nothing has ever stopped me from compiling it. Memoria as a precedent of not being signed, people will run the unsigned patcher.

To do this you need to do 2 actions - install Mod Manager, install the mod.

That"s the modding procedure for many other games. I don"t really see much utility to be able to select the mods before rather than after installing the mod manager. It"s either select the mods to install, then install the manager, or install the manager then select the mods.

For quite a while people were using an old version of memoria because a popular mod was distributing it. You have to realize that once people start distributing our exe, we lose control of it, we can"t ever force them (the people distributing) to update it.

Now if you guys really want to go that direction I won"t try to stop you but I still think it"s a bad idea, no matter how many precautions you take.

@Albeoris
Copy link
Owner

Albeoris commented Nov 16, 2024

I do it all the time with the patcher. Nothing has ever stopped me from compiling it. Memoria as a precedent of not being signed, people will run the unsigned patcher.

And we can"t do anything about it. :)

That"s the modding procedure for many other games.

And this case is already covered by the built-in Mod Manager.

The problem is when you install the "product" and not the "mod". For example, the authors made a Polish localization with voice acting for characters, and distribute their package under the name "Polish voice acting for Final Fantasy IX".

Now it will be a custom PolishVoices.exe, but we can make it with the same Memoria.exe, in the Content folder of which \Mods\PolishVoices.zip is located. At the same time, this will not interfere with the security and compatibility of mods.

TL;DR;
I totally agree that Memoria.exe should be the only installer and Mod Manager, its existence in any modpack should ensure the PR of Memoria Engine.

But I don"t see any reason why we can"t give the opportunity to those who want to make such modpacks, if it doesn"t create any downsides.

@SamsamTS
Copy link
Contributor

Something I might do, regardless if we do an installer or not, is extend the drag and drop functionality to support mod packs. Zip all desired mods and a preset (optional) together and there, your mod pack is done.

In fact I was thinking, if a preset includes mods, the launcher should check if they are installed and ask to install those that are not if they exist in the catalog. That way people can just share their preset, acting like a mod pack. (Drag and drop for presets is already implemented).

image

@faospark
Copy link
Contributor

faospark commented Nov 16, 2024

I totally agree that Memoria.exe should be the only installer and Mod Manager, its existence in any modpack should ensure the PR of Memoria Engine.

Everyone here agrees this was the goal. As mod contributors, we"re promoting Memoria to gain more recognition as the engine/launcher/mod manager. Unfortunately, 60-70% of people who play FFIX with mods refer to the launcher and manager as Moguri, not Memoria. Kudos to Snouz for bundling Moguri as a mod, but we still have to inform users and content creators that it"s Memoria making this possible, not Moguri. It has not even been a year since the move was made But here we are already like allowing for another Mod to have pathway where in principle the mod is just treating Memoria like an inconvenient thing you need to install simply because the mod creators dont want to tell people users the need to install Memoria first...so they disguised it as a mod pack ?

But I don"t see any reason why we can"t give the opportunity to those who want to make such modpacks, if it doesn"t create any downsides.

Well there is plenty of things to consider. In line with my previous points, Instead of requiring the mod in question to follow the same standards as other mods, we are effectively giving it special treatment by creating a unique pathway for it. This opens the door for mods that directly compete with or replace those in the mod manager to gain an unfair advantage—they can easily outperform those in the catalog because they are simplified for the user, who only needs to download the mod without even considering Memoria. While it’s not certain this will happen, the possibility is there.

1, This approach could have significant downsides. For example, a mod developed by an independent creator in the catalog could be easily overshadowed by one supported by a large modding group. If that mod is bundled in a mod pack with direct installation, users are unlikely to explore other alternatives in the catalog, even if they exist.
2, In that sense this could render the catalog obsolete, as any modding group could simply create a comprehensive replacement set of mods and or packs, sidestepping the catalog entirely.
3.The mod manager does not make sense. I mean what is the point of being in the catalog if i can just bundle my mod to have a patcher in it ? or have it be part of a modpack of a larger group ?

Furthermore, if this change moves forward, it shifts the perspective on what’s permissible. If Echo-S can leverage this flexibility, then all mods should be able to as well. As mod creators, we also need to compete for visibility and downloads. Currently, there’s already a layer of complexity in adding mods to the catalog; in fact, many of us create two versions of our mods—one with a direct link and another for alternative sites like NexusMods. Speaking with other contributors, I find that the general sentiment is that they would prefer a direct link to NexusMods, as downloads there offer some return. While being featured in the mod manager is valuable and serves as a form of endorsement, many contributors would appreciate more options that simplify this process.
if we are making it easy for one then it should be applied to everyone else... However, the thing that will suffer is Memoria. its recognition and function as a mod manager cause it will be down the drain.
Being part of the mod catalog means nothing.
Maintaining the mod catalog means nothing.

Instead of simplifying how we look on this we need to look deeper implications of this down the line.

@barkermn01
Copy link
Contributor

barkermn01 commented Nov 17, 2024

The patcher has signature detection because it needs to work when signed we could well add that to the installer source code however as @SamsamTS pointed out currently that"s not much people could build there own by taking out that code. so an option is to make the installer executable closed source and place it in a private GitHub repository with limited access and proper control of merges nothing get"s merged without having review & approval from multiple members. We could also implement our own signing system for the Content folder, which would be archived and signed using a non-public signature. This would result in the following file structure:

File tree:

 - Installer.exe (Signed with a verified public key, E.G like we"re currently doing for the patcher)
 - content.archive (signed with a Memoria specific public key)
   \- mods.xml (contains list of mods packages and wether or not to have them enabled by default in installer)
   \- Mods
      \- Alternate Fantasy
      \- Echo-S
      \- Moguri

\- = inside the archive.

This would then mean nobody is modifying the mod"s files in the installer and nobody could modify the installer.

The main reason for an installer is that the command line scares the majority of people, and rightly so, given the potential risks with terminal scripts. As a head of IT, I specifically teach non-technical staff and get told by gov department that i have to teach people to be cautious of command line windows, especially after downloading or plugging something in.

Additionally, if we’re building an installer, we should aim to eliminate the need for mod creators to create their own installers. Our tools should make it simple to build an installer without requiring additional software configuration (making mod creators more likely to use it).

While we can’t stop modders from doing what they want, we can encourage safer practices. There will always be inherent security risks in mods for end users, but lowering that risk is beneficial.

I do want to address some of @faospark"s comments directly because i think these points are a little biased to a specific problem / point of view that always happens and there is not much we can do about it.

1, This approach could have significant downsides. For example, a mod developed by an independent creator in the catalog could be easily overshadowed by one supported by a large modding group. If that mod is bundled in a mod pack with direct installation, users are unlikely to explore other alternatives in the catalog, even if they exist.

Yes, but this happens regardless of the platform, whether it’s Nexus Mods, CurseForge or 7th Heaven. Higher-ranked or publicised mods naturally rise to the top. However, with our system, we don’t have mod ranking, so users are more likely to explore the catalog when searching for specific mods and might find alternatives. Mod pack creators tend to include the best mods they’ve found, not just the most popular ones. While some people will still choose popular mods, passionate communities will curate what they believe works best, Without rankings. where as no pack and users have to install on there own, mods with larger user bases are more likely to be used simply because they’re more well-known and publicized online. look at Moguri after @snouz"s release, Explicitly uses Memoria to install and still the article writer mixed stuff up between Memoria and Moguri (and that is a level of user that"s supposed to be competent), These mod packs might actually help smaller mods grow faster.

2, In that sense this could render the catalog obsolete, as any modding group could simply create a comprehensive replacement set of mods and or packs, sidestepping the catalog entirely.

Nexus and Curse client"s people start with mod packs then think oh but is there something that can do this... and then start looking and adding there own mods to there mod pack starting location, mod packs are an awesome way to get people into the modding scene, yes some people might never move on from only mod packs but a lot of people learn the power and start to experiment, i also think the new designs for the launcher help encourage this the Mod Manager button stands out.

3.The mod manager does not make sense. I mean what is the point of being in the catalog if i can just bundle my mod to have a patcher in it ? or have it be part of a modpack of a larger group ?

This is exactly the point. With this method, the mod manager would always be present unless mod creators explicitly remove it through a more complex process. If the installer is online, it could pull the complete catalog and import it into the installer. The installer I’ve created is a custom C# application, so we can code it to do exactly what we want, rather than being limited by an installer creation tool.

Another point i want to add here after chatting with people, is this source code is MIT not GPL mod creators have no requirements to tell users they are using any form of Memoria, just that there has to be the copywrite notice or licence file shipped with it that"s it. but this is also what allows us to make the installer closed source we don"t have to distribute the source code back to the public repo.

@faospark
Copy link
Contributor

faospark commented Nov 17, 2024

Thank you for answering @barkermn01 and appreciate it .
It pretty obvious that proposition of request is not necessarily Make the patcher copy folders that have a certain named pattern .
it really just boils down to the specific case you intend it be... it"s understandable you need to put echo-s out
there. we all get it
But we are saying here is why cant it be just another mod ... BUT you refuse to answer that.

I will not say anything more about this discussion. I yield the decision to Tir and Albeoris.
and with that i"d rather help my fellow mod contributors existing and past to consider publishing their mods to their convenience.
for us Nexusmod contributors. it a lot easier for us to settle for this.
Screenshot_167

@barkermn01
Copy link
Contributor

barkermn01 commented Nov 17, 2024

Thank you for answering @barkermn01 and appreciate it . It pretty obvious that proposition of request is not necessarily Make the patcher copy folders that have a certain named pattern . it really just boils down to the specific case you intend it be... it"s understandable you need to put echo-s out there. we all get it But we are saying here is why cant it be just another mod ... BUT you refuse to answer that.

I will not say anything more about this discussion. I yield the decision to Tir and Albeoris. and with that i"d rather help my fellow mod contributors existing and past to consider publishing their mods to their convenience. for us Nexusmod contributors. it a lot easier for us to settle for this.

No part of what I’m proposing is specifically for Echo-S. What I’m suggesting is that any mod creator, or even any user using Memoria, would be able to implement this. While I work as part of the Tsunamods team, I strongly believe in the open-source mindset and am against tailoring open-source projects for a single project or team. If that were my intention, I would have created a private fork of Memoria specifically for Tsunamods, but that goes against the principles of open source and my personal beliefs in this matter, which is the very reason I dislike Apple.

Even when I was working on the initial setup for Echo-S, I ensured it was open to everyone, which is why it was named VoiceActing and not EchoS in the source code (It"s also why i strive to make sure stuff is documented an not only in my head). So, please don’t accuse me of favoritism. My examples, while some include Echo-S, all have include Alternate Fantasy, which has nothing to do with Tsunamods. This proposal aims to benefit everyone by allowing them to create a mod pack that showcases their mod in the best light (they can have multiple versions, a clean install exe that installs everything you will need from fresh install to using the mod your downloading, download a zip for manual instillations or drag and drop instillation, or hopefully download a .ff9 and it will be double clickable to install). We all know that over 90% of mod creators’ mod packs will use Moguri, which again has nothing to do with the Tsunamods team.

Additionally, I want to highlight that currently "the modding community" lacks a standardized approach to installations. You have said several times “it’s standard for users…”. I don’t know how many or few games you have modded, but there is nothing standard about any of this. Some games require you to put files in specific locations and they just work, others require modifications to the raw binary files some systems allow you to double-click to install, while others require you to follow very specific instructions for mods to work, and some use Steam Workshop. These are just the main methods, so please stop misleading us about what a user expects as standard. The fact is, each game’s modding community creates the standard for that game. For Final Fantasy IX, that is the Memoria Community, and that’s the point of this discussion.

I’m also very confused by what you’re showing in Nexus there, notice right below your selected menu, “Mods,” there is “Collections,” which are mod packs. This is one of only two references to Nexus I was making, the second being that the rating system on Nexus biases people towards more popular mods. No part of what we’re suggesting here will prevent this. In fact, SamSam and I have been discussing implementing an IRO-style double-click-to-install file type that would easily work alongside this.

What has been proposed here by both me and @Albeoris is an installer that, on its own offline, will only install Memoria. If it’s online, it will download and install the latest version of Memoria, then give users the option to install any mod in the catalog at the same time. If offline and it has local mod files, it will allow users to install those mod versions because it can. No part of this will prevent any other mod install method support by Memoria. FFS, I only just upgraded that mod install method to support more archive types. @SamsamTS only just updated it to support drag-and-dropping, and now we’re talking about adding some archive type with file extension .ff9 to be double-click and auto-installed by Memoria. SO STOP JUMPING TO CONCLUSIONS then having ago at me for your assumptions/conclusion that are not true. We’re not talking about disabling any part of how it currently works. just about adding more methods to make it easier for more users allowing mod creators to get more users onboard easier, it gives them all the tools it"s just it has set it up so it will work out the gate for them, they don"t have to try and fiddle with the software to play the game with a mod.

@faospark
Copy link
Contributor

faospark commented Nov 18, 2024

All roads lead to Echo-S with this proposal. Remember, the original description of this issue had the words ALLOW TEAMS to do this. Snouz edited it out, but I saw it, and there"s only one mod currently maintained by a large team with its own installation method—at least via their website. We can do the math; and it maths.

I understand I won"t be able to change your mind. This method could have benefited me greatly when I had the largest mod in terms of scope, but I had to divide it into eight parts as requested. I see the point: it’s more beneficial for the end user, allowing the mod manager to be the mod manager. Just like the Moguri components, which are no longer bundled in one installation file but as separate mods, this is a step towards letting the mod manager handle its intended role. Most of us here thinks it stepping back to what you want to do here. probably i"m the only one who has the courage to say it out loud .

Nothing personal man, proceed with your plans; I won’t stop you. I’ve communicated my thoughts to practically everyone here directly.

@Albeoris
Copy link
Owner

Albeoris commented Nov 22, 2024

We could also implement our own signing system for the Content folder, which would be archived and signed using a non-public signature.

@barkermn01 , GitHub Actions has a secrets mechanism that allows you to store private signing keys in public repositories. These will be used when executing Actions, but only a limited number of people will be able to edit them. I strongly recommend you to avoid any kind of private repos.

Nothing personal man, proceed with your plans; I won’t stop you. I’ve communicated my thoughts to practically everyone here directly.

@faospark , do we still have any disagreements?
It seemed to me that a single signed installer with the ability to supply mod packages (@SamsamTS) satisfies all desires, am I wrong?

If it’s online, it will download and install the latest version of Memoria, then give users the option to install any mod in the catalog at the same time.

This removes all concerns about safety, doesn"t it?

But here we are already like allowing for another Mod to have pathway where in principle the mod is just treating Memoria like an inconvenient thing you need to install simply because the mod creators dont want to tell people users the need to install Memoria first...so they disguised it as a mod pack ?

Is there any problem with this if the Installer is named Memoria.exe? It will allow you to install mods, but it will not allow you to change the Memoria core, launcher, installer itself, etc. The only thing a third-party mod maker can do is to assemble a collection of recommended mods, nothing more. In doing so, he also must register his mod in the catalog, otherwise, during online installation, his mod will be highlighted as untrusted and not recommended for installation.

@faospark
Copy link
Contributor

faospark commented Nov 23, 2024

@faospark , do we still have any disagreements? It seemed to me that a single signed installer with the ability to supply mod packages (@SamsamTS) satisfies all desires, am I wrong?

l stand by my position, but I do respect your opinion @Albeoris. I just wanted to communicate that it"s a setback. After all that hard work establishing Memoria as the go-to mod manager for this game, it did not even last a year. Haha! Obviously, I can"t stop people from doing what they want to do .Memoria holds a unique position—it"s not just the engine, but also the mod manager and launcher. Given that it"s dedicated to managing mods for a specific game, it should be installed first on its own and shouldn"t be bundled with someone else’s project. I cant name another Game Specific Mod manager that does the functionality proposed above.
Addendum : do proceed though

@Albeoris
Copy link
Owner

Given that it"s dedicated to managing mods for a specific game, it should be installed first on its own and shouldn"t be bundled with someone else’s project.

Semi-off-topic: what do you think about one-click installer in Nexus Mods / Vortex?

I can share my experience - the last time I played Skyrim, I installed only those mods that have Vortex integration and can be installed in one click. I ignored all mods that require manual installation. So if I were making a new mod for Final Fantasy IX, I would try to make it integrated with Vortex. And for that I would need to ship Memoria, either as a dependency or as a Vortex plugin for integration with the game. In both cases, Memoria fades into the background at the moment of mod installation, which contradicts your vision.

I remember about the easy way to install mods by dragging and dropping archives with mods, but it is still not click-once.

In this regard, the question - should we support click-once installation of mods through third-party mod catalogs, such as Nexus Mods or Steam Workshop?
If so, how does this agree with your views.
If not, how should we replace the functionality they provide (PR, virus scanning, etc.)?

@faospark
Copy link
Contributor

You already have drag and drop feature at this point.
What ever im going to say .... you guys are not listen gonna proceed anyway .
Glad @Tirlititi @SamsamTS and i or the same page at least and that is enough for me.
Go Proceed with your plans.

@barkermn01
Copy link
Contributor

barkermn01 commented Nov 30, 2024

Fine, if you’re completely against any installer, then I’m left with no choice but to create one for Tsunamods. Many users won’t trust a CLI Unpacker, and without a Memoria GUI installer, I have to make one for Tsunamods users. Your stubbornness has forced my hand to do something none of us wanted: create a standalone installer for a specific modding group. A CLI installer won’t work for the general user base that will come with Echo-S. We faced the same issue with Echo-S 7 demo, which is why the Tsunamods team adopted 7th Heaven and created an installer for it. Argue all you want, but I have the facts. You haven’t released a mod that caused over 20 TB of downloads in less than two weeks; we have, and I have the knowledge from that.

All I’ve done is try to address what I thought were genuine concerns, but it turns out you’re just throwing anything at the wall to make any justification stick. All I want at this point is a GUI installer for Memoria, using Memoria’s GitHub, so teams don’t have to create their own installers and ship them. This way, users will feel comfortable using an installer, and the Memoria team can control it, not individual mod creators.

I"m now done on this topic im unsubscribing if you lot decide your happy for a basic installer as i have already built the core for, someone can DM me on Discord, outside of that im done dealing with the idiotic arguments going on in here.

@faospark
Copy link
Contributor

for the record i literally said Proceed 3 times on this thread . ill leave it at that.

@SamsamTS
Copy link
Contributor

I don"t think anybody would be against having a GUI for the patcher, I don"t recall anyone saying it should remain CLI.

What I would want:

  • A GUI for Memoria patcher
  • Only to be distributed on this Github
  • Modders only distribute archives, no exe
  • Possibly add a file association (.ff9 or something) so modders can just change the extension from .zip (or whatever archive format) to .ff9 and double clicking it would install it. We already have the drag and drop so this is not strictly necessary. We might need admin privileges to add the file association which would also scare users.

This is no different than for FF7, people have to install 7th Heaven first.

Can we at the minimum work on a GUI for the patcher? Thumbs up if you agree.

@julianxhokaxhiu
Copy link

julianxhokaxhiu commented Dec 1, 2024

Sorry if I jump on this discussion but it caught my interest as the main co-author of 7th Heaven, and now Junction VIII, which share both the same philosophy.

I agree with @barkermn01 that an installer would help users to get Memoria in place, in fact I was personally confused as well the first time i was trying to use it with Steam, Not that the process is complex but it requires those 2-3 steps which are not really "user friendly". It"s not about standards ( as Martin highlighted, there are no standard in the modding community unfortunately ), but about improving the user experience.

Now, seeing the comment from @SamsamTS I think that"s the best trade off you might get here. To make everyone happy in this discussion, I"d suggest having an approach like we do for 7th/J8/FFNx would be the best ( which in your case is even easier as you"re "one stop solution" for FF9 ), and placing yourself in the center of the modding community as the way to go for every mod that uses your engine to enable itself to "run on top of FF9" would benefit everyone actually: trust from the users, empowered for modders, two-way communication between you and your user base ( be users or modders ).

Last but not least, @faospark Tsunamods in general has NEVER been about favoritism, quite the opposite, we"ve always had the motto to share whatever we do and our collective was born with a very opposite direction compared to other modding scenes, we like to share code, ideas, reverse engineering findings and standardize the best we can approaches to empower everyone who"s willing to make mods on top of the engines, yet working close with the Echo-S team as first consumer of this approach however we never bend our products to their needs, more likely trying to find how we can make them happy while making everyone happy. So accusing anyone of our members, including @barkermn01 it"s not really fair. As an example, when I joined personally the FF7 modding scene on Qhimm in 2019 it was completely different compared to what you see today. It took us a long 5y journey to be where are we today, and we would like to empower really every project out there, including Memoria, to be as important as any other product we work on ( be a tool, a modding platform, modding manager or mods ).

Hope this clears the air a bit, I love what you"re doing here and please keep going. Don"t let such small discussion to distract you from the real end goal: provide the best platform for modding FF9. Put the swords down, and use the energy instead to improve FF9 in all possible directions. You are all a very talented team, don"t let this fragment you.

@SamsamTS
Copy link
Contributor

SamsamTS commented Dec 1, 2024

I agree with @barkermn01 that an installer would help users to get Memoria in place, in fact I was personally confused as well the first time i was trying to use it with Steam, Not that the process is complex but it requires those 2-3 steps which are not really "user friendly". It"s not about standards ( as Martin highlighted, there are no standard in the modding community unfortunately ), but about improving the user experience.

I"m not following you, there is an installer for Memoria (we call it patcher but that"s really the same thing), there is only one step to install Memoria: run the patcher and you are done (if it can find the game folder, which can be an issue with Steam not setting the registry key correctly sometimes).

Now it can really benefit from a GUI, especially to be able to choose the game folder (set to the registry key by default). Nobody is arguing against that. I just don"t want modders to distribute the patcher/installer.

@julianxhokaxhiu
Copy link

I"m not following you, there is an installer for Memoria (we call it patcher but that"s really the same thing), there is only one step to install Memoria: run the patcher and you are done (if it can find the game folder, which can be an issue with Steam not setting the registry key correctly sometimes).

Yeah I remember about that, but it"s practically a CLI window showing up which is friendly to devs but to users is like "ok what is going on here", despite all the good intentions. My bad, I missed to mention this part.

Now it can really benefit from a GUI, especially to be able to choose the game folder (set to the registry key by default). Nobody is arguing against that. I just don"t want modders to distribute the patcher/installer.

I absolutely agree with this, from my own point of view people must download Memoria from only trusted distribution sources you all choose as a team, and mods can then be installed via the catalog ( and other ways to call the mod manager via URL hints for eg. ). But we"re on the same page here, I"m also not a fan of modders distributing either FFNx or 7th/J8 with their mods, would create a massive support overhead which we would not be able to sustain in the long term.

@barkermn01
Copy link
Contributor

barkermn01 commented Dec 1, 2024

This is my plan moving forward. If you have any issues or suggestions with this, please post it clearly with details as to why you think changes are needed. And your suggestion around it.

1: For the third time, please check the GUI installer I made and asked for feedback for back on October 23rd. Download it, use it, are there issues outside of design and being outdated? If no, good. We"ll implement it. Problem solved. #926 (comment)

2: We create the .ff9 filetype I mentioned and @SamsamTS seems to agree. This will allow users to just simply double click a mod, or drag and drop it on to Memoria and have it auto install. This prevents any mod creator from distributing any virus" with their mods and keeps out userbase safe (by exploiting an archive extraction exploit yet to come out). And couldn"t be easier to use even for people that are not tech savvy.

3: No mod creator will distribute parts of Memoria or a Specific versions of the Patcher, (like Moguri and Tsunamods previously did) . With the .ff9 filetype existing, the need for mod specific installers becomes pointless because all they have to do is double click it and it does it itself. This wont be needed anymore because everything is already as simple as it can be. Only trusted sources should be used to install Memoria. We could put in the Readme of this Repo and in the app window for creating the .ff9 file if your going to distribute Memoria it must be using the link "https://github.com/Albeoris/Memoria/releases/latest/download/Memoria.Installer.exe" Mods can contain a readme with a link to the github if needed. Or websites contain a button that takes them to the github page. we can police this with catalog mods, because when we add them to the catalog we can check. maybe include in the LISENCE file something along the lines of "if you fork to create a different distribution you are not allowed to use the Memoria name to prevent confusion."

Please respond professionally, without any more attacking, and please stay on topic.
If any replies are not about the actual issues that we face presently. I will be ignoring them

I do need to highlight some stuff.

  • Only to be distributed on this Github
  • Modders only distribute archives, no exe

We can"t ever actually control that the best we can do is the installer we give forces it to use our patcher and the latest version of it, hopefully deterring people from distributing a specific patcher even if they distribute our installer it will try to be the latest version of the patcher from this repo.

Possibly add a file association (.ff9 or something) so modders can just change the extension from .zip (or whatever archive format) to .ff9 and double clicking it would install it. We already have the drag and drop so this is not strictly necessary. We might need admin privileges to add the file association which would also scare users.

I would say this is much better if the drag and drop only supports .ff9 files, it"s a bit risky allowing anyone to say just drop "this.zip" into the mod system it might be away for a virus to sneak though because it"s not in the catalog or packaged by Memoria it"s self where as a .ff9 package could be much like the UI in 7th heaven that creates IRO files.

@faospark
Copy link
Contributor

faospark commented Dec 2, 2024

Last but not least, @faospark Tsunamods in general has NEVER been about favoritism....

I’m already in direct communication with Tsuna, and we’ve discussed this matter. Thank you for your insights, but i"ve decided to move forward. :)

Addendum
@julianxhokaxhiu, suffice it to say, the use of the word "teams" in the original description raised suspicions. Additionally, this proposal seems to primarily benefit Echo-S, as recent discussions have made clear, even though it’s presented as being for everyone. I believe it’s fair to ask difficult questions, especially when the direction being taken feels not quite right.

To clarify, there is no active mod with an executable or Memoria in it—there’s just one mod maintained by a single team. It’s not difficult to piece things together. For the record, I do want Echo-S to be released. We all want a voice mod for this game. However, it should be packaged like any other mod, and it absolutely can be packaged like any other mod. Unfortunately, it’s quite clear that’s not what this proposal is aiming for. In fact, even the name of this thread doesn’t accurately reflect the changes being proposed for Memoria..

I"m not following you, there is an installer for Memoria (we call it patcher but that"s really the same thing), there is only one step to install Memoria: run the patcher and you are done
Now it can really benefit from a GUI, especially to be able to choose the game folder (set to the registry key by default).

Nobody is arguing against that. I just don"t want modders to distribute the patcher/installer.
I second this especially the last part. I think that"s where most people agree

"this.zip" into the mod system it might be away for a virus to sneak though

Currently, the mod sources are limited to Nexus, and the mod catalog. The purpose of the drag-and-drop feature is not only to simplify installation but also to bridge the gap between catalog-listed mods and those not featured in the catalog. In fact, its primary focus is to make non-catalog mods more accessible.

@SamsamTS
Copy link
Contributor

SamsamTS commented Dec 2, 2024

In order to clear up some possible confusion with the name patcher/installer. I believe we agree what we want is a single exe, with a GUI, that will install Memoria (and nothing else). We can call it installer from now on if you"d like. And I"m in favor of having it check and download if a newer version exists on the github.

I would say this is much better if the drag and drop only supports .ff9 files, it"s a bit risky allowing anyone to say just drop "this.zip" into the mod system it might be away for a virus to sneak though because it"s not in the catalog or packaged by Memoria it"s self where as a .ff9 package could be much like the UI in 7th heaven that creates IRO files.

I want to clarify that the drag and drop doesn"t accept just any zip, it checks if it"s a mod first. We can further extend this by checking if there are any exe in it and what not.

I do want a file association. However I"m not really in favor to create a specific file format, that creates a lot of friction for the modders, in my opinion, for very little benefits. I heard some people hating the IRO file type specifically. For me just having to change the extension to .ff9 is simple enough and allows us to make the file association so for the user it"s a simple double click. Not to mention anti-virus theses day will scan archives, not sure about a homebrew file format.

@barkermn01
Copy link
Contributor

barkermn01 commented Dec 2, 2024

I"m mostly ignoring @faospark now. Quite frankly, my personal view is that they should be blocked from the repo outright because they have lied about the actions of a contributor who has put a lot of work into this project, not once but twice.

the use of the word "teams" in the original description raised suspicions.
#926 (comment)
the original description of this issue had the words ALLOW TEAMS to do this. Snouz edited it out,
#926 (comment)

For everyone here, if a title is changed on GitHub, it leaves a line stating so, e.g.:
Title / Issue Name Change Example

if anyone changes the body of a boxed content (even the initial opener of the issue), it shows "edited" with a drop-down arrow to see the old versions:
Body Change Example

The issue I have used for these examples is from one of my other repos:
barkermn01/TwitchBotManager#4

@snouz never said anything about "for teams" in this issue claiming so is an outright provable lie. It has not been removed as @faospark has alleged twice. If it had, we would be able to see it in the history. Lying about a highly active & productive contributor is, in my view, unacceptable.

@saftle
Copy link

saftle commented Dec 2, 2024

Hello everyone. Just finished reading through the thread. I just wanted to pop in and say regardless of what is decided, Moogles & Mods will back the decision that you all make. Even if @faospark is on the moderation team, their will be no bias for the decision that is made in regards to the community or to moderation. The server will always be your playground and is for you mod developers and for the users enjoying the mods.

Basically, I just wanted to make sure that you all know, that you and the community will always come first before anything else. Also to say that disagreements are temporary in the grand scheme of things. The community that we build now, can and will outlast all of us, since the games will still exist after we are gone. Also all mod developers can be very passionate about these games and our work, and sometimes that clouds our ability to get on the same page, even if we are already on the same page sometimes without realizing it. :P.

Anyways, take care of yourselves, and thanks for being so passionate about the games that we all love.

@faospark
Copy link
Contributor

faospark commented Dec 2, 2024

i respect your words. saftle. Moogles and Mods are out of this convo. Im acting my own accord.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

9 participants