[RELz] mlox, a tool for anolyzing and sorting your load orde

Post » Sat May 28, 2011 5:42 pm

http://code.google.com/p/mlox/downloads/list
(Windows exe version is standalone, the Python version requires http://planetelderscrolls.gamespy.com/View.php?view=OblivionUtilities.Detail&id=52560&id=44)
(Please download both mlox and mlox-data distribution archives from the download page)
(read all about mlox on the http://code.google.com/p/mlox/wiki/Mlox)

http://www.gamesas.com/bgsforums/index.php?showtopic=938026&hl=

mlox is now in Beta!

mlox is a tool for anolyzing and sorting your plugin load order.

It runs on a simple little rule-based engine with a small set of rules that specify the order, conflict and pre-requisite relationships between your plugins.

mlox tidbit: did you know that the "Morrowind Patch Project" (MPP) obsoletes at least 74 older plugins for various bugfixes? mlox knows, and it can tell you if you've loaded an obsolete plugin.

Features

* runs on Windows or Linux :)
* optimally reorders your load order to avoid known problems, where "optimally" is relative to the quality and coverage of the rule-base. (Currently the rule-base still needs some work, of course, but it continues to improve, thanks to the help of others).
* warns about missing pre-requisites
* warns about plugin conflicts
* prints notes for things you might want to know about a mod, but were too lazy to read the Readme, or even find the info in some post somewhere in the Internets :)
* user customizable via a rules file. Just create an mlox_user.txt in your mlox directory, and start adding your own rules.
* can also check someone else's load list from a file: "mlox.py -wf Morrowind.ini" (or just paste the list of plugins into the Active plugins pane of the GUI. mlox understands the format of the [Game Files] section of Morrowind.ini, as well as the output of Wrye Mash and Reorder Mods++)

