Jump to content

XCMM - Mod Manager in Java


twinj

Recommended Posts

I love to help with testing, twinj! Can play average user well, even I have some computer knowledge since 1993 :)

 

So I tested XCMM v1.03 BETA and after start I get prompt "Please set up the application correctly". Ok. Clicked Save after taking care of Name and Paths and clicked Yes for "To get started you need to download Gildor's tools or select a working path. Would you like to download?". Browser opened, files were DLed and unzipped.

 

Home console output:

DOWNLOADED [http://www.gildor.org/down/32/umodel/decompress.zip]
UNZIPPED [temp\decompress.zip]
DECOMPRESSED [Core.upk]
DOWNLOADED [http://www.gildor.org/down/32/umodel/extract.zip]
UNZIPPED [temp\extract.zip]
EXTRACTED RESOURCES [Core.upk]

When I click save, I got "The system cannot verify your unpacked resources." message again. I left Unpacked folder at default proposed by XCMM (D:\XCOM Enemy Unknown\Programy\XCMM\unpacked).

 

In log is:

*** ERROR: Unable to open file C:\Users\Your Name\Documents\GitHub\XCMM\XCMM\unpacked\Core.upk

So I replicated directory structure from log and copied there Core.upk - no luck.

 

Tried running XCMM-Gui.bat as admin and got "Error: Unable to access jarfile XCMM.jar". What a beautiful day :) Even UE Explorer refused me :)

 

Tried running XCMM-Usage.bat and got: "STARTED / CONFIG FILE NOT FOUND CREATING DEFAULT." But Config is empty.

 

Ok. Next decided to leave "XCOM installation path" on default. Created C:\Program Files (x86)\Steam\SteamApps\common\XCom-Enemy-Unknown\XComGame\CookedPCConsole\Core.upk and got "The system cannot verify your XCOM installation.".

 

Copied Binaries directory to C:\... and got "Would you like to unpack the core.upk file here to verify the current path?" Oh yes!

 

Then got few message: "Game file handler: There was an IO error when sorint (sorting?) out the game resources.", "Guildor's Unreal Extractor: Extracting the resources has completed". Ok to both. Discovered another window of "Gildor's Unreal Decompressor: Decompressing the file has completed". Ok.

 

Config directory is still empty. XCMM Config Settings window is still up. Clicked Save. "Settings saved (...have been updated.)" Got Config.xml finaly :) Went to Settings / Edit Config and corrected XCOM installation patch to S:\Steam\SteamApps\common\XCom-Enemy-Unknown (It's on SSD). Saved. Config saved fine this time. Checked Config.xml if is it set to S: and yes, was correct.

 

Made mod "Start year 1999 + Arc Thrower charges x4" to see, how are multiple upks handled. Created fine! Still one InitNewGame.Function missing in Files\Edited dir.

 

Decided to take different approach. Wiped all files in make, deleted files in mod's Original and Edited directories, renamed mod creation files to Class.Name.Function and added them into Make files. At this point I have to say, that would be cool to select multiple files, not just one by one. All set, clicked Make and got: "This mod already exists. Please change.". Purged Mods directory, clicked Make again and got: "This mod already exists. Please change.". Changed mod's name :) and clicked Make and got: "There was an error calculating a search hash or file hash.".

 

Restarted XCMM. Changed dot to underscore - Class.Name.Function to Class_Name.Function and got the same error as before. Went back to Name.Function and directories. Make, hash error again. Aha, I see why. I made orig directory withing temp directory and put my files (in directories either) in there. And Make console commented with MOD GENERATE ACTION UPK FILENAME [orig.upk].

 

How does XCMM decides what upk to patch?

 

Went back to original directory structure Temp/XComStrategyGame, Temp/XComGame for edited and Unpacked/XCom... for originals. Ofcourse I tried Class.Name.Function again. Reinserted files to Make, clicked and the mod created! Clicked install aaand... got another message: "Upk resource could not be found. The mod may already be installed.". Doh, that's correct. Copied unmodified decompressed upks into CookedPCConsole. Clicked install and everything went fine this time. XSHAPE too. Checked with UE Explorer and in the game and yay! It's working :)

 

