What would make the game easier to mod?

Started by Tynan, June 10, 2016, 04:01:27 PM

Previous topic - Next topic

AshbornK9

Quote from: Dingo on October 09, 2016, 01:19:05 AM
Ashborn, that's already possible. There are defs for commonality and commonalityFemale so you can set either one to 0 and have it only apply to one gender.

https://github.com/RimWorldMod/RimworldModdingFiles/blob/master/Defs/TraitDefs/Traits.xml

Example for male-only trait (random value):

<commonality>1</commonality>
<commonalityFemale>0</commonalityFemale>


And female-only (random value):

<commonality>0</commonality>
<commonalityFemale>0.4</commonalityFemale>


Thanks, I asked a few people on the slack and they said there wasn't anything like that.
A canine born from the Ashes of the wasteland.

Click here:

mmance

I would like to see the core textures actually in the folders.  I see that I can add them to overwrite core textures, but it would be nice to just have a folder of png files to edit to modify instead of having to create each one manually.

On a side note, I saw a post with all the resource textures as a zip file for A13, but the link did not work.  Is there a way to get core textures to start with?

Marc-

skullywag

Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

mmance


merthsoft

Quote from: Tynan on August 29, 2016, 06:17:03 PM
So it would be really great if modders could discuss and come up with a top-3 list of things that would help a lot of people at once. Consider this an invitation to discuss with each other what would help you all together.
I think something most of the coders can agree on is some sort of built-in injection method, that allows us to override any function. This is something that I think CCL adds in, but it would be great to have it buit-in. As it is right now I'm basically always copying my injection code from one mod to the next. There are also a few simple relfection methods I've written to help with getting/setting/invoking private members/methods that would be nice to just have built-in as well.

Fluff_Thorrent

Quote from: kaptain_kavern on October 02, 2016, 04:58:44 PM
I had the same reasoning about "fermentation barrels" mechanic.
AFAIK for now, there is no way to define ingredients and products in XML only (like with other production buildings and recipes).
Having this working like other production buildings/recipes could allow us to easily make custom alcohols but also a ton of other things that requires items to "wait" until something happened; if we apply this method to other modded buildings. Like drying food, having to let smokeleaf to dry before consumption, maybe compost, etc


The same goes for butchering and corpses mechanics. It could be nice to have it more customisable via XML.

Yeah this is beyond infuriating. I thought that the new brewing mechanics would make things easier for my mod (Can I Brew It), but it turned out to be another piece of code that I don't have the skill to edit...

sulusdacor

dont know if it came up, but a quick start button. (there was a mod for that back then.) but if you enable dev mode and start the game up there should be a button to quick start a colony. one click and it starts your colony from the menu, with all random stuff.

not sure about other modders maybe its just me and my modding progress. but i usally enable my mod i m working on, add something and then test it out if it workes as intended. if i forgot something etc. for textures to compare them to their vanilla conterparts. so i usally start the game up alot during making a mod, starting a new colony, just to be ingame and test some minor things out. close it again if i changed something and start up again. at the moment and with the scenario this takes a lot of clicks, so a button to speed this up would help a big help for any mod someone is making i assume.

thx for reading, great game btw love it ;)

Vendan

Quote from: sulusdacor on October 18, 2016, 05:57:30 AM
dont know if it came up, but a quick start button. (there was a mod for that back then.) but if you enable dev mode and start the game up there should be a button to quick start a colony. one click and it starts your colony from the menu, with all random stuff.

not sure about other modders maybe its just me and my modding progress. but i usally enable my mod i m working on, add something and then test it out if it workes as intended. if i forgot something etc. for textures to compare them to their vanilla conterparts. so i usally start the game up alot during making a mod, starting a new colony, just to be ingame and test some minor things out. close it again if i changed something and start up again. at the moment and with the scenario this takes a lot of clicks, so a button to speed this up would help a big help for any mod someone is making i assume.

thx for reading, great game btw love it ;)

Make a shortcut, and add "-quicktest" to the end of the target.  That'll launch you straight into a fresh colony.

kaptain_kavern

Quote from: sulusdacor on October 18, 2016, 05:57:30 AM
dont know if it came up, but a quick start button. (there was a mod for that back then.)

It was from CCL

sulusdacor

didnt know about the quicktest thing, thx. kinda makes my point invalid^^

RemingtonRyder

As RimWorld has become more popular, there are more modders and more mods on the forums.

