Conquest of Elysium 5

Conquest of Elysium 5

 This topic has been pinned, so it's probably important
Modding Resource Compendium
I am currently writing up a guide containing all currently available modding reference material, workarounds, tricks, etc. which can be found here:

https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=2590582675

Anyone wishing to contribute, correct, request specifics, or just yell obscenities at me, feel free to post here or in the guide's comments.

As of right now, the guide is only really missing syntax tips, examples of various code blocks, spritework info (absolutely not my forte) and workflow improvement tips, all of which I hope to get to by the end of today.
Last edited by Commisar Jon Fuklaw; 5 Sep, 2021 @ 12:15am
< >
Showing 1-15 of 17 comments
Oya 1 Sep, 2021 @ 2:43am 
Hey Commissar, this guide of yours is a very a good idea. Here is some information on sprite modding that will make things easier for everyone.
The .png format is easier to use. Keep in mind that .png files have a transparency layer that can be manipulated only with special software. A great resource for sprites is the online dominions inspector where you can right-click and save any sprite on .png format. You can find great game sprite sheets online by a google image search.
Windows Paint does not save the transparency layer of a .png file so it is useless for our purposes. The free Xnview software is very simple and easy to use. When you work with sprite sheets, you can use crop to select a sprite and then save as png with the transparency layer.
The .tga format does not need a transparency layer if it has a black background color (RGB 0 0 0). Any image that has a black background color and the right size can be converted to .tga format and work just fine.
The dominions modding community has created a vast repository of sprites in .tga format. The problem with .tga is that you cannot preview in windows so you might want to do a batch conversion with Xnview for easy preview.
Graphical illustration software is beyond the scope of this guide.
Cheers!
Last edited by Oya; 3 Sep, 2021 @ 3:05am
If you want to contribute more sprite related info, just let me know. As I've said many times, I know somewhere between jack and ♥♥♥♥ about pictures and artsy stuff. I'll probably just screw it up.
Last edited by Commisar Jon Fuklaw; 1 Sep, 2021 @ 9:19am
Maverick00053 1 Sep, 2021 @ 6:44pm 
I was wondering if there happens to be a master reference guide somewhere for all monster/weapons/items in game for modding? I would prefer reusing assets already in game versus making my own completely from scratch.
Commisar Jon Fuklaw 1 Sep, 2021 @ 7:18pm 
Originally posted by Maverick00053:
snip

Click on the guide. Do it. Do it now if you want to live.
Last edited by Commisar Jon Fuklaw; 1 Sep, 2021 @ 7:23pm
Maverick00053 1 Sep, 2021 @ 8:56pm 
Originally posted by Commisar Jon ♥♥♥♥♥♥:
Originally posted by Maverick00053:
snip

Click on the guide. Do it. Do it now if you want to live.
I am blind. Thank you.
Art section added. It's minimal, but functional. If anyone has a need for more specific examples or examples of how event scripting works (plzno, events in this hurt), speak up and I shall provide.

Update:
Further expanded the art section to account for things that I am qualified to talk about and which are definitely mentioned nowhere else.

Also made some corrections to the events section based on information that has since come to light.
Last edited by Commisar Jon Fuklaw; 5 Sep, 2021 @ 1:10am
Oya 6 Sep, 2021 @ 2:09am 
Hi Commissar! Looking forward to see your art section, but the take-home message is that with the recent support of .png format, you don't have to be a pixel-artist, everyone can do it. For the rest of the guide I don't think you have much to say because people learn modding only by example, that is by watching what others are doing and then doing it themselves.
Events will be the most interesting part of the guide. It is important to have an event that not only works properly but also is put into some kind of narrative context (I mean a description that makes some sense). We have much to learn yet, especially, on the use of variables.
Another issue you might want to address is modding from a philosophical/game design point of view. There is a certain lack of originality in modding with some rare exceptions like the Confluence Mod for Dominions 5. So what makes a mod original and what makes the time that a modder puts into the game worthwhile?
The problem with strategy games is that they hook you much the same way as other forms of entertainment and social media. First they create an itch, then you scratch from time to time, your scratch provide a variable reward, and the next thing you know is that you are hooked. So, first things first, why are we doing it anyway?
Regarding events:
I've not put much in in the way of example code for events simply due to the fact that I don't use events very much and there's not much variation in what I'd need. I suppose I could expand the section to include a couple of actually useful examples, though.

