Events system brainstorm

Spoiler How to add spoilers :



Screenshot 2023-11-02 at 22.58.36.png


Screenshot 2023-11-02 at 22.59.00.png


Screenshot 2023-11-02 at 22.59.21.png


Put your content between the ] [


Spoiler Like this :

Screenshot 2023-11-02 at 23.00.51.png




 
  • Like
Reactions: MIS
Spoiler Brainstorming Event rewards :

COMMONUNCOMMONRAREExtremely Rare
Instant YieldsOrdinary Building (Building player could already build)Unique Building (building only acquirable through events)Free Technology
XPUnits (Both Military and Civilian)Trade RouteFree Policy
Border Growth PointsCS InfluenceAnother Civ’s Unique UnitGreat Person
Temporary Yields Per TurnGPPSpy PointsUnique National Wonder (Wonder only acquirable through events)
GAPIncrease a tile’s yields permanentlyFree resources (Luxury/Strategic)
Increased CS for unitsIncrease all yields for a specific improvement
Increased healing for unitsPop
WLTKD


Positive Event Rewards




Negative Event Rewards



COMMONUNCOMMONRAREEXTREMELY RARE
Instant Yield Loss (Lose food)Improvement PillageBarbarians SpawnCity rebels (Either to war enemy or barbarian
Per Turn Yield Loss (- food for 10 turns)Decreased CS for unitsPop dies
Loss of CS InfluenceBuilding destroyed
Decreased healingCity goes into Resistance




Key:

Common: These yields should be the primary reward or punishment for general events. Think from events every couple of turns.



Uncommon: These should crop up every now and then, maybe require a little investment to acquire, or as a response to your actions.



Rare: These should either be quite sparse or require serious investment to achieve. Maybe as a reward for an event chain, or as a serious failure.



Extremely Rare: These only should be dished out as a reward for an event chain, or from screwing up hard. Apart from a major reward at the end of a chain, these shouldn’t be distributed widely.



Yields: Production, Faith, Food, Gold, Science, Culture, Tourism
 
I haven't abandoned any yet although there are some duplicate ideas when you use the Community Events mod that I've merged into one. More what I've done thus far is started a classification system and started working through that. For example, I have "Natural Disasters", "Signs and Wonders", and generalized era-specific events (breaking them down by two era blocks..."Ancient/Classical" is in my test mod right now). There are several from the base VP that I haven't developed because I was thinking they leaned more towards the BYOA model with how I had classified them (loosely "Political Events").

I also want to look at Hokath's natural wonder events, religious events, and civilization events and make sure they are still balanced. (I've also got a working text edit file that corrects typos in those already.)

I like the deck of card analogy...we have a religion expansion pack, a natural wonder expansion pack, and a civilization expansion pack from the Community Events mod. I want to look them over and see if I can get rid of some yield bloat and keep them balanced. I've got a natural disaster expansion pack and "signs and wonders" expansion pack along with some era-specific expansion pack that I've put together, mostly by incorporating existing events. I want to build BYOA political expansion packs and corporation expansion packs along with a few others I've considered (e.g. "Age of Discovery").

Please let me know if I can help you in any way.
 
Please let me know if I can help you in any way.
@hokath do you know if there is any existing mechanism to have two players decisions' affect the outcome of a single event?

I'm loosely familiar with the table structure -- it appears to me that event appears for one player, that player makes decision, which can then trigger some result -- in this way I imagine I could bounce a series of events back and forth between 2 players, but not actually have 2 players making decisions that combine for a single outcome.

I'll be looking at building some functionality in lua, just curious if there's any existing way before i re-invent anything
 
A single event fires for a single player, so not as far as I know.

But you can do your pingpong thing with the dependencies: events can block themselves.
So you would have the event that assigns player A block itself and trigger one that assigns B, which then also self-blocks once fired. Now you have markers A and B as dependencies, and continue in that vein.
 
You know what would really help in improving the system? A website with fields for the event content, and then the website converts that into the correct XML or whatever.

So freeform text, and then dropdown menus for the possible rewards/punishments.
 
You know what would really help in improving the system? A website with fields for the event content, and then the website converts that into the correct XML or whatever.

So freeform text, and then dropdown menus for the possible rewards/punishments.

I've developed an excel sheet that does something similar. It's still very clunky but less clunky that doing everything manually.
 
I've developed an excel sheet that does something similar. It's still very clunky but less clunky that doing everything manually.
I’d like to have a look at this sheet if you could share it, maybe I could help. I’ve got a lot of ideas flowing around, but I don’t know the limits of the Civ code or the balance. Maybe this sheet could help me figure out what could work and help me sort out some thoughts.
 
Don't worry about the balance, we can always sort that out later.
Unless you make the whole empire revolt for like 10 turns.
But then, who would do that? ;)
In terms of revolting cities, I thought maybe occupied cities could have rebel and resistance event chains that if left untended could lead to the city being taken over by barbarians. Never anything on an empire wide scale
 
Alright. Alright. Alright.

I've finished going through the core (1)Community Patch events, the additional events in (2) Vox Populi, and all of the miscellaneous events* in the Community Events mod.

* Basically everything except for Hokath's civilization, corporation, NW and religious events.

