Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
MTS has all free content, all the time. Find out how YOU can help to keep it running. Tell me how...

Core Mod Merger - (no IL or Hex-Editor required !) Udated to 0.1

by morgade Posted 12th Jul 2009 at 11:34 PM - Updated 27th Nov 2013 at 3:15 PM by Nysha
 
47 Comments / Replies (Who?) - 44 Feedback Posts, 2 Thanks Posts
Thanks are currently OFF: Show Thanks Posts for this thread
Page 1 of 2
Test Subject
#2 Old 12th Jul 2009 at 11:44 PM Last edited by dsportsteen : 13th Jul 2009 at 12:04 AM. Reason: Help
omg i was geting ready to go looking for something that let me do this thanks sooo much. But do u have to create a dll file yourself or not?
Lab Assistant
#3 Old 12th Jul 2009 at 11:49 PM
Will this be able to merge Awesomemod with Teen Woohoo and Same Sex Pregnancy or will the modders have to do something special to be able to allow me to do this?
Test Subject
#4 Old 13th Jul 2009 at 12:32 AM Last edited by jim_everlasting : 13th Jul 2009 at 12:47 AM.
Oh_pls pretty much said it! Awesome...teen woohoo...same sex...also duma and Indie Stone Mod if its possible...someone please make it happen!
Lab Assistant
#5 Old 13th Jul 2009 at 12:34 AM
Thank for this! But there`s just the "How-to-User-Developer.zip: Documentation for users and modders" file. Where is the main one? I miss it.

Please, pay attention to my creator`s policy.
(\_/)
(o.O)
(> <)
This is Jack, the little rabbit; add him to your signature and help him to take over the world!!!
Test Subject
#6 Old 13th Jul 2009 at 12:41 AM
Would you be able to merge Awesomemod and Indie Stone Story Mod???

Jesus is my savior, and I will always worship him.
Lab Assistant
Original Poster
#7 Old 13th Jul 2009 at 12:43 AM
This tool can't aumatically merge existing mods.
Modders must provide a configuration file to make merging possible

It will be useful only if modders agree releasing mods in the expected format.
Lab Assistant
#8 Old 13th Jul 2009 at 1:19 AM
This is an incredibly useful development. Well done, Morgade!

IMO, this should be in the "stickied" featured downloads at the top of the download page.
Lab Assistant
#9 Old 13th Jul 2009 at 3:32 AM
This needs to be featured so modders can know about it, and therefore release in correct format.
Lab Assistant
#10 Old 13th Jul 2009 at 4:05 AM
I have a quick question about writing mods to be used with this, is there currently any way to add interactions to objects? I can't seem to figure it out for the life of me, so if you have any idea I'd really appreciate it
Test Subject
#11 Old 13th Jul 2009 at 8:44 AM Last edited by ceridan : 13th Jul 2009 at 8:44 AM. Reason: spelling mistake (yes I'm anal).
Morgade have you contacted the guys that make awesome mod about this yet? if you can convince them to use it I'm fairly certain all the other mod makers will follow suite (to be compatible with awesome mod as it appears to be the most popular one). Cheers just wondering, awesome work by the way.
Lab Assistant
Original Poster
#12 Old 13th Jul 2009 at 12:10 PM
Quote: Originally posted by xalwaysvindicatedx
I have a quick question about writing mods to be used with this, is there currently any way to add interactions to objects? I can't seem to figure it out for the life of me, so if you have any idea I'd really appreciate it

Browse 'Sims3GameplayObjects.dll' with Reflector. You will see that objects has the OnStartup method. You need to inject a call at TOP of OnStartup method in the class of the desired object, and in your code use the call to 'AddInteraction'. The sample mod with sources in the documentation do this (but to a Sim, not an object)

Quote: Originally posted by ceridan
Morgade have you contacted the guys that make awesome mod about this yet? if you can convince them to use it I'm fairly certain all the other mod makers will follow suite (to be compatible with awesome mod as it appears to be the most popular one). Cheers just wondering, awesome work by the way.

