Writing Events to simulate Labor Strikes and other things

Tips and Tricks on Events, Economy, etc.
User avatar
Akarin
Watchman
Posts: 68
Joined: Sun Jan 10, 2016 1:00 am
Location: Pennsylvania, USA

Writing Events to simulate Labor Strikes and other things Unread post

Hello, I just successfully reinstalled Railroad Tycoon 3 (using patch 1.06) and I'm trying to get back into the scenario editing game.
A few years back I created a scenario based around the East of Mississippi II map that ran from the earliest start date until the 2000s. Unfortunately, I stopped playing Railroad Tycoon for a while and changed computers. My RRT3 data never made the transition so I pretty much have to rewrite the scenario from the bottom up and the few written notes I have don't offer much. I decided to come here because I wanted to do some things differently this time. I should probably note that I remember setting up pre existing companies with assigned players(I did this to control their starting locations), but have it set up so that players can set up new companies if they want.

One of the things I managed to do was set up a system where the chance of a strike was set up as Game Value 4 and a random 1 to 100 < GV4 condition would cause a labor strike. Different events and decisions would change the chance that a strike would happen by changing Game Value 4. There was also a monthly occurring event that also used a random number condition so that there'd by a small chance of an increase in chances of a strike, just to spice things up.
It worked pretty decently, but I think this time I want to use a Company valuable instead of a game value. However, I'm not really sure how company values work (this was the reason I went with using Game Value 4 the first time I did this). As I said before, this game will have pre-existing companies, but players can start new ones if they want to. I'm pretty sure the whole labor unrest idea only applied to the human player in my first scenario and I don't mind doing that again. I did this because otherwise my company going on strike would cause all the companies to go on strike. What confuses me is how I link a company value to a specific company.
  • If I make it for the human player only, can I just use Company Value 1 and not worry about it as long as I use "test against onscreen player" and "Apply effects to human players only"?
  • If I wanted to have the labor unrest concept applied to the AI companies, how would I link the company value to each specific company?
  • Going along with that idea, how does creating a new company effect this?
I realize that trying to apply this concept to AI companies too may be overly complicated, especially since that chance of strikes has the possibility of changing monthly. I'm not pushing to include AI companies, I just want to focus on the human company, but if I can wrap my head around how company values work I might be able to expand or do other things with the AI companys.
What would be even better is if I could see something similar to what I'm trying to do. If someone could kindly point out a map/scenario that actually did something similar to what I'm trying to do, it would be really helpful. I'll probably learn a more efficient way to do this too.

The second thing I want to ask is about the stock market and the effects economic depressions have on it in a long term game. When I first played this game, I had a few events that affected the stock market (like Black Tuesday) with effects similar to the ones in the EAST OF MISSISSIPPI II scenario. By the 1940s, every stock was about $1 and the stock market was useless as a game feature. How do I prevent this? I was thinking of leaving the stock market alone in terms of event effects or at least making the effects even smaller, but I feel like it will just end up like this way anyway, especially for a game that lasts this long. If that's the case, can I set up a certain event that will keep the stock market as something usable in the later years of the game?

Lastly, there was another major issue with my scenario being so long and the reason I never managed a full play through. The AI would hoard, and I mean HOARD trains. It never pruned/upgraded it's trains, just bought new ones. Now this computer is many times better than the one I was using before, but I'd like to finish my scenario without the game slowing to a crawl because there are 500 AI trains carrying one car each. I know one of the last things I was doing was setting up an event that would trigger every 10 years I think, would wipe out every AI train and give each AI company cash for new ones. It wasn't very efficient and it worked using a set cash amount...we all know locomotives get more expensive as time goes by. I think I was also trying to figure out a way to use the number of locomotives an aI company had to trigger this purging, but never figured it out. Any thoughts on this problem?
User avatar
RulerofRails
CEO
Posts: 2063
Joined: Sun Dec 08, 2013 1:26 am

Re: Writing Events to simulate Labor Strikes and other things Unread post

!!howdy!! Welcome back!

Company variables are tied to a specific company by definition. Each company that is started makes 4 Company variables available for use. But if that company goes bankrupt or is bought-out/merged into another company, those same variables will disappear forever.