As I said in the earlier post:
Spoiler Event Goals :

  • Re-balancing events so there is a more evenly distributed range of good/neutral/bad events and so the yields are aligned.
  • Setting more events to expire to remove yield bloat. No more +/- 1 yields forever from an event. You can have 30 turns instead.
  • Diversifying the different kinds of events so you don't see the same thing over and over. A lot of this is just coming up with new events and making sure the events cover all the eras in a well distributed fashion. As such, I've got a couple spreadsheets where I'm tracking "my" new events by era, type, etc. and seeing where there are holes.
  • Making events more dynamic. For example, I've modified the city fire event so that, once you get the appropriate tech, you might have a chance to establish a permanent fire brigade. It's gonna cost you but it greatly reduces the chance of a city fire happening again. Another example is allowing a player the option to build hurricane levees. To make this more realistic, I've also broken the hurricane disaster into major and minor hurricanes. The levee prevents minor hurricanes from causing much damage and significantly reduces the chance of damage from a major hurricane.
  • One of the ideas I'm mapping out right now is having a group of events chain where the options on link 2 are dependent on link 1, link 3 on 1 and 2, etc. I've also got it plotted out where the options available will be dependent on which policies you go with. Kind of a build-you-own-adventure function in the events category. I've kind of got it mapped out through the Renaissance era but haven't started actually writing the events yet.
  • Correcting typos.


To use the earlier analogy, I've got the following event expansion packs:

Era Packs: Ancient/Classical, Medieval/Renaissance, Industrial/Modern, and Atomic/Information - Mostly good
Signs and Wonders - Neutral / good
Natural Disasters - Nearly all bad

I've attached a pdf showing each pack with the events included.


I think I'll tackle the NW and religious events packs since they are smaller and should be a bit quicker after I take a break to actually play for a little while. Some questions for the modders:

Spoiler Modding questions :

  • I've been converting the old xml events into SQL because it seems like it will be easier to modify / balance? Is this even worthwhile?
  • Is there an easy way to convert .xml formatting into .sql other than going through it manually?
  • Is there a way to check for errors other than closing down Civ V and re-opening then re-loading the mods? It would speed things up quite a bit if I didn't have to shut the game down every time I fix a bug.


Final thoughts: I was going to throw the new package out for testing / playing by the group. Would it be preferable to start a new fresh thread with the mod so it's sitting at the top?

Thanks guys!

Also relevant thread: https://forums.civfanatics.com/threads/event-balancing.685271/#post-16501307
 

Attachments

Would it be preferable to start a new fresh thread with the mod so it's sitting at the top?
yes probably a good idea to start a thread for it in the mods subforum -- will get more testers that way rather than buried in this thread. We can discuss particulars of your work there, more general ideas and theorycrafting here. Look forward to see what you've been working on!

  • I've been converting the old xml events into SQL because it seems like it will be easier to modify / balance? Is this even worthwhile?

afaik the primary advantage of sql over xml in civ 5 context is its ability to make more intelligent updates to the database -- eg. you can add to existing text with sql vs. only replacing it with xml; or you can make many database entries/updates with a single sql command vs having to write out each one individually with xml; etc. Its possible I am just not aware of how to do some of these things in XML but SQL seems much more customizable. fwiw I prefer to read through mod files in SQL just cuz there's less scrolling when I'm looking under-the-hood at someone else's work.

  • Is there an easy way to convert .xml formatting into .sql other than going through it manually?

I have not used one, nor really thought of this before, but googling came up with https://blog.sqlizer.io/posts/convert-xml-to-sql/

  • Is there a way to check for errors other than closing down Civ V and re-opening then re-loading the mods? It would speed things up quite a bit if I didn't have to shut the game down every time I fix a bug.
pretty sure you just have to quit out to main menu then reload the mod -- very occasionally i run into mysterious issues i attribute to cache error, and have to quit entirely and clear cache, but not very often. for a single database-only mod in particular you should only have to quit to main menu
 
Last edited:
Events, CityEvents, EventChoices, CityEventChoices, EventChoice_Notification, CityEventChoice_Notification are better inserted by XML. Long SQL lines are horrible to read.

Sub-tables (Event_ParentEvents, Event_EventLinks, etc.) are more easily added via SQL. Whether you sort them by event or by table is up to you.
 
Just a simple comment from a player. Thanks for all your hard work. I dislike any instance of an all or nothing choice. Or anything that encourages you to reroll or even choose another choice than the one you immediately decide.

One example that happens often is the hurricane. This is something I have to test every time. I can spend nothing and have it "not occur" or spend 2000 gold and have it do nothing to help.
 
I was about to create a thread in the mods folder with my re-balanced events but thought of something.

I'm playing on VP 3.7. Are there any major changes to events on 4.X that will break the mod for those users if I upload it as is?
 
A final separate but related aspect of Events: I think there needs to (eventually) be a class of "Tutorial" event, which can be 100% trigger chance events that serve to explain a little bit of what's going on behind the scenes with Events. Using the current events as an example, when you build a certain threshold of farms, it would popup an event like "Your people are farming! As time goes on, they may face hardships and successes as they learn more about the world around them." This way, when the player is met with "Everything of type X is pillaged!", they can reflect back and think "Ah yes, I have a lot of farms now, that's what caused this bad/good event to trigger".
I guess I just blazed through that thread reply and completely missed this. I LOVE this idea. I'm going to add a "deck of cards" to the events re-balancing mod I'm working on to incorporate this idea.
 
Back
Top Bottom