With this tool we can still have conflicts between core mods (if two mods replaces the same method, by example)

These popular mods actually change lots of things in one pack. But one of the hidden features of this mod merger is that it allows the 'big' mods be separated in different packs. (You may want a feature 'A' of awesome and feature 'B' of indie stone).
But this require some work from the modders ... I could help them if i had the mod source code.
Fat Obstreperous Jerk
#13 Old 13th Jul 2009 at 12:46 PM
It seems very unlikely that AwesomeMod will work with this system in its present state, as many of the changes I have made are more complicated than can be reproduced purely by injecting things into the top or bottom of a function. However, in theory, you could use this to automatically insert smaller mods into AwesomeMod. Consequences may vary depending on WHAT you insert, though. For instance, there is no need to install a teen woohoo/romance mod into AwesomeMod because these are already integrated functions, and doing so will result in a code conflict and fatally crash your game.

Grant me the serenity to accept the things I cannot change, the courage to change the things I cannot accept, and the wisdom to hide the bodies of those I had to kill because they pissed me off.
Lab Assistant
Original Poster
#14 Old 13th Jul 2009 at 1:14 PM
Quote: Originally posted by J. M. Pescado
It seems very unlikely that AwesomeMod will work with this system in its present state, as many of the changes I have made are more complicated than can be reproduced purely by injecting things into the top or bottom of a function.

If you need more complicated changes, you can use the REPLACE kind of injection that is available in this version.
As it states, REPLACE will remove all code from original method and inject a call to your method.
You can copy the original game method code to a public static method that receives as parameters the target class and the same list of parameters of target method (and returns the same type). Just make the changes there and inject it into the original method as a REPLACE. (I know, you would need change/add lots of thing in your code to this work ... But, yes, it can work)

Quote: Originally posted by J. M. Pescado
However, in theory, you could use this to automatically insert smaller mods into AwesomeMod. Consequences may vary depending on WHAT you insert, though. For instance, there is no need to install a teen woohoo/romance mod into AwesomeMod because these are already integrated functions, and doing so will result in a code conflict and fatally crash your game.

Yep. Confilcts can still occur.
But if we'd have several smaller mods, instead of few big mods in one pack, we could have a lot of different options of customizing.
Users only need to add/remove files from the ModMerger\mods folder.
Lab Assistant
Original Poster
#15 Old 13th Jul 2009 at 4:36 PM
I'm thinking a new solution to existend mods.

I could add a folder "base_mods" to the mod merger folder, where users can place base core mods packages (like awesome and indie).
When the program detects that there are one or more base mods available, it asks the user which one should be used as a base code to merge.

So, existent "big" mods can be mergerd with new "light" mods.
(But current "big" mods would never be merged)
Lab Assistant
#16 Old 13th Jul 2009 at 5:00 PM
Well done, Morgade. I'm very glad to see that you're thinking outside of the box on this. And I adore what you're trying to do! I'd so love to have proper customization of mods elements. I like AwesomeMod, I do. And now that I'm playing with Indie Stone, I'm missing a lot of it's features. But if it was split up into "game fixes" and "story mode overhaul" and "supreme commander" and whatever, and then these things were inserted or discarded as the user wanted, that'd be very, very nice.

I just hope that some mod authors give your system a try, and if it turns out to be not so cumbersome, then things could grow into something really sweet.

Oh, if you haven't seen it yet, there's another very cool system being proposed over here:

http://www.simlogical.com/Sims3Tool...php?topic=262.0

It's totally different than your thinking, so I'm guessing you'd be competing with each other, but the good thing about that one is that it's dynamic and authors can write plugins to provide extra functionality. I really like this one, but we won't know how friendly it is until something is ready for release. But, you should definitely keep an eye on it, since you're working on the same goal: more than just the one core mod.

