Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Discuss and distribute tools and methods for modding. Moderator - Grognak
Grognak
Posts: 172
Joined: Tue Sep 18, 2012 9:42 pm

Re: Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Postby Grognak » Thu Mar 07, 2013 8:17 pm

It depends on python being on the path; apparently the python installer doesn't do that automatically. :?

For the next version I'll also check to see if C: or D:\python* exists as well.
Vhati
Posts: 792
Joined: Thu Oct 25, 2012 12:01 pm

Re: Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Postby Vhati » Thu Mar 07, 2013 8:56 pm

Grognak wrote:It depends on python being on the path; apparently the python installer doesn't do that automatically. :?

For the next version I'll also check to see if C: or D:\python* exists as well.
Yeah, I set PATH when I tested...

There's the registry too (I'm surprised the exe didn't check that):
HKCU?\...
HKLM\Software\Python\PythonCore\{2.5, 2.6, 2.7, etc}\InstallPath
HKLM\Software\Wow6432Node\Python\PythonCore\*.*\InstallPath

Best scanned last to allow user-overrides like PATH.


If the runtime finding has to be written in python, I can share some code for that.
Forte
Posts: 15
Joined: Thu Feb 28, 2013 10:53 am

Re: Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Postby Forte » Fri Mar 08, 2013 12:21 am

I dont get how to install this when i extract the files they just appear on my desktop how do i do this?
UltraMantis
Posts: 2141
Joined: Thu Sep 20, 2012 3:17 pm

Re: Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Postby UltraMantis » Fri Mar 08, 2013 1:25 am

Extract the files to your FTL folder. Maybe files are automatically unpacked to the desktop but you should be given an option to choose a folder. If you have trouble finding the FTL folder, right click on the FTL shortcut and select properties. The game folder will be listed there. Usually it's Program Files\... or steamapps\...
Report spam using the handy Report Button Mod.
Vhati
Posts: 792
Joined: Thu Oct 25, 2012 12:01 pm

Re: Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Postby Vhati » Fri Mar 08, 2013 3:12 am

Forte wrote:I dont get how to install this when i extract the files they just appear on my desktop how do i do this?
There is no installation (see readme.txt for usage). Put the folder wherever you like.
GMM has been able to run from any location since 1.6.

Older versions needed to be placed in the FTL directory.


*As mentioned a few posts earlier, double-click main.py to run the app.
The convenience launcher, modman.exe, is glitched in 1.7 but will be fixed in a later version. :roll:
snowhusky5
Posts: 37
Joined: Tue Jan 01, 2013 10:25 pm

Re: Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Postby snowhusky5 » Sat Mar 09, 2013 1:05 pm

Is there a way to uninstall mods?
User avatar
kartoFlane
Posts: 1488
Joined: Mon Jan 14, 2013 10:20 pm

Re: Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Postby kartoFlane » Sat Mar 09, 2013 2:10 pm

@snowhusky5
Yes, you have to unselect all mods, and then press the patch button.
Though, not sure why, sometimes it doesn't work (presumably if you delete the mod files prior to uninstalling it), and files stay in the archive, though they're not being used by the game.

@topic
Also, I have a suggestion for another merging functionality for the manager. Sometimes a mod only changes one element in a blueprint -- let's say in original blueprints.xml there is the following list:

Code: Select all

<blueprintList name="LIST">
  <name>ELEMENT_1</name>
  <name>ELEMENT_2</name>
</blueprintList>

And I've created a mod that modifies this list, but only adds one new element. Instead of copying the entire list into a blueprints.xml.append, we could do the following:

Code: Select all

<blueprintList name="LIST">
  <name>ELEMENT_3</name>
</blueprintList>

And save it as, say, blueprints.xml.add. The manager would copy the latest instance of the list in original file (to account for entries created via .append -- .add changes would be applied last, regardless of mod order) and paste it at the end of file, and then insert the new element.
This is a rather trivial example, but I think it would be extremely useful for more complicated blueprints and, most importantly, mod compatibility.
Superluminal2 - a ship editor for FTL
Vhati
Posts: 792
Joined: Thu Oct 25, 2012 12:01 pm