Here are links to the current documentation (they're just text files):
http://code.google.com/p/mlox/source/browse/trunk/mlox/mlox_readme.txt - introduction, installation and usage
http://code.google.com/p/mlox/source/browse/trunk/mlox/mlox_rules_guide.txt - how to write rules for the rule-base, if you want to customize
http://code.google.com/p/mlox/source/browse/trunk/mlox/mlox_guts.txt - technical details, for the curious

If mlox appeals to you and if you can help contribute to the rule-base, please send your contributions to me, and I'll post a new rule-base as soon as I can.

Your feedback is appreciated.
Thanks!

Since examples make great illustrations, here's the output of running mlox on a plugin list that was posted to the gamesas forums:
[NOTE] > 'Ald-Vendras_V3-LoKKen.esp' | ! An upgraded version (v3.1) of Ald Vendras is available: | ! http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=3523[REQUIRES] !!!'Assassins Armory - Arrows.esp' Requires: > [ANY >   'MISSING(AreaEffectArrows.esp)', >   'MISSING(AreaEffectArrows XB Edition.esp)', >   'MISSING(Clean Official Plugins v1.1.esp)', >   'MISSING(OfficialMods_v5.esp)'] | "Assassins Armory - Arrows.esp" requires the AreaEffectArrows plugin | (Ref: "Assassin's Armory readme.doc") | [Note that you may see this message if you have an older version of one | of the pre-requisites. In that case, it is suggested that you upgrade | to the newer version].[PATCH] !!'MISSING(Assassins Armory - Unofficial Patch 7.7.esp)' for: 'Assassins Armory.esm' | "Assassins Armory - Unofficial Patch 7.7" is a patch for a couple small glitches in Assassin's Armory. It's available here: | http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=644 | (Ref: "readme_AssassinsArmoryUnofficialPatch_7_7.txt")[PATCH] !!'MISSING(BY_Patch_L1.5.esp)' for: 'Beyond YsGramor v2.5.esm' | (Ref: "BY_Patch_ReadmeL1.5.txt")[NOTE] > 'TheBlackMill.esp' | ! TheBlackMill.esp is updated by TheBlackMill11.esp | ! ( http://www.elricm.com/nuke/html/modules.php?op=modload&name=Downloads&file=index&req=viewdownloaddetails&lid=3141 )[PATCH] !!'MISSING(BR_Werewolf_Patch.esp)' for: 'Blasphemous Revenants.esp' | BR_Werewolf_Patch.esp is an available optional patch for Blasphemous Revenants. | "BR_Werewolf_Patch.esp will ensure that if you change into a werewolf in | front of only your revenants you will not become a 'known werewolf.' | It only works with BR revenants." | (Ref: "BR Werewolf Patch BETA Readme.txt")[CONFLICT] > [ANY 'Complete Morrowind.esp', 'MISSING(Complete Morrowind - Replacer.esp)'] > [ANY >   'MISSING(Complete Morrowind - Tribunal & Bloodmoon.esp)', >   'MISSING(Complete Morrowind TB & BM - Replacer.esp)', >   [ALL 'Bloodmoon.esm', 'Tribunal.esm']] | You should only use "Complete Morrowind.esp" or "Complete Morrowind - Replacer.esp" if you do not have Tribunal and Bloodmoon.[NOTE] > '[SIZE 813593 Creatures.esp]' | A drop-in replacement patch for Creatures X is available that: | "Fixes the scarabs so they do spawn in swarms Changes the reflect | abilities, reflect 60 is now reflect 30 absorb magicka 30, | slightly more mage friendly" | (Ref: http://www.gamesas.com/bgsforums/index.php?showtopic=836725 )[NOTE] > 'GS_SEYDA NEEN COMPLETE.esp' | !! GS_SEYDA NEEN COMPLETE.esp breaks guard behavior and several quest mods. | !! Under certain circumstances, when you choose the second option in a conversation with an NPC, the NPC will say "Squeak" and start to follow you. | !! This happens when you tell a guard you want to go to jail, it also breaks many quests in Veldion 2.0. | !! The cause of this problem is a line of dialogue in greeting 0 ("Squeak") copied over from the Tribunal packrat, but losing the id check which limits the response to packrats in the original dialogue. To solve this problem, remove this line of dialogue in the CS. | (Ref: http://www.gamesas.com/bgsforums/index.php?s=&showtopic=926679&view=findpost&p=13560421 )[CONFLICT] > '[SIZE 178346 Lgnpc_SN.esp]' > [ANY 'Alternate Beginnings 2.esp', 'MISSING(CharGen_Revamped_v14.esp)'] | LGNPC Seyda Neen 1.3 conflicts with some mods that change chargen, specifically when the NPC Socucius Ergalla is no longer nolore the dialog for the quest about the murdered taxman gets broken. | (Ref: http://www.gamesas.com/bgsforums/index.php?showtopic=937789 )[NOTE] > 'MWE_Base.esp' | Ensure you are using the latest version of Morrowind Enhanced, v1.6 | http://planetelderscrolls.gamespy.com/View.php?view=Utilities.Detail&id=8[NOTE] > 'The Undead - MCA5.2 Compatibility Patch.esp' | ! "The Undead - MCA5.2 Compatibility Patch.esp" is not needed. If you have not already done so, install "MCA 5.2 - The Undead 3.0 Compatible" from: | ! http://www.elricm.com/nuke/html/modules.php?op=modload&name=Downloads&file=index&req=viewdownloaddetails&lid=4354 | ! (Ref: http://www.gamesas.com/bgsforums/index.php?s=&showtopic=847583&view=findpost&p=12338232 )[CONFLICT] > 'MCA.esm' > 'Morrowind Comes Alive.esm' | "MCA.esm" is the newer version, you do not need to run "Morrowind Comes Alive.esm" with it.[NOTE] > [ALL >   [NOT 'MISSING(Vampire Embrace MCA Patch.esp)'], >   '[SIZE !2519851 MCA.esm]', >   'Vampire_Embrace.esp'] | Under certain conditions, NPCs spawned by MCA will vanish. This is undesirable when you have used Vampire Embrace to turn them into your children or thrall. You might consider using the "Vampire Embrace MCA Patch" which keeps MCA-spawned NPCs in the game if they have been touched by "Vampire Embrace". | See: http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=5983[NOTE] > [ALL >   [NOT 'MISSING(Vampire Embrace MCA Patch.esp)'], >   '[SIZE 2519851 MCA.esm]', >   'Vampire_Embrace.esp'] | Under certain conditions, NPCs spawned by MCA will vanish. This is undesirable when you have used Vampire Embrace to turn them into your children or thrall. You might consider using the "Vampire Embrace MCA Patch" which keeps MCA-spawned NPCs in the game if they have been touched by "Vampire Embrace". However, "Vampire Embrace MCA Patch" is NOT compatible with the version of MCA 5.2 that is compatible with "The Undead 3.0", unless it is edited to remove some scripts. | See: http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=5983[CONFLICT] > "Nevena's Twin Lamps & Slave Hunters 1.5.esp" > [ANY >   'GS_SEYDA NEEN COMPLETE.esp', >   "MISSING(Dogmeat's Servant Repository.esp)"] | "Dogmeat's Servant Repository" (and GS_SEYDA NEEN COMPLETE, which includes it) makes a very minor change to the slave script, it adds a "companion" variable so that slaves can act as companions. "Nevena's Twin Lamps & Slave Hunters 1.5" makes many changes to the slave script and won't work if these are overwritten by Dogmeat's script. If you want to play Nevena's Twin Lamps mod, load it afterwards. (Further investigation may be needed to see what effect this will have on Dogmeat's servants.)[CONFLICT] > 'Pegas Horse Ranch v3.1.esm' > 'Pegas Horse Ranch v3.1.esp' | Choose ONLY ONE of these plugins. | (Ref: "Pegas Horse Ranch Readme.txt")[CONFLICT] > 'RKCriminals BM.esp' > 'RKCriminals TR&BM.esp' | Choose ONLY ONE of these plugins. | "RKCriminals MW.esp" if you only have Morrowind without any expansions. | "RKCriminals TR.esp" if you only have Morrowind and Tribunal, but you don't have Bloodmoon. | "RKCriminals BM.esp" if you only have Morrowind and Bloodmoon, but you don't have Tribunal. | "RKCriminals TR&BM.esp" if you have Morrowind, Tribunal and Bloodmoon. | (Ref: Readme_RKC.htm)[REQUIRES] !!!'pcc_further_ext_smer_20.esp' Requires: > [ALL >   'pcc_smeradon_17.esp', >   'MISSING(pcc_extended_smeradon_21.esp)', >   'PCC_Knaarus_02.esp', >   'pcc_dunzar_02.esp', >   'MISSING(pcc_Xindaz_Veft_05.esp)'] | (Ref: "pcc_further_ext_smer_20_readme.txt") | [Note that you may see this message if you have an older version of one | of the pre-requisites. In that case, it is suggested that you upgrade | to the newer version].[NOTE] > [ALL 'Tombs Expanded - The Undead Addon.esp', 'The Undead.esm'] | "Tombs Expanded - The Undead Addon" was made for The Undead v2.2, you have a later version and so the Addon will not work. | (Ref: "readme_Tombs_Expanded_Addon.txt")[NOTE] > [ALL 'Tombs Expanded - The Undead Addon.esp', 'MCA.esm'] | "Tombs Expanded - The Undead Addon" was made for The Undead v2.2, you have a later version and so the Addon will not work. | (Ref: "readme_Tombs_Expanded_Addon.txt")[NOTE] > [ALL 'Morrowind Patch v1.2.2.esm', 'Tribunal.esm', 'Bloodmoon.esm'] | !! Morrowind Patch v1.2.2.esm is old and should only be run by people who do not have the expansions. Since you have Tribunal and Bloodmoon, it is highly recommended that you upgrade to the MPP! | !! http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=7347 | !! http://www.elricm.com/nuke/html/modules.php?op=modload&name=Downloads&file=index&req=viewdownloaddetails&lid=4519[NOTE] > 'Pelagiad Fix.esp' | ! All of these plugins are either included in, or the problems they address are also addressed by the latest MPP by quorn [Morrowind Patch v1.6.4]. It is recommended that you replace them with the MPP: | ! http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=7347 | ! http://www.elricm.com/nuke/html/modules.php?op=modload&name=Downloads&file=index&req=viewdownloaddetails&lid=4519[NOTE] > [ANY >   '[SIZE !3829352 BT_Whitewolf_2_0.esm]', >   '[SIZE !3829352 BT_Whitewolf_2_0.esp]'] | The latest version of White Wolf of Lokken is 2.1, which includes Children of Morrowind 2.0 and the "kiss patch". You may want to upgrade: | http://lovkullen.net/Emma/lokken.htm[CONFLICT] > 'BT_Whitewolf_2_0.esp' > 'BT_Whitewolf_2_0.esm' | Choose ONLY ONE of these plugins. | (Ref: "WhiteWolfofLokken-readme.txt")

User avatar
Lucie H
 
Posts: 3276
Joined: Tue Mar 13, 2007 11:46 pm

Post » Sat May 28, 2011 5:19 pm

Did you catch the additional rules in http://www.gamesas.com/bgsforums/index.php?s=&showtopic=938026&view=findpost&p=14025450, John?
User avatar
vicki kitterman
 
Posts: 3494
Joined: Mon Aug 07, 2006 11:58 am

Post » Sat May 28, 2011 11:10 am

Did you catch the additional rules in http://www.gamesas.com/bgsforums/index.php?s=&showtopic=938026&view=findpost&p=14025450, John?

Yes indeedy. They're already checked into svn, along with sieboldii's info and the rule for MCAFix. I will do another release within 24 hours that will make it available. And thanks!

Edit: okay, the release is out: mlox-data_2009-03-26.7z
http://code.google.com/p/mlox/downloads/list

Includes the above, plus a couple changes for the lastest lgnpc releases.
User avatar
Justin Hankins
 
Posts: 3348
Joined: Fri Oct 26, 2007 12:36 pm

Post » Sat May 28, 2011 3:23 pm

Some more:

Altered an existing one:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @Tir Thalor [Endhome.com staff (project leader: Granarinth)][Conflict] "If you have 'SAFIX.esp' installed, UNCHECK it and delete it from your drive  (important.) It has been replaced by this mod!" (Ref: "readme_TirThalor3.0.txt")TirThalor.espSAFIX.esp; Aerie of Tir Thalor Quest 1.2[Requires] (Ref: Readme_TirThalorQuest.txt)Tir Thalor Quest.espBloodmoon.esmTribunal.esmTirThalor.esp; Ref: Readme_TirThalorQuest.txt[Order]TirThalor.espTir Thalor Quest.esp

And some new ones:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @Master Index Journalfix [DeusXMachina]; Dragon32: Not mentioned in readme but logically, Journalfix has to load later; than the Master Index plugin. Examined plugins and this seems to be the case.[Order]master_index.espDXM_masterindex_journalfix.esp; Dragon32: Master Index plugin included in Wilderness mod, OfficialMods_v5 and; Official Plugins v1.0[Order]Wilderness Sounds.espDXM_masterindex_journalfix.esp[Order]Wilderness Sounds Bloodmoon.espDXM_masterindex_journalfix.esp[Order]Wilderness Sounds Tribunal.espDXM_masterindex_journalfix.esp[Order]Wilderness Sounds T & B.espDXM_masterindex_journalfix.esp[Order]Clean Official Plugins v1.1.espDXM_masterindex_journalfix.esp[Order]OfficialMods_v5.espDXM_masterindex_journalfix.esp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @Rise of the Illuminated Lich 1.1 [Psycholex, the Architect][Requires] (Ref: Rise_of_the_Illuminated_Lich.rar\readme.txt)Rise of the Illuminated Lich.esp[ALL Illuminated Order v1.0 - Bloodmoon Compatibility Extras.esp     Illuminated Order v1.0.esp     Boe_lich_particle.esp]; Dragon 32: not mentioned in readme. My guess[Order]Illuminated Order v1.0.espIlluminated Order v1.0 - Bloodmoon Compatibility Extras.espBoe_lich_particle.espRise of the Illuminated Lich.esp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @Illuminated order lich particles [Boethiah539][Requires] (Ref: Illuminated_order_particle_lich_addon.rar\readme.txt)Boe_lich_particle.espIlluminated Order v1.0.espTribunal.esm; Dragon 32: not mentioned in readme. My guess[Order]Illuminated Order v1.0.espBoe_lich_particle.esp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @Max's Quest Fixes Mod [Max a.k.a. ~NOBODY~][Note] Of the four quest fixes contained in Max's Quest Fixes only one has not been  fixed by the Unofficial Morrowind Patch (UMP) and since included in the  Morrowind Patch Project (MPP). # Sul-Senipul's Longbow Quest: Included in UMP v1.6.3b. # Recovering CloudCleaver: Included in UMP v1.6.3b. # Museum of Artifacts (Tribunal): Included in UMP v1.6.3b. Although uses a                                    different method to Max's Quest Fixes. # The Patchwork Airship quest (Bloodmoon): Not included in the MPP. It is your choice whether you want to continue using this plugin instead of using the MPP. [src="http://forums.bethsoft.com/index.php?/topic/970900-relz-mlox-a-tool-for-analyzing-and-sorting-your-load-order/http://planetelderscrolls.gamespy.com/View.php?view=Mods.Detail&id=7347"]http://planetelderscrolls.gamespy.com/View...ail&id=7347[/url] [src="http://forums.bethsoft.com/index.php?/topic/970900-relz-mlox-a-tool-for-analyzing-and-sorting-your-load-order/http://www.elricm.com/nuke/html/modules.php?op=modload&name=Downloads&file=index&req=viewdownloaddetails&lid=4519"]http://www.elricm.com/nuke/html/modules.ph...ls&lid=4519[/url]Max's Quest Fixes.esp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @Nymeria's Mages' guild fix [Nymeria][Note] The Morrowind Patch Project (MPP) fixes the ownership of the potion chest in Sadrith Mora Mages Guild. If you can live without the Supply Chest added to Caldera Mages Guild then you do not need this plugin.Nymeria's mages'guild fix.esp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @Lost Artifacts of Tamriel: MWSE Add-on [Fliggerty]; Note: LA_MWSE Addon.esp is dependent on the ESM version of Lost Artifacts of Tamriel[Required]LA_MWSE Addon.esp[ANY Clean The Lost Artifacts of Morrowind.esm     Clean The Lost Artifacts of Morrowind.esp][Patch] When using Improved Teleportation with "Lost Artifacts of Tamriel: MWSE Add-on" you should enable the "LA_MWSE IT Patch.esp" patch otherwise some of the quests will not work. (Ref: Lost Artifacts of Tamriel MWSE Add-on.txt)LA_MWSE IT Patch.esp[ALL LA_MWSE Addon.esp     ImprovedTeleportation2.0.esp]; Dragon32: Examined using TESPCD to deduce order[Order]Clean The Lost Artifacts of Morrowind.espLA_MWSE Addon.esp; Dragon32: Examined using TESPCD to deduce order[Order]ImprovedTeleportation2.0.espLA_MWSE Addon.esp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @Unique Items 1.1 [Danjb][Conflict] Choose only one plugin (Ref: Unique Items.txt)Unique Items - Monster Specific.espUnique Items.esp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @Lots of Rings [Wulfgar][Conflict] Choose only one plugin (Ref: LotsOfRingsReadMe.txt)LotsOfRings.espLotsOfRingsPlus.esp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @Unique Jewelry and Accessories [Tealpanda][Conflict] Unique Jewelry and Accessories contains the changes made by Ring Texture Fix  by Random Name. (Ref: Readme - Unique Jewelry and Accessories by tealpanda)Unique Jewelry and Accessories.espRing Texture Fix.esp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @New Gnaar Mok 1.0 [Melchior][Patch] (Ref: New Gnaar Mok ReadMe.txt)New Gnaar Mok BY Patch.esp[ALL New Gnaar Mok.esp     Beyond YsGramor v2.5.esm][Patch] (Ref: New Gnaar Mok ReadMe.txt)New Gnaar Mok COM Patch.esp[ALL New Gnaar Mok.esp      MW_Children_1_0.esm][Patch] (Ref: New Gnaar Mok ReadMe.txt)New Gnaar Mok COV Patch.esp[ALL New Gnaar Mok.esp     BB_Clothiers_of_Vvardenfell_v1.1.esp]; ordering based on filetimes[Order]New Gnaar Mok.espNew Gnaar Mok BY Patch.espNew Gnaar Mok COM Patch.espNew Gnaar Mok COV Patch.esp[Order]BB_Clothiers_of_Vvardenfell_v1.1.espNew Gnaar Mok COV Patch.esp

User avatar
Emma Pennington
 
Posts: 3346
Joined: Tue Oct 17, 2006 8:41 am

Post » Sat May 28, 2011 9:09 pm

Some more:


Thanks! (I did fix a couple small syntax booboos. Remember that "[Requires]" only takes 2 following expessions, not a long list of esps. So it is often one .esp followed by an [ALL] expression. And you had a "[Required]" when it should be "[Requires]".)

Here's a tip for anyone writing rules. (It's by no means required, I'll just throw it out as a suggestion). When writing new rules it's always possible to make a syntax error. One good way to find these errors is to run mlox against some already existing load orders, and with your new set of rules in "mlox_user.txt". I've collected a bunch of load orders people have posted and put them in svn here: http://code.google.com/p/mlox/source/browse/#svn/trunk/test/userfiles
You can download some or all of them, put them in a directory and use mlox in command-line mode to get a report on all of them:
mlox.py -wf *.txt

and then check the output for: "Parse Error". The error message hopefully will be clear enough to guide you to the problematic rule (often it points to the line at the end of the rule).

I do this before every rule-base release, just as a final check.

So, anyway, another rule-base release: mlox-data_2009-03-27.7z!
http://code.google.com/p/mlox/downloads/list

This includes the latest update from Dragon32, and I added rules for Lazarus' Manor, and tweaked some conflict rules, including CoV.
Thanks!
User avatar
Tasha Clifford
 
Posts: 3295
Joined: Fri Jul 21, 2006 7:08 am

Post » Sat May 28, 2011 11:15 am

Thanks for the vetting, John!

Good idea on the testing things out before posting, hopefully it'll improve my accuracy some :)

Any chance you could just zip those up into an archive, it'll be a bit of a pain to copy and paste into ~130 TXT files?
User avatar
Kevin Jay
 
Posts: 3431
Joined: Sun Apr 29, 2007 4:29 am

Post » Sat May 28, 2011 10:11 am

Good idea on the testing things out before posting, hopefully it'll improve my accuracy some :)

No sweat, you're doing great!
User avatar
Shelby McDonald
 
Posts: 3497
Joined: Sat Jan 13, 2007 2:29 pm

Post » Sat May 28, 2011 6:26 pm

I edited after you posted so I doubt you saw it, is there any chance you could just zip those mod lists up into an archive? It'll be a bit of a pain to copy and paste into ~130 TXT files.
User avatar
Stat Wrecker
 
Posts: 3511
Joined: Mon Sep 24, 2007 6:14 am

Post » Sat May 28, 2011 7:05 pm

I edited after you posted so I doubt you saw it, is there any chance you could just zip those mod lists up into an archive? It'll be a bit of a pain to copy and paste into ~130 TXT files.

I could do that, but is there any chance I can get you to try out a subversion client?

I list 2 clients on this page:
http://code.google.com/p/mlox/wiki/SubversionForEditors

And sadly I put no instructions. But if you need instructions I'll be glad to provide them!

The basic svn command line to get all the userfiles at once would be this:

svn checkout http://mlox.googlecode.com/svn/trunk/test/userfiles

However, the Windows clients may put some GUI obstacles in your way. It should be easy for us to get it working.

(Edit: it's ok to say "no thanks")
User avatar
Eve(G)
 
Posts: 3546
Joined: Tue Oct 23, 2007 11:45 am

Post » Sat May 28, 2011 12:21 pm

I'll check it out. Went for RapidSVN as the Windows client for Tortoise SVN went on about shell integration. It's late here so I'll try and have a look tomorrow / over the weekend.
User avatar
Trevor Bostwick
 
Posts: 3393
Joined: Tue Sep 25, 2007 10:51 am

Post » Sat May 28, 2011 1:00 pm

A great tool. I use it, and will forevah!
You know, Random007 has realeased a MW-friendly BOSS? Though he didn't realeased a database for it, too much job i presume.
User avatar
Richard Thompson
 
Posts: 3302
Joined: Mon Jun 04, 2007 3:49 am

Post » Sat May 28, 2011 7:30 pm

A great tool. I use it, and will forevah!
You know, Random007 has realeased a MW-friendly BOSS? Though he didn't realeased a database for it, too much job i presume.

Thanks. It's always good to have a choice. As I put in the readme, there are advantages to the "total order" approach used by BOSS.
(Of course, I still prefer the mlox solution :))
User avatar
Michelle Chau
 
Posts: 3308
Joined: Sat Aug 26, 2006 4:24 am

Post » Sat May 28, 2011 11:48 am

Have you considered making the program check for the database online? :)
User avatar
Karine laverre
 
Posts: 3439
Joined: Tue Mar 20, 2007 7:50 am

Post » Sat May 28, 2011 5:19 pm

Have you considered making the program check for the database online? :)

