[eINFO] Community Requests thread

In E:wom we had a thread filled with community requests for things that would improve modding or allow us to do cool things. I thought why not start a thread where we can put various things we've thought about. The point of having a single thread is so the devs always knows where to look, and it also keeps the mod forum tidy.

Describe what you want, how it would ideally be implemented, and what you hope to achieve with it. These things are not in any particular order of importance.

 

29,070 views 46 replies
Reply #1 Top

1. Allow items to demand prerequisites from unitstats. Items can already require user level. I would like the possibility of making an item only useable if you have a certain unitstat, let's say strength, above a certain limit. Ideally, it would use the current prereq modifier, but instead of only accepting unitlevel it would also accept any unitstat.

        <Prereq>
            <Type>UnitStat_ThisIsMyNewUnitStat</Type>
            <Attribute>5</Attribute>
        </Prereq>

This would also need reflecting in the UI, the item should be unequippable unless the current hero has the right stats. Hovering over an unequippable item should tell the user what stat is needed, and what amount of it is needed.

The purpose of such a tag can be making certain items, like magic items, require a certain skill-level in unitstats before it can be equipped. For example a tome teaching a character a new spell level might require a very high intelligence. Or Thor, the god of thunder, may be the only one who can lift his hammer since only he is UnitStat_Worthy.

 

2. MeleeAppliesSpell is a trigger used to automatically apply things to a target when the unit owner hits it in melee. Currently, the trigger can only affect whoever is the target, and the target only. I would like spells cast with this trigger to respect the <ApplyToCaster> tag found inside modifiers. For example, I should be able to have a modifier that says "every time this unit strikes an enemy in melee, this unit gains 1 hitpoint". (implemented)

 

3. The spell "chaos" allows us some limited access to randomness in spells. I would like to increase how we can actually use this. Currently, it functions by having the tag <AppliesRandomModifier>1</AppliesRandomModifier> in the spelldef, and it then randomly chooses any one of the modifiers in the spell. I want to expand on this, by introducing one of two possible additional tags. The purpose of both of these tags is to limit what modifiers get chosen, and what modifiers ALWAYS happen no matter what modifier gets chosen.

A new tag that says "This Always Happens" in a spell with <AppliesRandomModifier>. In the below quote, the first modifier should always happen, and the game should randomly choose between the other two.

        <GameModifier>
            <ModType>Unit</ModType>
            <Attribute>DefendableDamage</Attribute>
            <AttackStat>UnitStat_Attack_Cold</AttackStat>
            <Value>12</Value>
            <ThisAlwaysHappens>1</ThisAlwaysHappens>
        </GameModifier>
        <GameModifier>
            <ModType>Unit</ModType>
            <Attribute>DefendableDamage</Attribute>
            <AttackStat>UnitStat_Attack_Cold</AttackStat>
            <Value>12</Value>
        </GameModifier>
        <GameModifier>
            <ModType>Unit</ModType>
            <Attribute>DefendableDamage</Attribute>
            <AttackStat>UnitStat_Attack_Cold</AttackStat>
            <Value>6</Value>
        </GameModifier>

End of quote

In other words the spell should do either 12+12 cold damage, or 12+6 damage. This kind of tag would GREATLY expand on the possible uses of randomness in spells.

Reply #2 Top

1) Auras. Specifically, a softer but more flexible version of this:

 

   <GameModifier>
                <ModType>Unit</ModType>
                <Attribute>AdjustArmyStat</Attribute>
                <StrVal>UnitStat_Defense_Blunt</StrVal>
                <Value>1</Value>
            </GameModifier>

 

Instead of "AdjustArmyStat", you would choose a radius, whether it affects allies or enemies, and all the corresponding units within the radius would get the passive bonus - but only as long as they stay within the radius.

If you really want to make it flexible, make it so that it can not only grant a bonus to the units, but a power ("as long as units stay withing a radius of 1 of this guy, they can use "crushing blow") or it can directly damage, every round, all the units within the radius - basically, an AoE that works every round anchored on the guy.

2) I would also like expanded options similar to "MeleeAppliesSpell"