Putting mods into mod lists (that is, topics with one mod per post) reduces the number of threads needed, but it doesn't necessarily make it any easier to find what you're looking for on the Releases board.

Apart from posting in the Announcement topic, I've given up on posting mod releases because it's easier to just tell people to look at my site or on Steam.

sulusdacor

hope thats not a thing already like my last suggestion^^

would like to see some sort of compatibility mechanism to pack inside one mod. so if mod A is used with mod
B, the game would find the files the modder specified in his mod A to use if mod B is active with it together. hope that makes sense. not really a easier to mod thing, but more a mod managment thing. if this is the wrong place to post this, please someone move it.

let me explain a bit:

currently you would have a bunch of seperate downloads for one mod. compatible version with a, compatible version with b, compatible verison with a+b and so on. with steam there will probably be much more mods poping up and doing the same thing. since you have to upload basicly a new mod to add a compatible version this can become quite a challenge. especially when updating your mod and the compatible versions or adding new stuff to the mod.

one of the miniaturisation mods uses some sort of such system in a smaller manner i think(https://ludeon.com/forums/index.php?topic=22763.0). where it checks if another mod is used and then acts accodingly. i would love to see this for all mods. which would be either some sort of file where i could say if mod A is active with my mod, use these files. if not use these. or maybe for xml only some sort like the comment system (would leave all mods using assemblies behind maybe), where i can say read this part if mod A is runing with my mod, if not skip this part. i'm not sure if thats possible or would slow the game to a crawl when loading up the mods. but from a practical standpoint would be nice. since it would only have one mod to update with its included compatible files and not have several. hope it makes sense. more a mod managment thing not so much the process itself.

completly other thing, a bit in the same "several own mods" realm. a language aboutinjected thing would be cool. so that you could have the right mod names in the mod list ingame, with the users language in the description. minor thing and i personaly dont mind. but was adding some files myself and ran into that.

last thing this time totaly on the subject: have mostly done xml modding myself and no coding knowledge so might be a bit biased here. in general i feel like the xml modding is bit easier to get into. so having a lot options there i alwyas a good thing in my eyes. i like that you can change most visible ingame stats of the buildings (like size,power,glow etc) and i think going with this route if future building thingclasses or other stuff is added might be quite good for modders (yeah like the fermenting barrel). i feel it is usally a good thing if you can change the visible stuff in game in the xml. so if you start out you have some sort of fast feedback when trying out stuff. and then have the coding part for the "behind the scenes" stuff. in general i feel the game is a lot of fun to mod and the current system with xml and coding is quite good (from a mostly xml modders perspective).

samuk190

Obviously a mod manager, mod conflict checker and possibility to less conflicts by merging mods. Like mod a creates water. mod b modify water to black colour. mod c modify water to 64 stackable.

Merging> mod total = water black, stackable 64.

Instead of replacing filex mod for filex mod ( that causes conflict ). What about merging option?

ChJees

#163
A Listener\Observer system in which we can hook into important game events such as; Game loading, loaded, save, saved a map.
Also listeners\observers in general for pawns and things.

For how it would work simply look at the Java AWT\Swing libraries for reference in how to add a listener.

interface GameStateListener {
void OnGameStateChange(); //A game state change has occured. e.g Entered play mode, went back to main menu or custom state.
bool OnGameQuitting(); //Return true if it vetoes the quit.
void OnGamePostQuit(); //The game has pretty much quit and is ready to go back to OS.

void OnMapLoading(Map map); //When the map have started to load.
void OnMapPostLoad(Map map); //When the map is loaded and entered a playable state.
void OnMapSaving(Map map); //When the map have started to save.
void OnMapPostSave(Map map); //When the map has finished saving.
void OnMapCleanup(Map map); //When the map is in the process of being unloaded.
void OnMapSetup(Map map); //When the map have loaded the save data but have not yet started putting all things to their positions.
}


This should get a rough idea of what i'm looking for.

Edit:
A way to add our own custom LookMode handlers would be useful for custom data types for all the Scribe classes. During the current creation of my mod i ran into that it was not very flexible in the way the Scribe_Values which is used by Scribe_Collections worked especially.

Example save output of how it currently looks with the ugly way of needing to use Deep LookMode and IExposable implementing classes in order to save data that differs.
Some interface that let you hook in with your own "LookMode" during saving and loading could be neat i guess.

Rikiki

#164
Please set Building_PsychicEmanator and WorkGiver_CookFillHopper classes as public instead of internal. :)