Yes indeed. An "auto-updater feature" came up in the last thread. I'm going to look into implementing it in a future release, although, it probably won't happen real soon, I have so many things I want to do and none of them are getting done ... I need a time machine.
User avatar
Izzy Coleman
 
Posts: 3336
Joined: Tue Jun 20, 2006 3:34 am

Post » Sun May 29, 2011 2:28 am

Thanks. It's always good to have a choice. As I put in the readme, there are advantages to the "total order" approach used by BOSS.
(Of course, I still prefer the mlox solution :))

What is the "total order" approach?
User avatar
cutiecute
 
Posts: 3432
Joined: Wed Sep 27, 2006 9:51 am

Post » Sat May 28, 2011 1:55 pm

What is the "total order" approach?

It specifies the ordering relationships of all known plugins. The partial order approach only specifies ordering relationships when they are known to be significant. It's based on the notion of http://en.wikipedia.org/wiki/Partial_order, for which a good sorting algorithm is known: the topological sort. I've written up a lot of details on this in the readme docs for mlox, if you are interested.
User avatar
GRAEME
 
Posts: 3363
Joined: Sat May 19, 2007 2:48 am

Post » Sat May 28, 2011 1:20 pm

Yes indeed. An "auto-updater feature" came up in the last thread. I'm going to look into implementing it in a future release, although, it probably won't happen real soon, I have so many things I want to do and none of them are getting done ... I need a time machine.
Had a thought about this.