Anyway, thanks for working on this, and I hope at least couple mod makers tries your system out.
Inventor
#17 Old 13th Jul 2009 at 5:07 PM
Quote: Originally posted by morgade
I'm thinking a new solution to existend mods.

I could add a folder "base_mods" to the mod merger folder, where users can place base core mods packages (like awesome and indie).
When the program detects that there are one or more base mods available, it asks the user which one should be used as a base code to merge.

So, existent "big" mods can be mergerd with new "light" mods.
(But current "big" mods would never be merged)


This sounds like a good idea. I'm only interested in a couple of the options available in the awesomemod but I love practically everything that is in the indie mod. And even if Pescado says he has a teen woohoo option in his mod, it's restrictive and not very useful for many people (considering how many awesome mod users beg for a teen woohoo mod) and he didn't even mention anything about the same sex pregnancy option, but that is available in a tuning xml and can easily be merged into a new mod.
Lab Assistant
#18 Old 13th Jul 2009 at 5:44 PM Last edited by xalwaysvindicatedx : 13th Jul 2009 at 10:41 PM.
Quote: Originally posted by morgade
Browse 'Sims3GameplayObjects.dll' with Reflector. You will see that objects has the OnStartup method. You need to inject a call at TOP of OnStartup method in the class of the desired object, and in your code use the call to 'AddInteraction'. The sample mod with sources in the documentation do this (but to a Sim, not an object)


I had gotten that far before I posted, but for some reason I couldn't access the Urnstone as a whole (which was, of course, the object I was adding onto). But I did manage to work that out by pure voodoo- I got it imported and it works successfully


Edit: Will you be adding support for scripts located in Scripts.package?
Lab Assistant
#19 Old 14th Jul 2009 at 12:01 AM
Quote: Originally posted by morgade
But this require some work from the modders ... I could help them if i had the mod source code.

To use or modify their code, you'd obviously have to have explicit permission, but couldn't you just decompile their dll just like people do with EA's code to study whatever it is that you're interested in?
Lab Assistant
#20 Old 14th Jul 2009 at 12:03 AM
Since the other thread is obsolete and now locked, I thought I'd repost this comment here.

I know the last thing people want is another file format, but this seems like such a fundamental development of how core mods will be used and developed. A simple new file format, for example a .CMM file that would be a trivial wrapper for the dll and the the injection description xml, would lead to far less confusion and might even encourage developers to make their projects more compatible. Users could then put all the CMM files in a core modules type directory and run your to program to merge and/or launch Sims3.
Lab Assistant
#21 Old 14th Jul 2009 at 1:06 AM
For some reason, I'm getting a fatal error, saying that it cannot find the application. I've redownloaded the merger twice and it hasn't seemed to help. Any ideas?

Lab Assistant
Original Poster
#22 Old 14th Jul 2009 at 1:57 AM
It is trying to load all dll files from the mod merger directory, but it seems is failing to load some of them.

Have you added some dll files to the directory ?
Lab Assistant
#23 Old 14th Jul 2009 at 2:07 AM
Nope, it's copied directly from the zip and I haven't changed it at all, should I try to extract them from the game and copy them over?
Lab Assistant
Original Poster
#24 Old 14th Jul 2009 at 10:43 PM
Quote: Originally posted by xalwaysvindicatedx
Nope, it's copied directly from the zip and I haven't changed it at all, should I try to extract them from the game and copy them over?

Using .NET version 3.5 ?
Lab Assistant
#25 Old 14th Jul 2009 at 11:37 PM
Quote: Originally posted by morgade
Using .NET version 3.5 ?


Yup, I even reinstalled TS3, and it didn't help. Now I get this error:
FATAL ERROR: Copy this program to <The Sims 3 Folder>\ModMerger
but it's already in that directory. It runs with administrator privelages already. I've tried taking out all of the DLL/MOD files from the mods folder, as well as moving the Mods/Packages directory to my desktop.

Where is it checking for the install directory? I'm running on Vista x64, if that makes any difference.
Page 1 of 2