It's going to be more complicated to use Company Variables than to use Game Variables. If you are just trying to tie the strike to a specific company, and don't have other uses planned for the Game Variables I would suggest sticking with Game Variables. The other option is to use Player Variables which are nicely tied to the human player.

To use a Game or Player Variable in this situation you simply need to go to the top of the Triggers list and select "Force test against Companies", this will allow the event to apply to a company while not specifically calling any companies or their variables in the Trigger section.

If you want to have a different chance for strike for the AI, you could consider applying some math to the current human player chance, then incorporating this math equation into a new event as the trigger.

I am interested in how you are planning to implement the strike. In my opinion, reducing engine speed and cutting all industry production for the affected companies works well.


I don't have a good idea on why your stock price is cratering, unless you had an event that was somehow getting applied multiple times. Whether that was because of wrong setup (it was firing for many players/companies/territories) or because the effects used were permanent, not temporary, I cannot say.


The issue with the AI hoarding trains isn't easy to solve. RT3 has no way of testing how many trains a company has. If you were working with 1.05 before you might find that the AI are more likely to become industrial in 1.06 so this may be less of a problem.

With 1.06's math capabilities you could adjust the cash the AI receive to be a percentage of their book value. Increasing the engine price for the AI while giving them an engine speed and reliability benefit over the human player may help some. The AI only buys a train if there is an excess of cargo at one of it's stations. By adjusting the seeding, it's possible to get rid of some high cargo saturation areas. To help with this, an additional step would be to decrease Passenger and Mail production while increasing their prices after the first 20 years or so.

It's pretty easy to apply different effects based on game years elapsed. Just add a trigger such as Games years elapsed =< 20 (this will trigger in years 0-20), then copy that event and use Game years elapsed >20 AND Game years elapsed =<40 (this will trigger in game years 21-40). . . etc.
User avatar
Hawk
The Big Dawg
Posts: 6504
Joined: Fri Nov 10, 2006 10:28 am
Location: North Georgia - USA

Re: Writing Events to simulate Labor Strikes and other things Unread post

Also take a look at the 10-part Guide to Writing RT3 Events by OilCan found in the Tips, Tutorials, and Utilities section of the website. You may find some useful tips in it.
Hawk
User avatar
Akarin
Watchman
Posts: 68
Joined: Sun Jan 10, 2016 1:00 am
Location: Pennsylvania, USA

Re: Writing Events to simulate Labor Strikes and other things Unread post

