As per Frogboy's request, I'm creating this post so that each community member may list up to 5 items related to modding We (read Modders) each would like to see implemented by Stardock.
1. This does not mean Stardock will ever do anything about making fundamental modding changes to their Elemental franchise. It should simply be seen as a wishlist of things We would appreciate from the developers to make our lives a bit easier during the modding process.
2. We understand that We are an underwhelming minority of the game's users, and We respect the fact that altering modding tools takes labor-hours and thus cash to support. Therefore the issues presented and the changes asked for ought to be reasonable in this respect. However, We are not game developers ourselves, thus We respectfully ask that Stardock try to communicate issues like feasability and impact with us whenever possible.
3. Keep each item as detailed and to the point as possible; including specific examples whenever possible will only help our case.
It's also worth pointing out that Frogboy emphasized low hanging fruit. The easier, resource wise, a requested change is the more likely it will be to get implemented. There is no budget/time for large scale overhaul.
Please read #2 above.
My list:
https://forums.elementalgame.com/441009/get;3329126
Quoted below
These would be my things to fix for general usage (that's my interpretation of "a lot of impact"):
1. Issue: Maps, Effects, Stamps, Tiles crafted by the player in the in-game tools are not immediately available to the player in-game. For example I cannot save a new map and then go New Game and play it. Solution: Easiest thing to do is a pop-up that informs the user he must restart the game after saving one of those. Alternatively put a descriptive text explaining that on each of the save screens.
2. Issue: The player is not able to create two maps in a row in the map maker. The first one is created just fine, but if a second one is created it will have no markers for tile modifiers or things like starting locations or monsters. The player must restart the game to create a new functional map. The issue also appears when loading maps one after another.Solution: This just needs a straight up fix. It is terrible to have to restart the game every time I want to load a map or create more than one new one.
3. Issue: The tile design tool does not sort the name of the tiles alphabetically when a player is attempting to Load a tile. This makes it impossible to load any of the currently used tiles because there are hundreds and hundreds, and without any sorting it is not reasonable to go through it looking for one.Solution: Sort the list of tiles alphabetically when attempting to load one, just like you do in the effects editor.
4. Issue: When using the /mods/ folder to install our mods, there is a large amount of issues that exist but it basically comes down to this: when attempting to overwrite core (installation) objects from the /mods/ folder, many of the object types have bugs or straight up does not work. For example I cannot overwrite a TechDef from the /mods/ folder at all. If I overwrite a <SpellDef> it still saves its <SpellResourceCost> tags. And so on (more info: https://forums.elementalgame.com/434780 ).Solution: Each object type should be treated the same (this is what I call object sanity). Preferably completely overwriting the core object. Not having these overwrites from the /mods/ folder work in any consistent manner is extremely tiring, and EVERY modder that uses the /mods/ folder runs into issues with this.
5. Issue: A player has no direct way of knowing if a mod has been loaded into the game. He must observe the effects of it indirectly. for example I can change Relias name and I can see that with my eyes when selecting sovereign. But if the mod is just slightly more difficult to observe - changed AI values or a rare item drop - the player is in the dark whether the mod is installed properly or not.Solution: When starting up the game, list all mod folders that are loaded from the /mods/ directory. Or list them while on the main menu. Or list them when loading a game after selecting New Game.
Minor, easy fix
6. Issue: When the player creates custom factions using the in-game interface, various PlayerAbilityType are saved in the resulting XML file containing nothing but the <DefaultValue>. For example I create a custom faction now and it will include <A_Additive_FoodPerGrain>25.0000</A_Additive_FoodPerGrain>. When the actual default value is later changed by mod or even by developer patch, the custom faction retains its old, saved defaultvalue. Solution: Do not save the defaultvalues in the custom faction XML. The custom faction, lacking a number, will then get its actual defaultvalue from the right place (the PlayerAbilityType).
1. Currently we seem really limited in our ability to create new terrain. There doesn't seem to be a way to create new terrains that function like forests and have both 3d graphics and 2d cloth map art. How this is implemented is up to the devs but it shouldn't require any UI or AI updates, although it might take a fair bit of coding. This is a rather large limit on our ability to expand the FE universe and I would like to see it changed.
This one. It perpuzzles me to no end that it doesn't already work like this.
My 5 modding changes:
1. All InternalNames should be 100% modifiable through the mods folder. Currently some InternalNames (like TechsDef) are not modifiable using a file in the mods folder. This harms modding because end users will be much less inclined to install mods which overwrite the core game files that involve more complex installation procedures, or re-installation of those files every time an official patch is installed. It also makes bug hunting a nightmare for the modder.
2. All modded files should overwrite or modify core InternalNames in exactly the same way. Currently, the modder needs to memorize a certain set of rules and conditions (thanks to Heavenfall, nicely laid out) when modding core InternalNames through the MODS folder. For instance in SpellDefs I need to know that I can overwrite every single value in the SpellDef, with the exception of Prereq, SpellResourceCost, and I believe some of the SpellEffects modifiers. This is silly and frustrating to no end.
My suggested solution is when loading the mod, make each InternalName in the MODS folder simply overwrite the entire contents of the core file's InternalName. This would make modding much easrier because we could then cut-and-paste the InternalName we want to modify into a new file, modify the values we want changed, and save it into our mod.
Others have suggested adding new tags like <overwrite> or <modify> but I personally think this would be more labor intensive, less stable, and more confusing to modders in the long run.
3. AND/OR Prerequisite Types. Currently prerequisites are somewhat hard-coded by the type of InternalName in which they are contained. SpellDef prereqs are always 'AND' prereqs, meaning all the the prereqs are required before the spell can be cast by the unit. AbilityBonusOption prereqs are always 'OR' if they are of the same type but they are 'AND' if they are of different types. So for instance an AbilityBonusOption with both an Allegiance prereq and an Unit prereq will require both prereqs before the unit can possibly select the ability on level-up. But an ability with two unit prereqs will only require one of those prereqs to be fulfilled in order to select the ability on level-up. I'm pretty sure RestrictedAbilityBonusOption prereqs are 'AND' prereqs, but I'm not 100% sure on that.
My suggested solution would be splitting and representing prereqs like this:
<ANDPrereq> <Type>AbilityBonusOption</Type> <Target>Unit</Target> <Attribute>Death1</Attribute> </ANDPrereq>
<ORPrereq> <Type>AbilityBonusOption</Type> <Target>Unit</Target> <Attribute>Fire1</Attribute> </ORPrereq>
<ORPrereq> <Type>AbilityBonusOption</Type> <Target>Unit</Target> <Attribute>Air1</Attribute> </ORPrereq>
An ability or spell like this would require the unit to have Death1 AND (Fire1 OR Air1) to unlock. You could also introduce multiple types by introducing an ID into the ORPrereq tag like this:
<ORPrereq> <ID>1</ID> <Type>AbilityBonusOption</Type> <Target>Unit</Target> <Attribute>Death1</Attribute> </ORPrereq>
<ORPrereq> <ID>1</ID> <Type>AbilityBonusOption</Type> <Target>Unit</Target> <Attribute>Water1</Attribute> </ORPrereq>
<ORPrereq> <ID>2</ID> <Type>AbilityBonusOption</Type> <Target>Unit</Target> <Attribute>Fire1</Attribute> </ORPrereq>
<ORPrereq> <ID>2</ID> <Type>AbilityBonusOption</Type> <Target>Unit</Target> <Attribute>Air1</Attribute> </ORPrereq>
An ability or spell like this would require the unit to have (Death1 OR Water1) AND (Fire1 OR Air1) to unlock.
After a lot of thought, if these three things got fixed (heck, if only #1 and #2 were fixed) about 95% of my modding woes would be alleviated. I could get into more detailed items, but it's not worth mentioning them at this time.
Right now my main complaint with modding (other than those things listed above) is that creating new Quests is painful! The XML is cumbersome to figure out how it works and is flaky even when done correctly. But I realize this would probably be a big fix so I'm not holding my breath.
If you could be more specific I'm sure SD would be more inclined to look at it.
I asked about these before in the Mod forum and was pretty much told that the way the game works now it either can't be done, or at least not with the results I wanted. I've only dabbled with coding some stuff for FE, but these are some problems I've bumped up against;
1. I'm not really a fan of how all encompassing Beastmaster is.
Lets say I wanted to target an Albino Rock Spider, which is currently classified as Creature Type "Beast", with a spell
UnitType InternalName="AlbinoRockSpider"><DisplayName>Albino Rock Spider</DisplayName> <CreatureType>Beast</CreatureType> <Class>Spider</Class>
Normally you would use the line below in your ability to Tame/Target the "Beast"
<SpellTargetCreatureType>Beast</SpellTargetCreatureType>
I would like to be able to target the <Class> instead of the CreatureType.
This way I could create a spell/ability that would target Spiders and not the entire "Beast" creature types
2. For Enemy units that don't have a Creature or Class type defined like "Syndicate", if they could be assigned one by recreating the unit in a Mod folder that would supersede the coremonsterunittypes file. I think this kinda ties into HF's #4 above.
This is not possible currently as per what Frogboy said about adding some python or other programming language support. Unless I am mistaken this is a core functionality of the base game and can not be changed easily. This also ties into being about to restrict items by a prereq other than unitstat_level. This is all deeply hard coded data that is not easily changed as the repercussions are that you would basically have to recode a large portion of the game. Now it may be possible to instead of changing the base function of Prereq just add a secondary prereq function or possibly a tertiary function. The base function is as you have stated a AND function. I would love to see an IF as well as the OR statement without changing the original prereq function, this allows the gameplay to be expanded without the cost of the extensive recoding time necessary to implement the way you are describing. This is only possible if the base engine can support adding additional selections of this type. Only the people intimately familiar with the code will know this.
Umm...you do realize that ALL of the requests in this thread are going to require SOME coding to make work, right? I even mention the wonky hard-coded-ness of this function in the first sentence.
But it seems to me there are already both types of prereqs in existence in the game. There just needs to be some xml put in place to accommodate the code.
Just out of curiosity where have you found an IF and OR functions in the game's coding? By IF I mean and IF/THEN scenario.
In reply #6 (the one you quoted in reply #10), I mentioned that in SpellDef prereqs work like 'AND' and in AbilityBonusOption they work like 'OR'. I'm not worried about IF/THEN.
Well, I am not a modder dealing with code and the such, so my needs are a little bit simple and related to the Builder's Forge.
1- Shortcuts. Something so simple as being able to copy and paste an object (retaining the same properties of scale and position in the different axis) would be really cool and save me a lot of time. I have tried ctrl-c and ctrl-v, but I suspect that, if it exists, it is a little bit more complicated.
2- Favourites. At the moment, I am trying to work out a concept of swamp-city, with ruins, swamp trees and mainly buildings created with different pieces of swamp ones. There is a "favourites" option in the structures section, but I don't seem to be able to make it work and select all the swamp buildings that I am using over and over...
3- Listing. I am trying to organice my buildings by naming them with AA_Whatever, AB_Whatever, etc. Problem is, when I load buildings they appear in whatever order they want... And there are quite a few! Perhaps it would be possible to make folders, so that you can organice the models easier?
As you can see, most of my problems are really little, really silly things. I actually suspect that I would be able to deal with them if there only was some kind of tutorial/user manual (because I really don't believe that there isn't a short cut for copy and paste... otherwise: poor developers!).
That said, I really appreciate the work that is being done to improve the game. I checked a friend's Elemental: War of Magic and can see how much effort it is being made to improve on a concept that was really cool (and the improvements are obvious). So, good job!
OK adding my top 5 from the other thread:
1) The object sanity / inconsistencies. The best option would be some kind of <overwrite>1</overwrite> tag or similar that lets us specify whether an object is to be replaced or updated. It's better to have the option (to update) than to have it default to overwrite everything. However... making it consistently overwrite everything would be better than what we have now.
2) Being able to mod the tech tree, and elementaldefs from the mod folder. Ideally it should be possible to mod *everything* from the mod folder... but these 2 would be the first priority (from my point of view). Specifically, from the mod folder, would be great to be able to:
- create a new TechDef object, or update/overwrite an existing one
- create a new TechTree object, or update/overwrite an existing one
- create a new TechCategory object, or update/overwrite an existing one
3) I'm going to steal one of yours here Frogboy, because it's pretty much what I had in mind but you explained it better than I would have in any case. This one:
Let the player choose MODS where it works as following:
* In the mods folder, each sub-directory that has an elementaldefs.xml would count as a mod and the user could pick.
* Elementaldefs.xml should have an option to disable the following things in it:
a. The base city improvements (so only improvements in this directory will be seen)
b. The base player technologies (so only technologies in this directory will be able to be seen)
c. the base magic spells (...)
Yes please, I'll have one of those thanks!
4) As pointed out by HF, the file list in the Load screen of the tile editor (the Workshop?) is in a weird order (might be update date I think currently). Sort it by alpha as suggested.
5) I'd like to be able to put a <ModType>CityDefenseSummon</ModType> on non-city based improvements, i.e. Outposts and LimitedCapUnit Camps (i.e. Ogre Camp etc)... so that we can mod in a token defense force for them.
Wait I have a #6, another little one:
6) Being able to have a <Prereq> that is an <Improvement> for training a unit. Can't do this currently. So the idea would be that you can only train a particular UnitType (eg. Dragons) in city X if you have a particular Improvement built (eg. Dragon Breeding Center) in city X. So something like this in UnitType definition:
<Prereq> <Type>Improvement</Type> <Attribute>DragonBreedingCenter</Attribute> <Target>City</Target></Prereq>
I've asked Derek to check this thread out.
Great, thanks.
Derek - I highly recommend reply #15, that guy really knows his stuff.
The tag you are looking for is:
<Prereq> <Type>BuildingRequirement</Type> <Attribute>DragonBreedingCenter</Attribute></Prereq>
Thanks for the feedback. Some are pretty ambiscious, and some are relatively simple. I've entered enhancement requests for the devs and we will be prioritizing them and putitng them on the calendar.
By the way, I really love that you guys are pointing out what the issue is, why its and issue and how you would prefer it to be fixed. That makes it so much easier for us to evaluate and understand.
Thanks!
Wow that was quick!
Pretty sure that doesn't work as i'm 90% sure I tried it in the past, but i'll have another go tomorrow and update this post with the result. Thanks.
Edit... ok tested this now because you got me curious. Seems to be bugged. Here's my test case:
1) Start test game using Altarian faction. I checked I can I can build "Militia" straight from a newly settled city.
2) Added the following to <UnitType InternalName="Unit_Peasant_Altarian"> (i.e. the Altar "Militia").
<Prereq> <Type>BuildingRequirement</Type> <Attribute>TowerOfDominion</Attribute></Prereq>
FYI I added this directly in the Core file however from past experience I don't think it makes any difference whether you do it there or a mod folder.
3) Start test game using Altarian faction and settle city. The "Militia" unit now does not appear as a trainable unit. So the Prereq appears to have blocked it.. so far so good but....
4) Built a Tower Of Dominion, and advanced an extra turn after it was completed.
5) Check the list of trainable units, and Militia still doesn't appear... so it doesn't appear to have "unlocked" the unit once the Tower of Dominion was constructed. That's what I am suggesting is the bug.
So seems it blocks training of the unit but doesn't unlock the unit once the improvement is built. Now it's quite possible i've done something wrong or missed something... but i've tested this a lot and have never got it to work.
Happy to be proven wrong.
You are correct, its broke. Drat.
But the good news is that we will get it fixed! Thanks, for the heads up.
Derek, can you post that prioritized list and calendar once you compile it? Even if you miss the target dates, we will know what is worked on next.
I'd like to suggest one that is either quite easy or a huge lot of work, depending on the architecture of the XML reader:
Allow a formula wherever there is a number.
If there is a central parser for numbers, it shouldn't be too hard to replace it with the formula parser.
And about the formulas: They are in their own little language. Does this language have a formal definition (e.g. in BNF), or is it defined just by what the parser is willing to digest?
3 Things I'd like to see in the coming modding upgrades:
1) Formulas, such as If X do Y. This will allow modders, and most likely Stardock, to create some great many things.
2) Data pulling for everything. Last I tried, I couldn't pull the amount of gilder from the game, and so unable to interact with it. This will allow a greater variety of effects, such as "Reduce unrest by 5% of your gilder", instead of just "5 times your shards".
3) Allow introduction and changes of visible unit stats. This, most likely, is the biggest code-wise request and by far the least important. What I wish is for the same way we got 3 attack types (Slashing, Piercing, Blunt), I could remove them and put Magical instead with a different icon, as well as introduce a 5th resistance, as well as a damage type.
I'm aware that it's partly possible to do most of this, the issue is mostly the interface, not hidden variables.
I haven't had the time to mod lately, so I might be out of date.
Keep up the good work, stardock.
From a non-modder, someone pointed out that modders are the minority...
While they are the minority they can drastically extend the life of any given game, keeping it on the playlist and in conversations much beyond a standard game.
It is absolutely awesome that a) The company reads/posts on the forums and is actually going to take some effort to alleviate some of the issues and c) that there are gamers involved enough to spend the effort to create mods in the first place.
Thanks guys
From my comments on the other thread:
1 - Fix what's broken. Fix the tags that don't work, the ones that work half of the time and the mod folder.
2 - Document. It does not have to be a fully detailed manual, but at least we need to know what tags we can use, when we can use them and which arguments they can have. I get amazed at how many tags there are hidden in the XML files. There are so many things we can do, but because they are hidden we don't know. And I wonder, how many tags can be used that we don't know just because there is not an "example" in the files?
Those two changes alone IMHO would greatly improve the "broken" feeling and change it to something complete and working.
From there, improve. So you can choose anything you wish for 3, 4 and 5
There are many great features available to you once you register, including:
Sign in or Create Account