Regarding event variables:
Variables should be simple to implement into events and ritual-based triggers for said events, if potentially time consuming. For example, even though I can't see it (nobody has ripped scenarios or event data), I strongly suspect that the majority of VoE ceremonies do is change event variables. The problem with events is that they are somewhat imprecise and you may need a lot of them to achieve some relatively simple things, while other things simply don't have an available function to execute. Not having examples does not help, as you say.

As for the rest:
As for design philosophy and philosophy in general, I suspect only the former is within the scope of the guide, and then only barely. I know there's the very occasional talk about balance vs narrative effect or just balance in general around these parts. As for myself, I've seen the things that can be done at all points of the narrative/balance slider over the decades and posit that however much effort one puts into narrating or balancing is solely at the discretion of the person/people making something. It just needs to remain relatively consistent and the idea behind it needs to be 'good'. I'll not get into that philosophical can of worms and will just define 'good' as 'changes or content that the creator and/or public believes improves the existing experience or adds to the existing experience in a meaningful way'. Such things are typically up to the individual.
Oya 8 Sep, 2021 @ 12:20am 
On Self-Knowledge
I agree with you that philosophical speculation is a can of worms and you should not use the steam forum as your soapbox to pontificate and vituperate. Let me say only this: Most strategy players play obsessively and compulsively and end up tired, frustrated and confused. Modding a game puts you in the position of the game designer and thus gives you the chance to think imaginatively and creatively and break the vicious circle of repetitive and addictive gaming. Enough said.
On Events
There are two main problems with events. Narrative and Optimization. I leave Narrative aside for the moment. Optimization is a real issue because with so many planes and units moving around, square events can take a long time to resolve. For example I sometimes use the <killsquare> command to depopulate other planes and events resolve instantly. With early-game spawning events I disable them manually after the trigger. So we need to play-test and find a work-around if possible.
Two Examples
I give two examples of events simulating the Cataclysm and Astral Corruption Events from Dominions. They trigger for player number 0 (red) playing the Scourge Lord. The descriptions are addressed to the Scourge Lord and thus have a middle-eastern flavor. The implication is that the Lord has dabbled with forbidden knowledge and has incurred the wrath of heaven. Descriptions are from the early fantasy novel Vathek of William Beckford.
playerevent #first warning +player 0 +turnnbr 0 #midsummer first year message -2 "A sudden hurricane blew out the lights, and rocked the habitations. For hours, a palpable darkness prevailed and sounds were heard at a distance. The air was filled with deplorable shrieks, frightful roarings, and the sound of tymbals. Chilled with terror, the people of the desert concluded that the Iblis with his exterminating angels, had sent forth his plagues on the earth." endevent playerevent #second warning +player 0 +turnnbr 1 #late summer first year message -2 "An angel flying through the midst of heaven, said with a loud voice, Woe unto you, King! Thy crimes are already completed; and, art thou now hastening towards thy punishment? Beyond these mountains, Iblis and his accursed devils hold their infernal empire; and seduced by malignant phantoms, thou art proceeding to surrender thyself to them! Abandon thy atrocious purpose, destroy thy tower, with all its abominations: drive the wicked from thy councils, respect the ministers of the Prophet; compensate for thy impieties, and instead of squandering thy days in voluptuous indulgence, lament thy crimes on the sepulchres of thy ancestors. Thou beholdest the clouds that obscure the sun. At the instant he recovers his splendour, if thy heart be not changed, the time of mercy assigned thee will be past for ever." endevent selectmonster "Fiend of Darkness" prebatweapon 1 513 #disease against magic resistance prebatweapon 2 513 #curse against magic resistance #50% triggers an assasination attempt against the Scourge Lord squareevent +player 0 +hasunithere 0 "Scourge Lord" +terrain -98 #elysium +minturnnbr 3 #from early fall on +chance 50 newunits 28 "Fiend of Darkness" message -2 "An Emmissary from Heaven, flying through the midst of heaven cursed our King" endevent #50% scourge winds change their allegiance squareevent +player 0 +hasunithere 0 "Scourge Wind" +terrain -98 #elysium +minturnnbr 3 #from early fall on +chance 50 changeowner 24 #indepenents message -2 "From their loud abysses howling, throng the genii of the storm, urging the rage of whirlwind against our King" endevent
Last edited by Oya; 8 Sep, 2021 @ 12:22am
Events section has been expanded with more general uses of events that modders might want, but they're mostly there to help provide a basic understanding of variables and trigger logic. I doubt most people will bother with event triggers beyond basic IF/THEN + ordering trigger logic, but it's good to remind people of that one little line in event modding that says you can invert triggers.
Oya 13 Sep, 2021 @ 9:02am 
I had never realized that <setvar> can take a string as an argument, thanks. By the way Dynamic Elysium mod contains many examples worth studying. Events interest me as the only way to create a real challenge when you play single-player. I also hope for the implementation of objectives <18> and <19>.
Cheers!
Unless the logic is really weird, an event should be capable of setting a variable for future checks on that or other events.