I was considering using company variables to free up that game variable spot actually. Since I know used Game Variable 4, that means I used the other 3 for other things (I just don't remember what yet). Now that you mention player variables though, I could use that instead since this is probably only going to apply to the human player.

I remember at the minimum the effects of a strike were slower train speeds and slower loading times. I never thought about cutting all industry production though.


I still don't remember all the details involving the stock market. I think I might have just had too harsh of effects. I'm fairly sure they were all temp no matter the event that triggered them, but maybe not because I thought they would bounce back on their own like real life.
The other theory I had was that it was a result of the AI constantly issuing new stock. I remember each company having so much stock that it was impossible for anyone to attempt company takeovers later in the game. I'll have to use trial and error while building this new scenario to find the root issue.


I liked that idea about increasing AI engine price and giving them a speed and reliability benefit. I think I'll try this along with a "wipe out trains/give a cash amount to AI companies" event at different game year intervals. Now that I think about it, I think I tried doing something similar to this anyway.
It would be really nice if the game could test against the amount engines the AI has, even better if I could give the AI companies cash based on the total value of engines they had. That would solve all my problems, a single event could trigger when the AI builds a certain amount of engines that would then give the AI a cash amount based on the total value of their engines and then it wipes out all their engines.

In the mean time I want to check out some maps that were made to take place over the game time period to see what their solutions were. Are there any good ones that might be helpful?


The funny thing about those guides was that those guides were responsible for giving me this labor unrest idea. One of them mentioned using a company variable for Workers Satisfaction to control loading times. I picked that up and it morphed into causing strikes.
User avatar
RulerofRails
CEO
Posts: 2063
Joined: Sun Dec 08, 2013 1:26 am

Re: Writing Events to simulate Labor Strikes and other things Unread post

The intention of my suggestion to reduce industry proifits for the current company was so that the strike would have an effect on a company that is quite dependent on industrial profits. Otherwise such company would be pretty immune to a strike that involves speed decreases on the trains. You didn't mention if your scenario allows building industries or not.

There are examples of strikes in existing scenarios, but they tend to occur on historical dates. The Pullman strike in 1894 is a common one. I haven't studied the events behind the different examples closely, so it's difficult to recommend one as being better or best.

These are some maps that have strikes in them: Chile (South America, 1.06): Probably the most elaborate strike I remember. The stike affects the economy and economic state. Rebuilding the Deep South (North America, 1.06): has a random strike that cuts mine production. Gould's Missouri Pacific (1.05) and Reconstruction (1.06) have Pullman's 1894 strike. Missi Industry Wagon Strike (1.05) uses the Pullman strike but simply increases track and station maintenance as the effects of the strike.

If you want to see some maps with good World War and Depression events, try Age of Steam chapters 3 (Big Valley for 1.05) and 4 (Blue Streak for 1.06).
User avatar
Gumboots
CEO
Posts: 4828
Joined: Mon Aug 13, 2012 4:32 am
Location: Australia

Re: Writing Events to simulate Labor Strikes and other things Unread post

The AoS IV events are killer.
User avatar
Akarin
Watchman
Posts: 68
Joined: Sun Jan 10, 2016 1:00 am
Location: Pennsylvania, USA

Re: Writing Events to simulate Labor Strikes and other things Unread post

Thanks for all the help guys. Those maps were a lot of help. I've outlined all my planned events and their effects, just haven't written them in the editor yet. There's a few more features I still might consider adding. One is a series of events during the civil war to simulate the loss of equipment due to conflict. I had something like this in my original scenario so it shouldn't be hard to do again. The other one is an event that would simulate the creation of Conrail in the later years of the game to replace failing AI companies but this is more of one of those things that isn't necessary. It sounds complicated, but I'm going to look into that New York to Chicago scenario for tips. IF I can't figure it out, no big deal. I'd rather complete the rest of the scenario before trying to look into it.
So far I've also finished tweeking the physical landscape of the map (using the EAST OF MISSISSIPPI II map as a starting place) and set up victory conditions, goals, and briefing and in the process I came across a few more questions.
One is the status page in the ledger. One of the victory conditions is having the highest CBV(highest in class) and the lowest company debt(lowest in class). My question is how do you display those conditions in a status report? I was thinking it could be done by creating a separate event to setup a variable then displaying, but I'd rather avoid that if possible.

The second is less related, but still related to setting up my scenario. Is there a difference between the traits of the playable characters and if so, is there a guide to these differences? I found on my harddrive an excel sheet detailing the differences between different characters and their traits, but it's named Trainmaster Player Characters so I didn't know how relevant it was to Railroad Tycoon 3. It must have been because I saved it, but I wanted to double check.
User avatar
RulerofRails
CEO
Posts: 2063
Joined: Sun Dec 08, 2013 1:26 am

Re: Writing Events to simulate Labor Strikes and other things Unread post

Don't have a good suggestion for the Conrail event. The game does have some limits, including the impossibility to force the creation of a new company while in-game.

Check the Third Republic for a Highest in Class event that uses a variable, and Age of Steam Chapter 2 (Green Diamond) for a solution that doesn't involve a variable.

The Green Diamond solution is quite ingenious. The idea is a status text triggered to display only when the condition is true. The text can obviously be changed.

An addition to this idea:
If you also want some different text to display when CBV, Company Cash, PNW (or other) is NOT highest in class, simply create another almost identical event, but change it to check against just the AI companies and remember to change the text displayed as well. The only drawback is that if two AI companies have exactly identical figures at a given time we would see two notices. Both notices will display if there is a tie between human and AI companies at one point. With normal cash figures the odds of these things are pretty low. For Company Debt, it's quite likely that more than 1 AI company has the same debt figure (such as no bonds outstanding, $0), the human player may have the same identical figure as well. In that case, there will be multiple messages without good explanation in-game. Yes, the game counts joint highest or lowest figures as all being the lowest or highest. This idea could be acceptable for some applications.

For the tycoon traits, check out Oilcan's upload at this post: viewtopic.php?p=37523#p37523.
User avatar
Akarin
Watchman
Posts: 68
Joined: Sun Jan 10, 2016 1:00 am
Location: Pennsylvania, USA

Re: Writing Events to simulate Labor Strikes and other things Unread post

Thanks for the advice. I'll check out those maps for a solution on the status thing and figure out what I want to do with it. Thanks for that link too, I've been looking all over for a thread like that...I should have used "traits" when searching the forum.

I still haven't looked into that conrail thing. I know I'll probably have to have a Conrail company created from the beginning to do this. Gonna check out Chicago to New York to see how they do this with the USRA. It's not a top priority though.

I just finished up the strike mechanics. There's a monthly event that runs GV1 (I went with a game variable over company variable because there were some events that would change this value, but also had global effects) in a random 1 to 100 condition. It would dish out the effects of strike and give CV1 = 1. It would also reset the strike chance to zero.
Another monthly event would trigger when CV1 = 1 that would add +1 to CV2. It's essentially a counter that only counts when a strike takes place.
When CV2=4 (4 months), another event triggers a choice. Either take a deal (+10% overhead costs) from the workers or hold out. If you hold out, the counter keeps counting.
At CV2=8, the strikers will come back with another deal, but this time they're more willing to negotiate. +5% if you take the deal or you can hold out.
If you hold out, at month 12 there's a 50% chance the strikers will give up. If they do, it will reset GV1 to 10 (10% strike), but will also give you -10% overhead cost.
If the strikers don't give up the strike will go on indefinitely, however every month past month 13 there's a 25% chance the government will intervene and end the strike leaving you with a GV1 of 10. In my first test run, I ended up with a strike lasting 14 months. It seems like a big deal, but they way I'm setting it up, if you aren't careful you can easily end up pushing your overhead cost to 100% by the 1930s so gambling on that 50/50 chance they'll give up may be worth it.

Now to keep things interesting, every month there's a 2% chance that GV1 will increase by 5. This takes into account general worker dissatisfaction. This only works up until 1955 though. In 1955, I use the creation of the AFL-CIO to permanently set GV1 at 5 (5%). I only want labor issues to be a mechanic during the period between the civil war and 1950s. It also doesn't work during World War 1 or 2 since GV1 is reset to zero during both wars. In the meantime, there are seven events and choices that can also change GV1.

I realize that if you happen to get a strike after 1955 and take one of the deals, you can permanently set your strike chance to zero. I think I might let this stay as it is though since most of my events/choice in the second half of the 20th century lower overhead costs through advances in technologies, especially with computer technology coming out. This would offset that increased overhead costs from the deals.

Another thing that concerns me is what happens if you get a strike in the year leading up to one of the world wars. I'm still not sure how to go about this. One solution would be to create events that automatically end a strike at the start of the war if there is one. But I'm always conscious of how many events I have. I think I'm in the 80s now, but I know I probably have close to 30 more events to write for various things. Another solution I was thinking about was instead of setting GV1 to 0 during the world wars, add conditions to the event that starts a strike preventing it from triggering during and maybe a year before the wars. This way I have one less event being looked at and can prevent any awkward situations.
User avatar
Blackhawk
CEO
Posts: 1112
Joined: Thu May 21, 2009 2:34 pm

Re: Writing Events to simulate Labor Strikes and other things Unread post

Good luck with your scenario writing. Generally, scenarios that more than 50 years are difficult to test and harder to keep the player entertained in since it just lasts so long. If this scenario is going to last 100-200 years I would make sure you use the largest map size possible.

For the Conrail event, you would have to have the company created at the start. (probably with no money and no access rights). However, getting it to take over another AI company would still be difficult. You could cause the AI company to lose its track, but off the top of my head I can't think of a way for the AI's track to go to Conrail easily as you don't know where the AI will build and the track would have to be confiscated by territory to go to Conrail, which means it could end up taking the player's track as well.

The only sure way I can think of the AI track being transferred to Conrail would be to build out the AI railroads yourself and then use a hidden territory under that track and then you could transfer that track to Conrail.
Post Reply