The update function could either just tell the user that an update was available or download and apply the update automagically. Now, I'm not sure how one would go about updating the mlox.py from within itself :blink:

With the automagic update of the data TXT file either you'd need to include the 7zip command line version with the main mlox download or svck 7zip's existing location from the registry. If the former then I'd recommend the updater also check for updated versions of 7zip. It's possible that future versions of the mlox data archive are encoded with a newer version of 7zip than that included with mlox and that the encoding leads to unextractable files.

[Edit: OK, got the TXT files. I've a few updates to the rules I can test against them. I'll also have a look round for some more modlists to add to those userfiles].

[Edit2: So anything special I need to add the new modlists? Like a user ID for googlecode and/or one for the mlox project?]
User avatar
Lauren Dale
 
Posts: 3491
Joined: Tue Jul 04, 2006 8:57 am

Post » Sat May 28, 2011 7:00 pm

Had a thought about this.

The update function could either just tell the user that an update was available or download and apply the update automagically. Now, I'm not sure how one would go about updating the mlox.py from within itself :blink:

It's easy to do on Unix with the exec() system call, I'd assume it's supported on Windows in some manner, but there are other ways too...

With the automagic update of the data TXT file either you'd need to include the 7zip command line version with the main mlox download or svck 7zip's existing location from the registry. If the former then I'd recommend the updater also check for updated versions of 7zip. It's possible that future versions of the mlox data archive are encoded with a newer version of 7zip than that included with mlox and that the encoding leads to unextractable files.