Admittedly, I haven't done nearly as much hands on testing as I'd like, so I could be blowing smoke out my ass.
Last edited by Commisar Jon Fuklaw; 13 Sep, 2021 @ 9:42am
Oya 14 Sep, 2021 @ 8:04am 
I did some play-testing and confirmed that <setvar> and <varequals> can have only a number as an argument. I cannot resist the temptation to provide one example of my own.

squareevent #counts how many Sheikhs on how many different squares player number 0 owns +player 0 +hasunithere 0 "Sheikh" message -2 "Sheikh event trigerred" #message for play-testing purposes addvar 1 1 #variable number 1 value 1 endevent playerevent #periodic attack on home citadel when above event has triggered at least three times +player 0 +vargreater 1 3 #variable number 1 equals or greater than 3(varequal would not work). message -2 "The filthy and lustful Sheikhs have aroused the hate of the tribes. The evilness of their days shall bring down the Mountaineers on you." newunits 26 "30*Camel Rider" #attack on home citadel setvar 1 1 #cycle begins anew endevent

#for play-testing
#selectclass 25 #scourge lord
#addcomrec 100 5 0 0 "Sheikh"
Last edited by Oya; 14 Sep, 2021 @ 8:05am
Huh. Well, that's new. I've seen material that had non-integer variable names. Either those events didn't work or something changed.
Oya 24 Sep, 2021 @ 11:31pm 
This information is based upon my observations of the behavior of AI units on the Elysian Plane.

1 walk randomly on same plane
Random occasional movement one square at a time.
2 crusade
Moves directly against enemy citadels
3 inquisition/saint
Moves directly against enemy citadels but also likely to visit squares with human population.
4 rider
Moves towards enemy citadels in a more of less straight line. Moves aggressively. Unpredictable because changes targets often.
5 angel
Likely to visit squares with human population.
6 devil
Likely to visit squares with human population.
7 ghost
Likely to visit squares with many dead.
8 visit citadels & settlements
Self-explanatory.
9 dragon
Occasionally wanders around its home square undertaking raid missions within a certain distance.
10 merchant
Likely to visit squares with human population.
11 celestial angel
Celestial Angels rarely move on their home plane. Unknown Behavior on the Elysian Plane.
12 primal gods
Primal Gods rarely move on their home plane. Unknown Behavior on the Elysian Plane.
13 wild hunt
Unknown Behavior.
14 vassal
Unknown Behavior.
15 orchard of souls
Unknown Behavior.
16 pirate captain
Moves along the coastline from port to port, unflagging ports if possible.
17 teleporting horror
Unknown Behavior. Currently not present in the game. Nevertheless the command <maptele> is functional.
18 hunt enemy armies if on home plane
Self-explanatory. Apparently not fully implemented.
19 hunt player squares if on home plane
Self-explanatory. Apparently not fully implemented.

Notice that units with <wander> must be commanders and on their home plane to move properly. Notice also that the command <wander2> is currently not recognized by the game.
AI behavior needs further fine-tuning and debugging, and I look forward to see some improvements in the area. Thank you.
Last edited by Oya; 24 Sep, 2021 @ 11:38pm
< >
Showing 1-15 of 17 comments
Per page: 1530 50