Is possible for XSHAPE to output progress and result into Install Console?

 

Oh, now I just realized what a wall of text I made. Can imagine you looking at it thinking omg, what is he doing with it hehe.

 

Great work, you guys rock!

Link to comment
Share on other sites

Thanks for the help.


  •  
  • At the moment the unpacked original files must be from the unpacked path. I do appreciate that this makes it harder to drag and drop files.
  • The config file will not be created unless the setting have been fully verified. Wait for extraction it can take some time. I will add a wait state to the program for this.
  • XCMM does not handle more than one unpacked decompressed area.
  • It is best to let XCMM handle from scratch fresh game. This way you can edit resources. Restore them with the "Restore Original" button and run XShape.
  • XShape output coming. At the moment there is a beep! lol
  • Missing edited file - just rename for now - not sure how to handle this yet. Edited files can from any path.
  • Original file are now saved in relative paths.
  • I will change it so original files are the same.
  • Will be adding mod patching support.
  • There is a refresh button.
  • The mod.export.xml can be given to anyone to install your mod.

Link to comment
Share on other sites

 

How does XCMM decides what upk to patch?

 

 

Currenty the upk file is found from the relative path e.g: XComGame/XGCaharacterGenerator/CreateTSoldier.Function. This is why original files must be dropped from the unpacked directory.

 

I am looking now for a better way to handle this as it has been a painful source of bugs. And it is not easy to realise this without knowing that you MUST use these files.

 

The above example would evaluate to XComGame.upk.

 

I would welcome suggestions that you think might be easier?

Edited by twinj
Link to comment
Share on other sites

Thanks for the help.

[*]The config file will not be created unless the setting have been fully verified. Wait for extraction it can take some time. I will add a wait state to the program for this.

This exactly prevented me from using the tool. When XCMM checked for Core.upk in predefined XCOM installation path and haven't looked into new path I set, resulting in unability to Save and create Config file. I had to put some stuff into path XCMM expected and only then I was able to change the path to my actual installation folder.

 

More convenient would be if XCMM checked for installation path itself.

 

Also where is Refresh button and what does it refreshes?

 

Currenty the upk file is found from the relative path e.g: XComGame/XGCaharacterGenerator/CreateTSoldier.Function. This is why original files must be dropped from the unpacked directory.

 

I am looking now for a better way to handle this as it has been a painful source of bugs. And it is not easy to realise this without knowing that you MUST use these files.

Those relative paths are fine, because they allow functions with the same name to coexist in the mod and also they help with determining upk to patch. Well, I don't know how to check it in more effective and bugfree way. List of upk contained classes isn't good idea. Searching all or some upks for the code could take too long.

 

I must admit, I have Unpacked folder with over 100k files elsewhere and just replicated directory structure for 4 files I used - so there was a space for error.

 

If you don't plan on repacking upks :) ... not sure if to continue, because it feels repacking could be needed at some point.

 

So imagine naming original files Class.Name.Extension (XComStrategyGame.XGGeoscape.Function) and putting them into one directory. That would make importing into XCMM faster with select all and ease manupaliton with files for modders. There is destination set to be patched and no problem with files in Mod\Edited directory.

 

Also .original or .edited could be appended after .function.

 

How do you plan to manage uninstallation?

Link to comment
Share on other sites

 

This exactly prevented me from using the tool. When XCMM checked for Core.upk in predefined XCOM installation path and haven't looked into new path I set, resulting in unability to Save and create Config file. I had to put some stuff into path XCMM expected and only then I was able to change the path to my actual installation folder.

 

More convenient would be if XCMM checked for installation path itself.

 

If you don't plan on repacking upks :) ... not sure if to continue, because it feels repacking could be needed at some point.

 

Also where is Refresh button and what does it refreshes?

 