I'd probably go for including a copy of 7zip, that's what Mash does. Or we could also just publish the data file releases as text too. It's currently 300K. Even if it grows to 10 times that size, it's still a manageable download.

[Edit: OK, got the TXT files. I've a few updates to the rules I can test against them. I'll also have a look round for some more modlists to add to those userfiles].

Super! Thanks for trying out svn, you're my first guinea pig. If you ran into any problems, let me know, and I'll add a hint to my wiki.

Now, if you want, let me know and I'll add you to the googlecode mlox project and you can update the rule-base directly using your svn client :)
User avatar
i grind hard
 
Posts: 3463
Joined: Sat Aug 18, 2007 2:58 am

Post » Sat May 28, 2011 11:32 am

Trying to test the new rules I've written (and the new user mod lists) and I get an error:

Version: mlox.py 0.55 [mlox-base 2009-03-27 00:51:37 (UTC)]		 Hello!Traceback (most recent call last):  File "I:\Bethesda Softworks\Morrowind\mlox\mlox.py", line 1723, in <module>	main()  File "I:\Bethesda Softworks\Morrowind\mlox\mlox.py", line 1627, in main	loadorder().update(file)  File "I:\Bethesda Softworks\Morrowind\mlox\mlox.py", line 1227, in update	self.read_from_file(fromfile)  File "I:\Bethesda Softworks\Morrowind\mlox\mlox.py", line 1140, in read_from_file	for line in file:TypeError: 'NoneType' object is not iterable