-Something that works when the attack misses (backswing does this... but we don't have access to its mechanism).

-Something that works when the unit dodges.

-Something triggered on a melee critical hit.

-A "RangeAppliesSpell".

Reply #3 Top

@Werewindlefr It would be useful to have different triggers for dodged melee attack, and dodged ranged attack. I would also like a similar trigger to when a spell gets resisted. It should enable a user to have a trait like - "If this unit resists a spell or magical ability, this unit gains 10 hitpoints".

 

Reply #4 Top

I would like a tag for modifiers that increase or decrease depending on the current Troopcount of the unit. What it would mean is that the adjustunitstat modifier is multiplied by the current troopcount of the unit. For example, a unit may have "For each member in this unit, the defense of the unit is increased by 1".

       <GameModifier>
            <ModType>Unit</ModType>
            <Attribute>AdjustUnitStat</Attribute>
            <StrVal>UnitStat_Defense_Blunt</StrVal>
            <Value>2</Value>
            <PerTroopCount>1</PerTroopCount>
        </GameModifier>

The above would increase the blunt defense by 6, in a 3-man unit. The use, for example, could be an extraordinarily well-trained shieldwall unit that gains synergy effects through better training with each other. Think the movie 300 when they hold back the charge in the start. Because they understand and know each other perfectly, they protect each other flawlessly.

 


 

It would also be neat to have such a stat in reverse.

       <GameModifier>
            <ModType>Unit</ModType>
            <Attribute>AdjustUnitStat</Attribute>
            <StrVal>UnitStat_Defense_Blunt</StrVal>
            <Multiplier>0.9</Multiplier>
            <PerLostTroopCount>1</PerLostTroopCount>
        </GameModifier>

The unit starts at blunt defense X, but after losing a member it goes down to X minus 10%. For example, a unit might start out all pepped for combat, but as they start taking losses they start feeling not so good about it. It could also be used for the opposite - as the unit starts taking casualties, it goes berzerk and actually gain damage output.

This modifier could have all sorts of fun implementations. For example, you face off against 4 small earth elementals. As you kill 1, the others grow in size and power. When it's just one left, you're face to face with a gigantic elemental that is the result of all those small ones joining together.

Or maybe you're fighting chicken-shit goblins. Kill a few in a large unit, the others just turn into meatbags waiting to get punched.

Edit: As it turns out, there already is a similar tag called <WhenUnderPercentHitPoints>50</WhenUnderPercentHitPoints>. This tag is better than the one I proposed.

Reply #5 Top

Another request. I would very much like the unit design trait window to support mutually exclusive traits.

Currently, we can implement mutually exclusive traits and it functions as expected (they get only one bonus from the last clicked), but the UI does not show it so. Currently, when I select such a trait, I can still select the others (but only one is actually applied to the unit). The problem is that the UI is very messy - it looks like both are selected.

My request is that when I select a mutually exclusive trait, any other mutually exclusive trait from the same AbilityBonus group should automatically be de-selected. In addition, the AI would have to follow the same rules, and not bug out while designing such units. In other words, selecting one mutually exclusive trait should rule out selecting any other from the same group when the AI randomly assigns traits.

Here is an example of two traits that should be mutually exclusive: http://pastebin.com/raw.php?i=ixv5Q083

And here is what it currently looks like when I select both: http://i.imgur.com/mgPK0.jpg

 

Reply #6 Top

Give us several more ways to trigger an event. Right now only population and goodie huts can start a quest. Since quests are also being used to do random events, it makes sense to have them trigger from a variety of locations.

Persuasive wall of text here:
 

https://forums.elementalgame.com/416900

Reply #7 Top

Quoting Werewindlefr, reply 2
1) Auras. Specifically, a softer but more flexible version of this:

 

   <GameModifier>
                <ModType>Unit</ModType>
                <Attribute>AdjustArmyStat</Attribute>
                <StrVal>UnitStat_Defense_Blunt</StrVal>
                <Value>1</Value>
            </GameModifier>

 

Instead of "AdjustArmyStat", you would choose a radius, whether it affects allies or enemies, and all the corresponding units within the radius would get the passive bonus - but only as long as they stay within the radius.