So imagine naming original files Class.Name.Extension (XComStrategyGame.XGGeoscape.Function) and putting them into one directory. That would make importing into XCMM faster with select all and ease manupaliton with files for modders. There is destination set to be patched and no problem with files in Mod\Edited directory.

 

Also .original or .edited could be appended after .function.

 

How do you plan to manage uninstallation?

 

 

I will change the way the config saves and do part verification: saving errors if need be.

 

I get the feeling that repacking will be needed too.. hope not.

 

Refresh button is below the mods list. Should I move it?

 

I like the idea about renaming the files and just putting in one directory. May implement that. Should nt take long.

 

We already have full uninstallation. lol Just restore all backups and XShape. :tongue: hehe

 

I was thinking of just doing the same thing backwards. Create an uninstall xml which has the original hex and offsets in it. The maker could generate this. It could get messy when there are lots of different mods. I am thinking it would be best to keep mods atomic: i.e. each mod has a singular purpose that is not capable of being broken down into smaller parts and where adding more parts would make it capable of being made smaller. Take the mod I merged with the year 1999 and gender equality. This can be broken down into two mods. Rather than one mod this should be made into a package where we can install as a full package or in parts. That way everyone can work with different mods like lego blocks to build particular packages.

 

I do think though that what we are doing at the moment is also too static. Take for example take the year 1999 mod. It is capable of being changed. What is the range of values that can be changed and how to enable on the fly changing. I want to add some flexibility. I want XCMM to be able to read the xml and out put a menu to edit current settings and save them on the fly. Then export those as an installable package. The good thing about this is that it means the modding is not hard coded and can be updated by anyone who can handle text files. I also want to handle ini files as part of a package.

 

It also means that those who work hard to find the hex offsets and values to change can somewhat document those changes too.

 

I really need others to get on board though if this is gonna happen.

Link to comment
Share on other sites

Aha, I see the Refresh button now - tooltip says Add file.

 

I really need others to get on board though if this is gonna happen.

I am sure others are on the way, because it's very important to have more feedback. I know everyone couldn't be satisfied, but it's still worth the effort.

 

I can say for myself, how working with XCMM feels, what features I would like and what buttons I expect where as a user :)

 

The good thing about this is that it means the modding is not hard coded and can be updated by anyone who can handle text files. I also want to handle ini files as part of a package.

Great idea. XCMM is really getting very robust. ... and localization next :) People will be happy to have all tools in one package.

 

What is Mod Files pane at Install section for? For me as the user is important to have well-arranged list with mods (Mods pane). I would propose substituting Files pane with Mod Options pane, putting Refresh list, Install and Uninstall buttons between these two panes. Also would be great to see lines with long names properly (horizontal scrollbar maybe?). Atm I see mod's long name hidden without resizing the window. Like this, there would be seen at the first sight the mod can be modded :) But popup menu would work too.

 

In Mod Options you could have pulldowns menu and text fields to alter current mod, if available. Description of the setting when onmouseovering. Would need interface and some way for mod authors to define values of what to change. That would be very cool :) As is XCMM capable of changing just altered bits, it could be piece of cake to implement. Mod authors specify an offset from Modname.xmod.export.xml and assign it values like default, min, max, pulldown options, description.

 

I was thinking of just doing the same thing backwards. Create an uninstall xml which has the original hex and offsets in it.

I think you could do this atomatically when creating install xml. And I wouldn't worry about any mess until 2 mods change the same offset. You could keep track of all changes made by XCMM and use it for uninstall/reinstall.

 

These are just ideas. It's up to you to decide, how to make it happen after having enough feedback :) So far I like it much and can't wait for changing values. Static is no good, even it serves the purpose now, but dynamic is better.

Edited by Drakous79
Link to comment
Share on other sites

Or this one. In place of stars are CMM letters telling it's XCMM.

 

http://i.imgur.com/D0a8D.jpg

 

Edit: Version 2

http://i.imgur.com/wdVY5.jpg

Edited by Drakous79
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...