Download of the Quest
First of, you can grab the quest here if you want. Just dump the xml in your \units\ folder.
It's a lvl 1 quest available from Inns.
Foreword and Tools
Now, it took me the better part of yesterday and a good chunk of time today to get it in a state that I'd consider "working". It is by no means pretty, however, or even that exciting.
When I originally set out to make it, I wanted to add some functionality that I ended up dropping (More on that in a bit), simply because I couldn't see a way get it to work, or if it was even possible to do.
There were also considerable time spent hammering my face in the keyboard over issues I could not figure out, only to realize that they were due to pre-set values in other files (More on that later).
A lot of time was also spent looking through Stardock's incoherent XML Quest files, sorry chaps but you could have done that way better. Looking for dependencies and trying to make heads and tails of the various quests. Without any form of reference point, it has been a lot of stabbing in the dark, trying to figure out how the quests are put together, what parameters can be adjusted and so forth. My biggest pet peeve, is that not all quests have comments, and that there is no coherent order in which they are written, some functions come before others in some quests, and after others in other quests. It made it frustratingly more annoying to piece together the Dawn quest. Not to mention, some one-shot quests are simply dumped in the Quest folder or throughout other files, where as I would have expected them all to more consolidated.
Through out this process I also looked around for a better editor for these XML files, as I originally set out I used Notepad, but quickly moved to Notepad++, but I also looked at Eclipse and Visual Studio but came full circle back to Notepad++ as my tool of preference.
Another great program I came across is SadMan Software's Search. It allows you to search through the whole C:\Program Files (x86)\Stardock Games\Elemental\data\English fairly quickly, looking for specific strings of text, it can do "And", "Or", "And Not", and Case Sensitive searches, it has been invaluable in finding specific files and information in them. It's very fast and accurate.
Hopefully my effort can serve as a reference to other aspiring quest makers in the community.
Testing The Quest
As for testing the quest, I used the cheat parameter on the Elemental shortcut.
"C:\Program Files (x86)\Stardock Games\Elemental\Elemental.exe" cheat
This allows you to use various commands in game.
The list I know ofCTRL + M = +1000 to all ResoucesCTRL + S = AutosaveCTRL + B = Completes buildings projectsCTRL + J = Completes units projects CTRL + D = Converts selected Enemy partyCTRL + C = Copy selected party leadersCTRL + F = Gives you a spouse and childrenCTRL + X = Hide/Show InterfaceCTRL + K = Kill selected partyCTRL + P = Level Up Party leadersCTRL + R = Research Current TechCTRL + Q = Research Spells (A Little)CTRL + E = Research Spells (A Lot)CTRL + U = Reveal MapCTRL + Z = Starts/Stops Auto TurnCTRL + T = Teleports the selected character/unit to the cursorCTRL + K = Kill selected party
In other to make it easier to test just this quest, without the interference from other quests, I removed Quest_EscortNobleman1.xml, Quest_EscortNoblewoman1.xml, Quest_CommonQuests.xml and Quests_Level1.xml from the \\English\CoreQuests folder. They are all files with level 1 quests in them.
I removed the cache file once removing those.
Core files and Unit folder
Don't edit the core files in the \\data\English folder.
Always copy files to your \\Unit\ folder.
However if for some reason you mess up the core files, you can fix this.
Open Impulse and click Shift+Right Click on Elemental, there is a Verify Installation option. It'll correct your files and re-download them again.
Know also that Elemental makes a binary file once it has parsed all the XML files, this file is found in \\Data. If you delete this cache, Elemental will need to recompile it, however you can get Elemental to do just that by adding /CreateXMLBinary to the shortcut. If you do not have this parameter, starting a game will take considerably longer, as Elemental parses all the XML files.
Remember to move files out of \\Units before doing this, I think it may include them in the cache.
The Dawn Quest XML & Commentary
Pretty pictures
I originally intended to incorporate the World NPC Level increase from Adventuring/Domination technology research, in as a consequence for failing to complete the quest.
But I couldn't figure out how to get it to work, if it's at all possible.
Awesome work and much appreciated. I quickly gave up modding but with this information I might give another try. Game sorely needs more quests.
Looks good, but I can't find the units folder. Can you give a full path?
Vista/7
C:\Users\UserName\Documents\My Games\Elemental\Units
Updated OP with commentary for the XML instead of just the XML dump.
Ah, Documents, notv Program Files. Thank you very much.
But why the units folder? Wouldn't it go in the quests folder?
I was gonna do a writeup of all the variables possible for each of the tags, but it's been put on hold.
Here's what I have so far. If anyone wants to finish the list, by all means, knock your self out
<QuestClass> Minor / Major<Repeatable> 0 / 1<TriggerType> QuestLocation / City Population<Triggerchance> 1-100<TriggerOrigin> EventLocation / CapitalCity<PrefQuestLoc> Quest_Level1_Inn01, Quest_Level2_Hut01, Quest_Level3_Ruin01, Quest_Level4_Dungeon01, Quest_Level5_Fortress1<ModType> Player, Unit, Resource, GiveItem, ResouceMultiplier, City, ConstructionResourceCost, LevelBarrier, Map, TacticalUnit<Attribute> AbilityBonus, UnlockTech, Materials, Metal, AdjustUnitStat, BuildingDiscount, Treasury, Research, <UnitClass> QuestBanditCamp, DragonFountain, Level1_Hut_01, Terroizedvillage, LostHorse, TerroizedWorkshop, Level2_WolfPack_01, Level1_Treasure_01, Level2_AlchemistLab....
I'm pretty sure this was used in creature nests during beta. Remember those spider webs that constantly spawned spiders that roamed around a bit until you cleared the notable location?
Also, here's something new to ponder. What's the difference between <NextObjectiveID>-1</NextObjectiveID> and <QuestEnd>1</QuestEnd>? Quest_RatsInTheRuins uses QuestEnd tags instead of NextObjectiveID for its final objective. As far as I can tell, NextQuestObjectiveID -1 tends to be used when you're "canceling" action. Like if you look at the Lost Horse quest. When prompted to fight you can either accept, which sets up the next objective, or decline which sets it to -1 and you can hit the tile again.
But yeah, the quest formatting is just all over the place.
Good observation and questions Annatar, it warrants experimenting with at some point.
As for roaming monster, if you spawn an encounter, but lose or flee, it should put that encounter on the world map (it did with me in the quest for the forge), and I figured that the roaming radius would dictate how far away from the Location they would run around.
Ah, that is an interesting mechanic. In that case yeah, I imagine you're quite correct on the roam radius
Here's another thing.. have you gotten to play around with more than 2 choices of action?
The Worldawareness and updatespawnratting are both hardcoded, or atleast nobody knows how to modify them, so it would mess up the techs if you changed them anyway. Atleast as far as I have read from what people have written here.
Not yet. I could easily see there being 4 options available, but the hard part is actually making something other then hello spawn monsters, or hello you suck for saying no to this quest.
In theory you could make a choice that grants you an permanent NPC, or kills you by adding negative HP (like the rat quest does upon clearing the nest).
I might experiment with those at a later stage.
Good to know.
I actually decided a 3-option quest to see if it works.
I mainly asked because currently, the initial objective always has the NextObjectiveID of 1, and your choice to fight only creates what to fight, the NextObjectiveID bleeds through. Your choice not to fight sets the NextObjectiveID to -1 and resets. But the interaction between the objective's NextObjectiveID and the ChoiceDef's NextObjectiveID isn't clear. Does it overwrite? Is NextObjectiveID -1 treated as a "break", so when you hit it it just automatically exits the quest? If the ChoiceDef's NextObjectiveID does not overwrite anything and -1 is like a "break", then I don't actually see multi-choice objectives working because you either have the static NextObjectiveID defined in the current objective, or -1.
Ok, let me see if I understand you right.
"initial objective always has the NextObjectiveID of 1", yes because initial objective is objective 0. After 0 comes 1, it follows a chronological order. You could make it 5, as long as you are consistent throughout your file. But for sanity purposes, keep it simple I say.
Initial choices to fight are based in Objective0. But define their own <NextObjectiveID>. In one of the choices I could have utilized -1, to end the quest right there after picking one of the choices, and let the other spawn the monsters and reward loot. But I tried to make it a little more interesting.
Took me five minutes, but I finally understand what you mean now. Yes there are <NextObjectiveID>1</NextObjectiveID> in the <QuestObjectiveDef InternalName="Objective0"> definitions, I however suspect that it's an error, and shouldn't have been there. I was going to write, I need to test what happens when I delete that line, but I already answered that when I made the example quest below.
Multiple choice should still be very possible.
See this code for reference. It basically loops the quest from the choice. I threw it together quickly, based on first half of the Dawn Quest. Note how <NextObjectiveID>1</NextObjectiveID> has no relevance to the quest, the <NextObjectiveID>0</NextObjectiveID> in the choice overruled it.
Hi, I tried to create a test quest using your guide but couldn't get it to work.
Following your steps I:
Is there a step I'm missing here?
Thanks
* EDIT * Ah nevermind, I found the issue - the nobleman escort quest did not have a triggerchance element by default
For what it's worth, simply move the files to a temporary location next time, you don't have to re-create the cache while testing, if you can live with the long load times when the cache is not present.
Novaburst, thank you for taking the time to write up this information. It's very helpful.
There are many great features available to you once you register, including:
Sign in or Create Account