Could it be a file with a line with no text?

DOS command used:
D:\Runtimes\Python26\python.exe "I:\Bethesda Softworks\Morrowind\mlox\mlox.py" -wf "I:\Bethesda Softworks\Morrowind\mlox\test\*.txt"

I'm pretty sure all the user mod list TXTs I've made are saved in Unix format, not sure if that makes a difference or not. As is my "mlox_user.txt"

If we can get this sorted then, yeah, adding to the project sounds good. Want to try adding these user modlist TXT first before amending the rule base.
User avatar
Ann Church
 
Posts: 3450
Joined: Sat Jul 29, 2006 7:41 pm

Post » Sat May 28, 2011 2:40 pm

The update function could either just tell the user that an update was available or download and apply the update automagically. Now, I'm not sure how one would go about updating the mlox.py from within itself :blink:

Exactly like you would everything else :)
file = open("mlox.py", "w")file.writelines(newMloxCode)file.close()

User avatar
..xX Vin Xx..
 
Posts: 3531
Joined: Sun Jun 18, 2006 6:33 pm

Post » Sat May 28, 2011 1:48 pm

I'm pretty sure all the user mod list TXTs I've made are saved in Unix format, not sure if that makes a difference or not. As is my "mlox_user.txt"

If we can get this sorted then, yeah, adding to the project sounds good. Want to try adding these user modlist TXT first before amending the rule base.