Re: Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Postby Vhati » Sat Mar 09, 2013 5:37 pm

kartoFlane wrote:@snowhusky5
Yes, you have to unselect all mods, and then press the patch button.
Though, not sure why, sometimes it doesn't work (presumably if you delete the mod files prior to uninstalling it), and files stay in the archive, though they're not being used by the game.
That should not be possible since 1.6. Every time patch is clicked, it starts with vanilla backups made the first time GMM ever ran. When no mods are selected, it merely copies the baks over the game's resources, effectively uninstalling all mods.

IIRC, earlier versions extracted into a reused unpack folder, which assumed every file there would be overwritten by vanilla files (filenames that mods added were allowed to accumulate).

kartoFlane wrote:@topic
Also, I have a suggestion for another merging functionality for the manager.

Post: Icehawk78's response to merging.
User avatar
kartoFlane
Posts: 1488
Joined: Mon Jan 14, 2013 10:20 pm

Re: Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Postby kartoFlane » Sat Mar 09, 2013 6:05 pm

Vhati wrote:Post: Icehawk78's response to merging.

Oh, haven't seen that post. So the point is that it's too ambiguous?
What I had in mind is the following (using blueprints from the linked post as an example):

Code: Select all

    <!-- Outcome -->
    <event name="FINISH_BEACON">
       <text>You've arrived at the Long-Range Beacon. When the FTL Drive is charged you can jump to the next Sector.</text>
       <choice hidden="true">
          <text>Continue...</text>
          <event load="NON_HOSTILE"/>
       </choice>
       <text>This is the end. Prepare yourself!</text>
       <choice hidden="true">
          <text>Continue...</text>
          <event />
       </choice>
       <choice hidden="true">
          <text>Pick a fight!</text>
          <event load="HOSTILE1"/>
       </choice>
       <choice hidden="true">
          <text>Go shopping!</text>
          <store />
       </choice>
    </event>

It wouldn't exactly merge the files, only paste the modded entries inside the blueprint - so that you have to take care of the nested structure yourself (that's why I opted to not use the word "merge").
If I recall correctly, the second <text> element would override the previous, similarily to how it happens with blueprints themselves. Choices would not be replaced, instead there would be two "Continue..." options available.

I don't know about the parser GMM uses, but after having worked with regexes for Superluminal, it seems fairly easy to achieve. Unless I'm still missing some important point :S
Superluminal2 - a ship editor for FTL
Vhati
Posts: 792
Joined: Thu Oct 25, 2012 12:01 pm

Re: Grognak's Mod Manager v1.7 (Updated March 6, 2013!)

Postby Vhati » Sat Mar 09, 2013 6:21 pm

kartoFlane wrote:It wouldn't exactly merge the files, only paste the modded entries inside the blueprint - so that you have to take care of the nested structure yourself (that's why I opted to not use the word "merge").
You're proposing one block of xml be mixed into another block of xml. That is merging. And an app that did that would have to recognize which parts to 'paste', and which are instructions to control pasting, and it shouldn't make assumptions based on the content (blueprintList, eventList, sectorDescription, need to be treated a certain way, etc).

kartoFlane wrote:I don't know about the parser GMM uses
GMM has no parser, which is how it tolerates all the errors. It just appends the text from one file onto another. 1.7 does it semi-intelligently by stripping xml declarations and UTF-8 BOM binary if present, and reencodes the combined text as BOM-less UTF-8 with normalized newlines and a new xml declaration. But it knows nothing of xml structure.


Edit:: The Validate button does use Python's "xml.parsers.expat" but only to report how a standard xml parser fails. First, the validate function throws a bunch of regexes at a document: when typical problem patterns are matched, a message is printed and the document is preemptively corrected. Then the parser is the final sink-or-swim test: it gives up at the first typo it sees.

I wouldn't want to introduce those regexes into the patching process however. If their attempts to 'fix' get out of hand and break a diagnostic report, no harm is done.