If you really want to make it flexible, make it so that it can not only grant a bonus to the units, but a power ("as long as units stay withing a radius of 1 of this guy, they can use "crushing blow") or it can directly damage, every round, all the units within the radius - basically, an AoE that works every round anchored on the guy.

End of Werewindlefr's quote

I think the way to do this would be to have a tag called something like <ApplyToTarget>, and have that gamemodifier call another spell with a radius.

Reply #8 Top

Calling a spell from inside another spell could have all sorts of very cool implementations as well. But I think an "aura" modifier would be easier to implement.

Reply #9 Top

Quoting Heavenfall, reply 1
Allow items to demand prerequisites from unitstats
End of Heavenfall's quote

Please. No. Prerequisite are bad, bad, bad. Even level prerequisite are bad. Just give penalties due to the lack of a specific stat. For instance if you need 12 str and you have 10 then you just apply 80% of the effect of the item. Or something like that.

Reply #10 Top

Quoting Heavenfall, reply 8
Calling a spell from inside another spell could have all sorts of very cool implementations as well. But I think an "aura" modifier would be easier to implement.
End of Heavenfall's quote

It reminds me of "contingence" in D&D. Very usefull spell.

Reply #11 Top

Give Quests a prereq function like buildings have. 

Reply #12 Top

Quoting vieuxchat, reply 9

Quoting Heavenfall, reply 1 Allow items to demand prerequisites from unitstats

Please. No. Prerequisite are bad, bad, bad. Even level prerequisite are bad. Just give penalties due to the lack of a specific stat. For instance if you need 12 str and you have 10 then you just apply 80% of the effect of the item. Or something like that.
End of vieuxchat's quote

A hard limit is required for truly magical items that for example unlock spells, or cause magical effects. Besides, the AI would have an easier time understanding a hard limit than a soft limit.

Reply #13 Top

Allow a tech to spawn new goodie huts like we had in WoM. 

Reply #14 Top

Allow a mutually exclusive choice of buildings to be constructed on top of a raw resource. 

Why? Because I really don't care for the pre-colored mana nodes system. Allowing multiple upgrade paths on the shards would allow for a pretty straightforward redesign of the system. 

Plus, at one point, there were quite a few complete conversion mods in the works that would require this sort of xml function.

Reply #15 Top

I'm going to place this thread here in hopes one of the Devs will see it or one of you fine Modders of note can pass it along. Having done a number of spells in EWOM and now messing with FE I can see a number of items I think we need or need adjusted to really make the magic system come alive in the game either through the Devs or the Mod community. I'm not going to debate manna pools or rates but actual code/mechanics to take this and crank it up a level. So here I go.

1. Mana Shield. Dump it. In its place add a unitstat for Magic HP (call it what you want). This stat would take damage first if there are points in it before the characters hit points. I'd add it to everyone including creatures. With that we can make shiled spells that have more detail and control over cost, points in the shield, holding costs, etc. Along with this stat having attributes for Weak (increase the damage by a percentage of the attack type, fire, piercing, etc), Strong (reduce the incoming damage by a percentage of the type), Reflect (percentage of the damage goes back to the attacker), and  Resistance (casters value to defend against negation spells). I'm sure there are a few other attributes like color and FX. This would allow for a number of spells and abilities to match up with the now various types of damage and really be a cool game mechanic.

2. Summon Item. There really needs to be a way to "summon" not just give (I can do that now) an item. This allows for spells where the caster can say for example, summon a Firesteed to ride. Costs mana to cast, mana to hold, and can be dispelled when the caster does not need it. Right now GiveItem does the first two items, but it can't dispell and remove the item. There are a number of cool ideas here with mounts, weapons, and armor that could be made.

3. A MultipleCast Attribute. We need to have the ability to make spells in which more then one target can be engaged (but not area effect) or hit a single target with multiple shots. I'm looking at the classical fantasy missiles spells were the caster can fire off a number of low damage (or high) attacks from the single cast. The new damage types makes FE a great system for all sorts of missile and even hand to hand attack spells. Ice daggers, rocks, arrows, fire darts, lightning fist, etc. Again the game can get a vast number of cool new spells.

4. A second for an AllwaysTriggers Tag. We need it for spells/weapons/items so a Gamemodifier block will do its thing if there is a random effect or other logical triggers in play.

Reply #16 Top

 

 In E:wom we had three different ways to explain damage or healing inside spelldef <Calculate> tags - Value, MinValue, MaxValue. The rule was, you either had Value or MinValue+MaxValue. The difference was, Value is a single number, but when we did MinValue+MaxValue the game would randomly choose a number between those and count it as Value for the modifier. I would like to see this return, it would help us produce a variety of randomness in spells.

(implemented)

Reply #18 Top

Quoting Heavenfall, reply 16
 

 In E:wom we had three different ways to explain damage or healing inside spelldef <Calculate> tags - Value, MinValue, MaxValue. The rule was, you either had Value or MinValue+MaxValue. The difference was, Value is a single number, but when we did MinValue+MaxValue the game would randomly choose a number between those and count it as Value for the modifier. I would like to see this return, it would help us produce a variety of randomness in spells.

 
End of Heavenfall's quote

Not sure why they removed this.  It allowed a lot more variation in spell effects than the current system.

Reply #19 Top

I'd like to see SpellResourceCost moved into a tag within GameModifiers, rather than the current implementation.

Specifically, I would want to be able to alter mana costs as a spell grew more powerful, usually through number of shards.

Reply #20 Top

Another request:

I think a neat feature would be for spelldefs (spells and abilities) to have two tags,

<AttackingStat> and <DefendingStat> (or named something similar). These stats would determine what stats are rolled when the spell is checked for resists/dodges. For example, if it was a ranged bow attack, we would say Accuracy is the attackstat, and Ranged Dodge is the defending stat.

The purpose here is to allow the modders control of exactly what stat gets chosen, because currently it is not clear at all. But the real purpose is to allow for custom attack abilities. For example, one champion may obtain a "Grapple" ability that rolls Strength vs Strength, and whoever loses (caster or attacker) gets stunned or knocked prone. There may also be spells that are better off dodged than resisted, such as "throw boulder". Or a spellsinger, a very charismatic bard, may "attack" with his Charisma instead of his Spell mastery. Such a character would not wear ordinary spellgear to boost his singingpower.

A third tag to supplement: <IfSpellIsFailureText>, which would be the pop-up text above the target if the spell is resisted. The already implemented, of course, are "Resisted!" and "Dodged".

Reply #21 Top

I forgot to mention it, but it would be great if <AppliesRandomModifier>1</AppliesRandomModifier> would apply on strategic map as well.

(implemented)

Reply #22 Top

I would like to see the addition of a GameModifier flag of vsFlanked, which would allow the gamemodifier to be applied only if the target unit were being flanked, as if it were engaged in melee combat.

Reply #23 Top

Another request, if I have a unittype in the tech tree that becomes unlocked when I research a tech, I would very much like for that unittype to be clickable in the tech tree list in the bottom right. When clicked, the hiergamenon should open and show the relevant entry for the unittype.

In other words, I want to make clicking this

bring me to this

http://i.snag.gy/PyRHm.jpg

Reply #24 Top

Another request,

for the purposes of using Unitstats as Flags (effectively booleans) instead of variable numbers, I would like a new tag that is used like vsHigher and vsLower but instead of making a comparison, it simply activates IF THE ENEMY HAS THE STAT.

For example, we have a custom unitstat called UnitStat_BG_IsChampion which all champions have 1 of. Everyone else has 0.

           <Description>+3 to Accuracy vs Champions</Description>
            <GameModifier>
                <ModType>Unit</ModType>
                <Attribute>AdjustUnitStat</Attribute>
                <StrVal>UnitStat_Accuracy</StrVal>
                <StrVal2>UnitStat_BG_IsChampion</StrVal2>
                <Value>3</Value>
                <IfEnemyHasStat>1</IfEnemyHasStat>
            </GameModifier>
End of quote

 

 

 

 

Even better would be if it functioned like a multiplier, essentially a "for each".

For example,

           <Description>+1 to Accuracy for every point of Strength enemy has</Description>
            <GameModifier>
                <ModType>Unit</ModType>
                <Attribute>AdjustUnitStat</Attribute>
                <StrVal>UnitStat_Accuracy</StrVal>
                <StrVal2>UnitStat_Strength</StrVal2>
                <Value>1</Value>
                <ForEachPointEnemyHas>1</ForEachPointEnemyHas>
            </GameModifier>
End of quote

such a tag would also be immensely useful for our own unit, ex

           <Description>+0.5 to Accuracy for every point of Strength</Description>
            <GameModifier>
                <ModType>Unit</ModType>
                <Attribute>AdjustUnitStat</Attribute>
                <StrVal>UnitStat_Accuracy</StrVal>
                <StrVal2>UnitStat_Strength</StrVal2>
                <Value>0.5</Value>
                <ForEachPointUnitHas>1</ForEachPointUnitHas>
            </GameModifier>
End of quote

as it would allow us to have one unitstat work as an activator of another unitstat.

 

Note that these are not ideas for actual traits, they are simply ways to display how these tags would allow us to do interesting things with our mods. For an idea of the problems we are facing, see this https://forums.elementalgame.com/417871/get;3084548

Reply #25 Top

When you create a custom race there doesn't appear to be any way to provide custom factions based off that race with a certain building style, spellbook, or other things without editing xml. This appears to happen automatically with the ingame races. I would like to be able to add tags to custom races that determine the spellbook, buildingstyle, wallstyle, and cityhubs of factions based off that race. Having to manually edit each faction based off that race is annoying.