The problem is the command line. I guess Weendoze does not do shell expansion anything like Unix :P

It looks like we need to get rid of the "*" and figure out an alternative.

A single file still works though doesn't it?

mlox.py -wf userfile/john.moonsugar.txt

(On my system I don't need to actually invoke Python on the command line, I guess Perl associated itself with the extention ".py", or something like that).

Edit: I've just fixed the error you got before, so it now gives a descriptive message, if you wish to try it:
http://mlox.googlecode.com/svn/trunk/mlox/mlox.py (Right Click -> Save As "mlox.py", and replace your old one)
User avatar
Iain Lamb
 
Posts: 3453
Joined: Sat May 19, 2007 4:47 am

Post » Sun May 29, 2011 2:14 am

Just in case people missed this from the last thread, if anyone would like to confirm my finding:
With regards to Aeven's MCAFix.esp, I believe that it does need to come after Mashed Lists.esp in order to work.

I did a quick test, if anyone could confirm the result, that would be good.

Using "tes3cmd diff" I did a difference report for MCAFix.esp and MCA.esm. This shows that 10 lists are exact duplicates, and 2 lists are changed in MCAFix.esp: _mca_ex_bandits_towns and _mca_ex_other. We can ignore the dups, I think.

Then I generated a new Mashed Lists.esp while MCAFix.esp was in my load list. In the resulting Mashed Lists.esp the two lists (_mca_ex_bandits_towns and _mca_ex_other) are the same as in the original values of MCA.esm.

If I've made a mistake, please let me know.


This would indicate that Mash does not actually support deletion from leveled lists, at least in the manner in which MCAFix.esp does it.
User avatar
Jason Rice
 
Posts: 3445
Joined: Thu Aug 16, 2007 3:42 pm

Post » Sat May 28, 2011 8:46 pm

If we can get this sorted then, yeah, adding to the project sounds good. Want to try adding these user modlist TXT first before amending the rule base.

Sorry, forgot to address this part. Just PM me an email address I can use for adding you to the googlecode project, and I'll try to find the right incantation to add you.
User avatar
Kelly Tomlinson
 
Posts: 3503
Joined: Sat Jul 08, 2006 11:57 pm

Post » Sun May 29, 2011 2:27 am

The problem is the command line. I guess Weendoze does not do shell expansion anything like Unix :P

It looks like we need to get rid of the "*" and figure out an alternative.

A single file still works though doesn't it?

mlox.py -wf userfile/john.moonsugar.txt
Yep, single file works fine. I've created a batch file for all the various lists in the directory and concatenated the output into a single file. When reviewing the file am I just looking for "Parse Error" messages (as that would make things pretty easy)? Or can other problems show up?

(On my system I don't need to actually invoke Python on the command line, I guess Perl associated itself with the extention ".py", or something like that).
Oh, that was me just trying to get things to work. Should've realised it was the wildcard.

Edit: I've just fixed the error you got before, so it now gives a descriptive message, if you wish to try it:
http://mlox.googlecode.com/svn/trunk/mlox/mlox.py (Right Click -> Save As "mlox.py", and replace your old one)
OK, with that version I get: "No plugins detected. mlox.py understands lists of plugins in the format used by Morrowind.ini or Wrye Mash. Is that what you used for input?" when using a wildcard for the filename, more descriptive than before.
Sorry, forgot to address this part. Just PM me an email address I can use for adding you to the googlecode project, and I'll try to find the right incantation to add you.
PMd. I expect that you'll only want to let me loose on the mlox rules and the user files directories. Any particular procedures I need to follow? E.g. do I upload the mlox_base.txt 7zipped or unarchived? Do the user files need to be in Unix format as well as mlox_base.txt?
User avatar
Camden Unglesbee
 
Posts: 3467
Joined: Wed Aug 15, 2007 8:30 am

Post » Sat May 28, 2011 11:38 am

Yep, single file works fine. I've created a batch file for all the various lists in the directory and concatenated the output into a single file. When reviewing the file am I just looking for "Parse Error" messages (as that would make things pretty easy)? Or can other problems show up?


The most important thing would be to look for the parse errors. But if you wanted to see the effect of what your new rules do, you could try something like this:

Run your batch file to create the single file of output, file A. Then add your new rules to the rule-base. Re-run the batch file and create a new output file, B. Then use a program to show the textual differences between files A and B. I use Emacs, because it's cool and can do that, but unless you're already an Emacs user, I wouldn't recommend it. Another tool I've heard of that I believe can do this is called "http://winmerge.org/" (it's free, apparently, but I haven't tried it).

PMd. I expect that you'll only want to let me loose on the mlox rules and the user files directories. Any particular procedures I need to follow? E.g. do I upload the mlox_base.txt 7zipped or unarchived? Do the user files need to be in Unix format as well as mlox_base.txt?

As for Unix line endings, perhaps it's time for me to give up on that, I'll see about switching mlox_base.txt to DOS line-endings. I'll go do that now.

The usual procedure for svn is:
Initially, you check out the files, this gives you a "working directory". You only need to do this once, normally.
To get your first working copy, you could go for the whole project (notice that for write-access you have to give your own username):
svn checkout https://mlox.googlecode.com/svn/trunk/ --username dragon32

Or, just the bits you're interested in:
svn checkout https://mlox.googlecode.com/svn/trunk/data --username dragon32svn checkout https://mlox.googlecode.com/svn/trunk/test/userfiles --username dragon32


Then you edit the files in your working directory. When you are finished, you "commit" your changes.
svn commit -m "commit comment about what changed" mlox_base.txt


So there's no 7zipping involved, just svn commands.
Other svn commands that are helpful:
"svn log mlox_base.txt" - show list of changes
"svn status mlox_base.txt" - show whether you've made changes in your working copy
"svn diff mlox_base.txt" - show the most recent changes you've made since the last "commit"

Don't worry too much if there are any problems. svn allows us to show the differences between any two commits, and undo anything that we need to.

And thanks for being the first volunteer to dive into the googlecode stuff. :)

Edit: Okay, I've converted mlox_base.txt to DOS line-endings, so hopefully it should be easier for others to work with.

And one more svn command that is helpful, when you want to pick up any changes I have checked into the repository, you can use this command:
svn update


If we have both made changes to the same section of the file, we might get a "conflict", in which case we just need to edit things together. In most cases, svn will merge differences together automatically.

Edit 2: I've created a spot under the main directory, where you are free to try any svn command you want "temp":
svn checkout https://mlox.googlecode.com/svn/trunk/temp --username dragon32

You can add files to it:
create a file "foo"
svn add temp/foo

svn commit -m "new file" foo


Or something like that. If you run into any problems, feel free to ask.
User avatar
Melung Chan
 
Posts: 3340
Joined: Sun Jun 24, 2007 4:15 am

Next

Return to III - Morrowind