As many of you already noticed, CSO (Custom Scenarios Online) don’t work quite the same as single player scenarios.
I have therefore decided to put together some basic information on how to solve some of the CSO issues.
How to set Dynamic Players (that work for both Human player or AI)
When I say “Dynamic Player” I refer to selecting Human player or Computer player for each player slot on ESO.
If you want to set your scenarios to work with either Computer player or Human player for each player slot, then read the following:
Currently we cannot set dynamic players for CSO on ESO.
That doesn’t work for CSO like it does work for normal skirmish games.
The player who hosts a scenario game on ESO can choose between a computer player or human player for each player slot.
However the scenario designer has to choose between a “Human” player or “Computer” player for each player slot and set it to work only for one of them.
So if a certain slot is designated by the designer to be played by a human player and that player slot is set on ESO to be played by the AI then the AI won’t function.
The opposite of this would also be a problem.
In order for the AI to work for CSO the designer has to set that player to “Computer”, set “AI” for it and then place the “AI Start” object next to the TC.
So if a human player is selected (on ESO) to play in a slot that was designated by the designer to be played by the AI, then AI is NOT deactivated and there is a conflict between the player’s actions and the AI’s commands since both of them are in control of that player.
The good news is that we can set the scenario to work with Human Player or Computer Player for each slot with triggers.
In order to solve this problem we need to place the “AI Start” with triggers under certain conditions.
One condition we can use is “Population” but it is not that simple since the starting population is different for every civ.
However, if we use the condition “Player Population” > 10 then that should work for all civs.
So here is how the condition is going to look like for each player except for player 1:
Trigger 1: Active
Condition: “Player Population” > 10
Effect: Disable Trigger 2
Trigger 2: Active
Condition: Timer = 180 seconds
Effect: Unit Create – AI Start
Effect: Unit Create Multi: 7 villagers (give the AI the villagers that he would have trained)
Effect: Grant Resource – 800 Food (give the AI the resources he would have collected so he can age up)
So if a human player is playing that spot, then he should have more than 10 population by 3 minutes and the “AI Start” trigger is then deactivated.
If the population is not greater than 10 then there is probably no human player assigned to that spot so we activate the AI and give him the villagers and resources that he lost for not being active in the first 3 minutes.
Under this setup the player data should be “Computer” for all players except for player 1, and the AI should be set to AILoadStandard.
This method should allow players to set dynamic players for their scenarios.
How to Set the Camera’s Starting Position for Each Player
In multiplayer player skirmish games the camera’s starting position is always set at the town center for each player.
That is not the case for CSO.
The camera’s starting location in CSO is the same for everybody resulting in starting in a dark area for most players
That is not such a big deal, but it is somewhat annoying, so here is how you can set the camera’s starting position yourself for each player.
For this you would use the “Visible to Player” condition in combination with the “Camera Cut” effect.
For 2 player scenario it is fairly simple.
Trigger name: “Camera Cut 1”, (Active, High Priority)
Condition: Always
Effect: Camera Cut (where the “Set Cut” is set next to TC (Town Center) number 1)
Effect: Fire Trigger (“Trigger Name” = “Camera Cut 2”)
Trigger name: “Camera Cut 2”, (Not Active, High Priority)
Condition: Visible to Player (Source Units is set on TC number 1) (“NOT” Checkbox checked)
Effect: Camera Cut (where the “Set Cut” is set next TC number 2)
Explanation: the first trigger sets the camera next to one of the TC’s (either one) and fires the second trigger.
The second trigger checks if TC number 1 is Not visible to the current player.
It won’t be visible if that area is a dark area.
So if that area is dark and not visible then the condition will be true and the camera cut effect for the second TC will be executed moving the camera to the next TC.
If the condition is not true, and the TC number 1 is visible then the camera won’t move to TC number 2.
Now the question is how do we handle 4, 6 and even 8 players?
We handle that pretty much the same way but we need additional triggers to move the camera from one TC to the next until we find a TC that is visible, and then we stop.
So let’s say we have a 2V2 scenario with 4 players, how do we make that work?
We keep the first two triggers, modify trigger 2 and add two more triggers as follows:
Trigger name: “Camera Cut 1”, (Active, High Priority)
Condition: Always
Effect: Camera Cut (where the “Set Cut” is set next to TC (Town Center) number 1)
Effect: Fire Trigger (“Trigger Name” = “Camera Cut 2”)
Trigger name: “Camera Cut 2”, (Not Active, High Priority)
Condition: Visible to Player (Source Units is set on TC number 1) (“NOT” Checkbox checked)
Effect: Camera Cut (where the “Set Cut” is set next TC number 2)
Effect: Fire Trigger (“Trigger Name” = “Camera Cut 3”)
Trigger name: “Camera Cut 3”, (Not Active, High Priority)
Condition: Visible to Player (Source Units is set on TC number 2) (“NOT” Checkbox checked)
Effect: Camera Cut (where the “Set Cut” is set next TC number 3)
Effect: Fire Trigger (“Trigger Name” = “Camera Cut 4”)
Trigger name: “Camera Cut 4”, (Not Active, High Priority)
Condition: Visible to Player (Source Units is set on TC number 3) (“NOT” Checkbox checked)
Effect: Camera Cut (where the “Set Cut” is set next TC number 4)
So basically we keep moving the camera from one TC to the next until we find a visible TC and then we stop and break the chain if events.
This way every player is going to end up looking at his own TC at the start of the game.
One last thing that needs to be done is to use the “Deactivate Trigger” effect with 8 seconds timer and deactivate triggers “Camera Cut 2”, “Camera Cut 3”, and “Camera Cut 4” so they don’t get executed when the player moves the screen to view other areas.
If you have 6 or 8 players, then just keep adding more triggers for the additional TC’s.
But wait, there is one little complication that we need to take care of for this to work.
If we have players that are allies, then more than one TC is visible so how can we insure that we stop on our TC and not on our ally’s TC?
We have to play with “Diplomacy” for that to work.
We set our scenarios as FFA (Free For All) and a few seconds into the game (Timer = 4 seconds) we set the allies via the “Diplomacy” effect (Player 1 ally to player 2 and so on).
FFA makes everybody enemies with everybody, so every player can only see his own TC.
By the time the Diplomacy effect kicks in 4 seconds later the triggers above will be executed and every player will be looking at his own TC.
Now it’s not worth playing with Diplomacy just for the camera set up, but we need to be aware that the “Diplomacy” has its own issues.
So here is one method you can use to set up the diplomacy in your scenarios.
Diplomacy
In single scenarios we set the players and the diplomacy to our liking and the players cannot change that unless they modify the scenario itself.
However, with CSO players can modify the teams in ESO any way they want.
Let’s say that you made 1V3 scenario, but in ESO someone set the game as 2V2.
The scenario won’t work as it was intended, right?
We cannot expect other players to know how diplomacy is being set for every scenario.
The solution is that we take matters to our own hands and specify the diplomacy in a complete way for every scenario.
So first we need to set all players as enemy either via FFA set up (in ESO) or actual diplomacy triggers.
Of course some players may want to set their own teams despite the instructions.
We should therefore have a Diplomacy trigger (with multiple effects) that sets all players as enemies to other players.
Once all players are enemies to everyone, only then we can set up the teams (allies) via a second Diplomacy trigger that follows the first one.
This way no one can mess up our scenarios.
If you want the camera starting position to work for every player then you would need to set the game as FFA.
Either that or set up all players as enemies first, then set up the camera position for all players, and then set up the teams.
Now this whole thing can take a few seconds and we don’t want the players to see the camera jumping around, do we?
So what can we do about this problem?
Presenting our Scenario and Buying Time
Simple, we can use the “Fade to Color” effect with “Overlay Text” to present our scenario and give credit to ourselves.
We can set the scenario to show a black screen right away followed by two lines of text in the middle of the screen (on black background) that looks like this”
“Name of the Scenario” (without the quotes)
Scenario by “Name of the Designer” (without the quotes)
We can set this introduction screen to show for 4 or 5 seconds and then make it fade away.
During that time our triggers for diplomacy and setting the camera’s position all took place already and everything is all set.
So how do we make this small presentation?
It takes only two triggers to do that (as I am sure most of the designers here already know).
Trigger name: “Fade to Color On”, (Active, High Priority)
Condition: Always
Effect: Fade to color (all parameters set to zero, Fade set to “ON”)
Effect” Overlay Text (TEXT = your text, Fade Duration = 4, do not change anything else)
Trigger name: “Fade to Color Off”, (Active, Normal Priority)
Condition: Timer = 4
Effect: Fade to color (all parameters set to zero, Fade set to “OFF”)
Again, this will set the black screen, then the overlay text will display our scenario name and designer name, and then the second trigger will kick in and make the black screen disappear.
Spreading Out our Starting Triggers
It is not uncommon to get OOS (Out Of Sync) error in the first 5 seconds of the scenario.
Most OOS errors will occur at the beginning of the scenario.
It is unclear what all the factors that cause OOS are, but there are good indicators that suggest that slow computers are one of these factors.
Usually there are many triggers that get executed at the beginning of the scenario and slow computer cannot catch up fast enough and therefore may cause OOS error.
It is therefore a good idea to spread out all your starting triggers over the first 4 or 5 seconds (during the scenario presentation) in order to reduce the chances of getting OOS errors.
Usually we use “Always” as a condition for triggers that need to be executed at the start of the scenario.
It is OK to do so for a few triggers, but when you have many such triggers, it would be better to place some of them under “Timer” condition where the Timer = 1 or 2 seconds (or even longer periods than that).
This will help to spread out your triggers and hopefully slow computers can catch up and not cause OOS.
Starting Population Room
Some of you probably already noticed that when we start a scenario we cannot train any villagers because the population room is set to zero instead of 10.
There is some kind of bug that resets the population room and our existing TC doesn’t change that.
To solve this problem just use the “Unit Create” effect at the start of the scenario (while the black screen is showing) and use it to place one house next to each TC.
This will give all players the 10 population room that is needed.
Placing several houses on the map via the editor won’t solve the problem.
So if you want the player to start with 10 houses and population room of 110 then you will have to place these houses via triggers in order to give the player the population room you want him to have.
If you don’t want to place houses on the map then place the “SpcPopBlock” unit instead.
This "Unit" cannot be seen once the scenario starts.
Each SpcPopBlock gives 15 population up to 220 population.
Setting Defeated Players and Ending the Scenario
As we all know scenarios can go on forever even after we wiped out everything and everyone.
Yet I noticed that not many designers know how to end the scenario properly.
So here are a few tips to solve this issue.
In CSO you can wipe out a player and he is still going to be in the game.
So it is a good idea to take out the defeated players and announce it.
There are many ways to determine if the player is defeated and that is subject to personal preference.
This is my preference:
Trigger name: “Player 1 defeated” (Active)
Condition: Player Unit Count (player = 1, Unit = Town Center, equal zero)
Condition: Player Population (player = 1, Count < 6)
Effect: Set Player Defeated (Player =1)
Effect: Message (text = Player 1 has been Defeated)
This effect will put a strike on the player’s name and announce to everyone that this player is out of the game.
You can also use these effects:
Player destroy all units (player = 1) and
Player destroy all buildings (player = 1)
You can do that if you want to take the player completely out of the game.
For team games you can use the condition “Player Defeated” for all team players to determine if the whole team is defeated.
When that is true you can either announce that a specific team is defeated (for games with more than two teams) or end the game (for two team games).
Here is how you can end the game properly with announcement where everything stops, and giving the players the option to view the game’s statistics.
This is an example for 2V2 game:
Trigger name: “Team 1 Won” (Active)
Condition: Player Defeated (player = 3)
Condition: Player Defeated (player = 4)
Effect: Render Fog/Black Map (fog of war = off, black map = off)
Effect: Win Message (Flash UI Train = Team 1 Has Won the Game)
Effect: End Game
Trigger name: “Team 2 Won” (Active)
Condition: Player Defeated (player = 1)
Condition: Player Defeated (player = 2)
Effect: Render Fog/Black Map (fog of war = off, black map = off)
Effect: Win Message (Flash UI Train = Team 2 Has Won the Game)
Effect: End Game
First, the fog of war and black map will be removed so everyone can see everything on the map.
Then a big victory message will be displayed on the screen.
And finally the game will freeze and players can view the game statistics.
Making High Home City Levels
First, it is important to know that the single player method of assigning your own home city files from the scenario menu doesn’t work for online scenarios.
To make high level home city you need to use the new “Home City Editor” option from the “Scenario” Menu.
However, before you do that, open the “Player Data” window from the “Scenario” menu and click on the “Reset HC” button for all players in order to reset the home city.
After that you can open the “Home City Editor” window and assign the home city level that you want.
You can then choose new cards and build decks just like you normally do.
Please note that players can choose to play CSO with any of the civs so you may want to set high home city level for every civ.
After that you are done.
However, if you test your scenario in the editor or as a single player scenario you will NOT see your high level home cities.
You will only see them Online.
Please also note that once you exit the Editor you cannot go back and modify your home city decks.
You will then have to delete them and start all over again.
So make sure you make them right the first time.
Please be aware that you will loose all your existing Multiplayer Home City Decks when you convert your existing AOE3 Vanilla or TWC scenario to TAD.
There is no way to build these decks without resetting the home cities and starting all over again.
How to Copy High Level HC Decks from one Multiplayer Scenario to Another
- Open an exiting multiplayer scenario (via the Editor) that already has high level HC decks.
- Generate a new Scenario Map from the File Menu.
The HC decks from the first scenario are still in the Editor’s memory.
- Save your new scenario and you are all set (HC decks from the first scenario are now included in this scenario too).
This will work only when generating new scenario map.
Opening another existing scenario will erase the HC decks from the first scenario).
How to set the Players and Teams
In the civ selection screen in ESO players can select their civs and teams in any way they want.
That could cause a problem for scenarios that are set in a special way where humans/computer players are supposed to be assigned to a certain player numbers or team numbers.
So here are a few tips and examples on how to enforce your special setup.
Example number 1:
Let’s say you want to have a 1V1 game where there is a computer player that you assigned triggers to, and these triggers are essential for the scenario.
So in this case players 1 and 2 should be the human players, and player 3 should be the computer player.
First, I am sure we agree that human player cannot be assigned to player number 3 as it would cause the scenario not to work properly.
Unfortunately you cannot force a computer player to be player number 3 in ESO.
So the best way (that I found) to make the scenario work properly is to kick player 3 out of the game once the game started and notify him that player 3 meant to be a computer player and that he cannot play that role.
The game will then continue to work properly where player 1 and 2 can play and the triggers for player 3 will work properly.
To notify player 3 that he cannot play that role just use “Send Chat to Player” effect with the appropriate message.
After a few seconds you can set player 3 as a defeated player (“Set Player Defeated” effect).
Player 3 will then loose the control over his units, and he can observe the game if he wants.
This solution will work only for passive computer players who don’t have a base and don’t develop their economy with the help of “AILoadStandard” AI.
Of course if the computer player is an active player, then the triggers won’t work and human player probably can and take that role.
Please note that Triggers don’t work for “AILoadStandard” AI because the AI takes over and issues its own commands that override the triggers command.
In CSO you set “AILoadStandard” AI by placing the “AI Start” object near the TC.
Example number 2:
Your scenario is supposed to be 3V1 but the players set the game as 2V2.
The solution for that is to override the diplomacy with your diplomacy set up.
First, issue the “Set Diplomacy” for all enemies with a timer – 1 or 2 seconds.
Then in the next effect issue all the neutral and ally effects.
This will override the player’s team setup from ESO.
The only side effect that I didn’t find a solution for yet is the “removal of the black map” according to the original team set up (from ESO).
There is going to be fog of war, but my triggers to return the black map didn’t work.
It is therefore best if players don’t set the teams in ESO and leave them as “?”.
That will resolve the black map issue.
Deploying Armies for Computer Players and Moving them
The “Army Deploy” effect doesn’t work Online for computer players
This effect works only for human players and Gaia (player 0).
To get around this problem just use the “Army Deploy” for Gaia (player 0) and then in the same trigger use the “Army Convert” effect and convert the army to the player that you want.
This will be done very fast and you won’t notice the difference.
Unfortunately the armies that were converted to Gaia cannot be controlled via the “Army Move…” effects.
That is because none of the “Army Move…” effects works for Gaia.
If you want to be able to control the computer’s armies then you should NOT place the “AI Start” for the AI.
You can then Deploy Armies for Gaia, convert the armies to the computer player, and then move the armies to different locations.
However, once you place the “AI Start” the computer AI will override your trigger command movements.
You can also place many cinematic blocks in different locations on the map (physically, not through triggers).
During the game you can use “Change Unit Type” to change the units to any military units (you can select several cinematic cubes and change all of them in one effect).
You can then use the “Move to Point” effect to move them anywhere you want with attack move (as long as you didn't place the “AI Start” for the computer AI).
If you want them to move to a point with “attack move” = “off” (ignore everything in their way), then use the “Unit Work” effect.
This method works pretty well for CSO.
It’s just that you need to place many cinematic cubes around the map.
Setting the AI's Difficulty Level
Setting the AI difficulty level on ESO should work fine in most cases.
Setting the AI difficulty level is only needed when there is one or more active AI’s in the scenario.
DO NOT open the Scenario Editor prior to playing scenarios online.
If you opened the Editor, then just restart AOE3 before you go to ESO.
This is because the Editor’s difficulty level (default is Sandbox) will override ESO’s difficulty level resulting in OOS (Out of Sync) error when the Editor’s difficulty level doesn’t match the difficulty level on ESO.
Verify that the AI difficulty setting on ESO does match the AI’s difficulty level during the game.
I witnessed cases where it wasn’t the same and so far I haven’t been able to determine the cause for that other than the Editor’s difficulty override.
Scenario Doesn’t recognizing Resigning Players
As some of you have noticed when a player resigns a scenario game the game doesn’t set him as “Player Defeated” automatically.
As result of that players may resign the game and your win triggers won’t be executed.
The solution for that is to check if the player is active, see:
Player Active Condition
You should have this condition for each player with the “NOT” check box checked.
The effect under this condition should be “Set Player Defeated”.
You may also want to display a message notifying everybody when a player resigns.
This will insure that your win triggers always get executed.
-------------
I wrote this “short” guide mainly to help out new scenario designers who want to make online scenarios.
If you want to see actual examples for these triggers in a very small and simple scenario, then check out my first published multiplayer scenario2V2V2 California.
This is a very simple 2V2V2 skirmish scenario that has almost all the triggers that I mentioned above.
If you have Reyk’s editor then you can even cut and paste these triggers to your own scenario.
--------------
Feel free to post your own tips and tricks for CSO.
Thank you,
Moshe Levi
My AOE3 Scenarios:
Strategic Objectives: Death Valley / Strategic Objectives: Russo-Turkish Wars
The Tapir Witch Chronicles: Immortal Cows – Single Player / Multiplayer
“Annihilation” 2V2 (Supremacy) Multiplayer / Tribe Wars (2V2/FFA) Multiplayer
Strategic Objectives: Islands / Forest Domination II Multiplayer / Geronimo’s Revenge
More Scenarios / http://www.moshelevi.com
I have therefore decided to put together some basic information on how to solve some of the CSO issues.
When I say “Dynamic Player” I refer to selecting Human player or Computer player for each player slot on ESO.
If you want to set your scenarios to work with either Computer player or Human player for each player slot, then read the following:
Currently we cannot set dynamic players for CSO on ESO.
That doesn’t work for CSO like it does work for normal skirmish games.
The player who hosts a scenario game on ESO can choose between a computer player or human player for each player slot.
However the scenario designer has to choose between a “Human” player or “Computer” player for each player slot and set it to work only for one of them.
So if a certain slot is designated by the designer to be played by a human player and that player slot is set on ESO to be played by the AI then the AI won’t function.
The opposite of this would also be a problem.
In order for the AI to work for CSO the designer has to set that player to “Computer”, set “AI” for it and then place the “AI Start” object next to the TC.
So if a human player is selected (on ESO) to play in a slot that was designated by the designer to be played by the AI, then AI is NOT deactivated and there is a conflict between the player’s actions and the AI’s commands since both of them are in control of that player.
The good news is that we can set the scenario to work with Human Player or Computer Player for each slot with triggers.
In order to solve this problem we need to place the “AI Start” with triggers under certain conditions.
One condition we can use is “Population” but it is not that simple since the starting population is different for every civ.
However, if we use the condition “Player Population” >
So here is how the condition is going to look like for each player except for player 1:
Trigger 1: Active
Condition: “Player Population” >
Effect: Disable Trigger 2
Trigger 2: Active
Condition: Timer = 180 seconds
Effect: Unit Create – AI Start
Effect: Unit Create Multi: 7 villagers (give the AI the villagers that he would have trained)
Effect: Grant Resource – 800 Food (give the AI the resources he would have collected so he can age up)
So if a human player is playing that spot, then he should have more than 10 population by 3 minutes and the “AI Start” trigger is then deactivated.
If the population is not greater than 10 then there is probably no human player assigned to that spot so we activate the AI and give him the villagers and resources that he lost for not being active in the first 3 minutes.
Under this setup the player data should be “Computer” for all players except for player 1, and the AI should be set to AILoadStandard.
This method should allow players to set dynamic players for their scenarios.
How to Set the Camera’s Starting Position for Each Player
In multiplayer player skirmish games the camera’s starting position is always set at the town center for each player.
That is not the case for CSO.
The camera’s starting location in CSO is the same for everybody resulting in starting in a dark area for most players
That is not such a big deal, but it is somewhat annoying, so here is how you can set the camera’s starting position yourself for each player.
For this you would use the “Visible to Player” condition in combination with the “Camera Cut” effect.
For 2 player scenario it is fairly simple.
Trigger name: “Camera Cut 1”, (Active, High Priority)
Condition: Always
Effect: Camera Cut (where the “Set Cut” is set next to TC (Town Center) number 1)
Effect: Fire Trigger (“Trigger Name” = “Camera Cut 2”)
Trigger name: “Camera Cut 2”, (Not Active, High Priority)
Condition: Visible to Player (Source Units is set on TC number 1) (“NOT” Checkbox checked)
Effect: Camera Cut (where the “Set Cut” is set next TC number 2)
Explanation: the first trigger sets the camera next to one of the TC’s (either one) and fires the second trigger.
The second trigger checks if TC number 1 is Not visible to the current player.
It won’t be visible if that area is a dark area.
So if that area is dark and not visible then the condition will be true and the camera cut effect for the second TC will be executed moving the camera to the next TC.
If the condition is not true, and the TC number 1 is visible then the camera won’t move to TC number 2.
Now the question is how do we handle 4, 6 and even 8 players?
We handle that pretty much the same way but we need additional triggers to move the camera from one TC to the next until we find a TC that is visible, and then we stop.
So let’s say we have a 2V2 scenario with 4 players, how do we make that work?
We keep the first two triggers, modify trigger 2 and add two more triggers as follows:
Trigger name: “Camera Cut 1”, (Active, High Priority)
Condition: Always
Effect: Camera Cut (where the “Set Cut” is set next to TC (Town Center) number 1)
Effect: Fire Trigger (“Trigger Name” = “Camera Cut 2”)
Trigger name: “Camera Cut 2”, (Not Active, High Priority)
Condition: Visible to Player (Source Units is set on TC number 1) (“NOT” Checkbox checked)
Effect: Camera Cut (where the “Set Cut” is set next TC number 2)
Effect: Fire Trigger (“Trigger Name” = “Camera Cut 3”)
Trigger name: “Camera Cut 3”, (Not Active, High Priority)
Condition: Visible to Player (Source Units is set on TC number 2) (“NOT” Checkbox checked)
Effect: Camera Cut (where the “Set Cut” is set next TC number 3)
Effect: Fire Trigger (“Trigger Name” = “Camera Cut 4”)
Trigger name: “Camera Cut 4”, (Not Active, High Priority)
Condition: Visible to Player (Source Units is set on TC number 3) (“NOT” Checkbox checked)
Effect: Camera Cut (where the “Set Cut” is set next TC number 4)
So basically we keep moving the camera from one TC to the next until we find a visible TC and then we stop and break the chain if events.
This way every player is going to end up looking at his own TC at the start of the game.
One last thing that needs to be done is to use the “Deactivate Trigger” effect with 8 seconds timer and deactivate triggers “Camera Cut 2”, “Camera Cut 3”, and “Camera Cut 4” so they don’t get executed when the player moves the screen to view other areas.
If you have 6 or 8 players, then just keep adding more triggers for the additional TC’s.
But wait, there is one little complication that we need to take care of for this to work.
If we have players that are allies, then more than one TC is visible so how can we insure that we stop on our TC and not on our ally’s TC?
We have to play with “Diplomacy” for that to work.
We set our scenarios as FFA (Free For All) and a few seconds into the game (Timer = 4 seconds) we set the allies via the “Diplomacy” effect (Player 1 ally to player 2 and so on).
FFA makes everybody enemies with everybody, so every player can only see his own TC.
By the time the Diplomacy effect kicks in 4 seconds later the triggers above will be executed and every player will be looking at his own TC.
Now it’s not worth playing with Diplomacy just for the camera set up, but we need to be aware that the “Diplomacy” has its own issues.
So here is one method you can use to set up the diplomacy in your scenarios.
In single scenarios we set the players and the diplomacy to our liking and the players cannot change that unless they modify the scenario itself.
However, with CSO players can modify the teams in ESO any way they want.
Let’s say that you made 1V3 scenario, but in ESO someone set the game as 2V2.
The scenario won’t work as it was intended, right?
We cannot expect other players to know how diplomacy is being set for every scenario.
The solution is that we take matters to our own hands and specify the diplomacy in a complete way for every scenario.
So first we need to set all players as enemy either via FFA set up (in ESO) or actual diplomacy triggers.
Of course some players may want to set their own teams despite the instructions.
We should therefore have a Diplomacy trigger (with multiple effects) that sets all players as enemies to other players.
Once all players are enemies to everyone, only then we can set up the teams (allies) via a second Diplomacy trigger that follows the first one.
This way no one can mess up our scenarios.
If you want the camera starting position to work for every player then you would need to set the game as FFA.
Either that or set up all players as enemies first, then set up the camera position for all players, and then set up the teams.
Now this whole thing can take a few seconds and we don’t want the players to see the camera jumping around, do we?
So what can we do about this problem?
Presenting our Scenario and Buying Time
Simple, we can use the “Fade to Color” effect with “Overlay Text” to present our scenario and give credit to ourselves.
We can set the scenario to show a black screen right away followed by two lines of text in the middle of the screen (on black background) that looks like this”
“Name of the Scenario” (without the quotes)
Scenario by “Name of the Designer” (without the quotes)
We can set this introduction screen to show for 4 or 5 seconds and then make it fade away.
During that time our triggers for diplomacy and setting the camera’s position all took place already and everything is all set.
So how do we make this small presentation?
It takes only two triggers to do that (as I am sure most of the designers here already know).
Trigger name: “Fade to Color On”, (Active, High Priority)
Condition: Always
Effect: Fade to color (all parameters set to zero, Fade set to “ON”)
Effect” Overlay Text (TEXT = your text, Fade Duration = 4, do not change anything else)
Trigger name: “Fade to Color Off”, (Active, Normal Priority)
Condition: Timer = 4
Effect: Fade to color (all parameters set to zero, Fade set to “OFF”)
Again, this will set the black screen, then the overlay text will display our scenario name and designer name, and then the second trigger will kick in and make the black screen disappear.
It is not uncommon to get OOS (Out Of Sync) error in the first 5 seconds of the scenario.
Most OOS errors will occur at the beginning of the scenario.
It is unclear what all the factors that cause OOS are, but there are good indicators that suggest that slow computers are one of these factors.
Usually there are many triggers that get executed at the beginning of the scenario and slow computer cannot catch up fast enough and therefore may cause OOS error.
Usually we use “Always” as a condition for triggers that need to be executed at the start of the scenario.
It is OK to do so for a few triggers, but when you have many such triggers, it would be better to place some of them under “Timer” condition where the Timer = 1 or 2 seconds (or even longer periods than that).
This will help to spread out your triggers and hopefully slow computers can catch up and not cause OOS.
Starting Population Room
Some of you probably already noticed that when we start a scenario we cannot train any villagers because the population room is set to zero instead of 10.
There is some kind of bug that resets the population room and our existing TC doesn’t change that.
To solve this problem just use the “Unit Create” effect at the start of the scenario (while the black screen is showing) and use it to place one house next to each TC.
This will give all players the 10 population room that is needed.
Placing several houses on the map via the editor won’t solve the problem.
So if you want the player to start with 10 houses and population room of 110 then you will have to place these houses via triggers in order to give the player the population room you want him to have.
If you don’t want to place houses on the map then place the “SpcPopBlock” unit instead.
This "Unit" cannot be seen once the scenario starts.
Each SpcPopBlock gives 15 population up to 220 population.
Setting Defeated Players and Ending the Scenario
As we all know scenarios can go on forever even after we wiped out everything and everyone.
Yet I noticed that not many designers know how to end the scenario properly.
So here are a few tips to solve this issue.
In CSO you can wipe out a player and he is still going to be in the game.
So it is a good idea to take out the defeated players and announce it.
There are many ways to determine if the player is defeated and that is subject to personal preference.
This is my preference:
Trigger name: “Player 1 defeated” (Active)
Condition: Player Unit Count (player = 1, Unit = Town Center, equal zero)
Condition: Player Population (player = 1, Count <
Effect: Set Player Defeated (Player =1)
Effect: Message (text = Player 1 has been Defeated)
This effect will put a strike on the player’s name and announce to everyone that this player is out of the game.
You can also use these effects:
Player destroy all units (player = 1) and
Player destroy all buildings (player = 1)
You can do that if you want to take the player completely out of the game.
For team games you can use the condition “Player Defeated” for all team players to determine if the whole team is defeated.
When that is true you can either announce that a specific team is defeated (for games with more than two teams) or end the game (for two team games).
Here is how you can end the game properly with announcement where everything stops, and giving the players the option to view the game’s statistics.
This is an example for 2V2 game:
Trigger name: “Team 1 Won” (Active)
Condition: Player Defeated (player = 3)
Condition: Player Defeated (player = 4)
Effect: Render Fog/Black Map (fog of war = off, black map = off)
Effect: Win Message (Flash UI Train = Team 1 Has Won the Game)
Effect: End Game
Trigger name: “Team 2 Won” (Active)
Condition: Player Defeated (player = 1)
Condition: Player Defeated (player = 2)
Effect: Render Fog/Black Map (fog of war = off, black map = off)
Effect: Win Message (Flash UI Train = Team 2 Has Won the Game)
Effect: End Game
First, the fog of war and black map will be removed so everyone can see everything on the map.
Then a big victory message will be displayed on the screen.
And finally the game will freeze and players can view the game statistics.
First, it is important to know that the single player method of assigning your own home city files from the scenario menu doesn’t work for online scenarios.
To make high level home city you need to use the new “Home City Editor” option from the “Scenario” Menu.
However, before you do that, open the “Player Data” window from the “Scenario” menu and click on the “Reset HC” button for all players in order to reset the home city.
After that you can open the “Home City Editor” window and assign the home city level that you want.
You can then choose new cards and build decks just like you normally do.
Please note that players can choose to play CSO with any of the civs so you may want to set high home city level for every civ.
After that you are done.
However, if you test your scenario in the editor or as a single player scenario you will NOT see your high level home cities.
You will only see them Online.
Please also note that once you exit the Editor you cannot go back and modify your home city decks.
You will then have to delete them and start all over again.
So make sure you make them right the first time.
Please be aware that you will loose all your existing Multiplayer Home City Decks when you convert your existing AOE3 Vanilla or TWC scenario to TAD.
There is no way to build these decks without resetting the home cities and starting all over again.
- Open an exiting multiplayer scenario (via the Editor) that already has high level HC decks.
- Generate a new Scenario Map from the File Menu.
The HC decks from the first scenario are still in the Editor’s memory.
- Save your new scenario and you are all set (HC decks from the first scenario are now included in this scenario too).
This will work only when generating new scenario map.
Opening another existing scenario will erase the HC decks from the first scenario).
In the civ selection screen in ESO players can select their civs and teams in any way they want.
That could cause a problem for scenarios that are set in a special way where humans/computer players are supposed to be assigned to a certain player numbers or team numbers.
So here are a few tips and examples on how to enforce your special setup.
Let’s say you want to have a 1V1 game where there is a computer player that you assigned triggers to, and these triggers are essential for the scenario.
So in this case players 1 and 2 should be the human players, and player 3 should be the computer player.
First, I am sure we agree that human player cannot be assigned to player number 3 as it would cause the scenario not to work properly.
Unfortunately you cannot force a computer player to be player number 3 in ESO.
So the best way (that I found) to make the scenario work properly is to kick player 3 out of the game once the game started and notify him that player 3 meant to be a computer player and that he cannot play that role.
The game will then continue to work properly where player 1 and 2 can play and the triggers for player 3 will work properly.
To notify player 3 that he cannot play that role just use “Send Chat to Player” effect with the appropriate message.
After a few seconds you can set player 3 as a defeated player (“Set Player Defeated” effect).
Player 3 will then loose the control over his units, and he can observe the game if he wants.
This solution will work only for passive computer players who don’t have a base and don’t develop their economy with the help of “AILoadStandard” AI.
Of course if the computer player is an active player, then the triggers won’t work and human player probably can and take that role.
Please note that Triggers don’t work for “AILoadStandard” AI because the AI takes over and issues its own commands that override the triggers command.
In CSO you set “AILoadStandard” AI by placing the “AI Start” object near the TC.
Your scenario is supposed to be 3V1 but the players set the game as 2V2.
The solution for that is to override the diplomacy with your diplomacy set up.
First, issue the “Set Diplomacy” for all enemies with a timer – 1 or 2 seconds.
Then in the next effect issue all the neutral and ally effects.
This will override the player’s team setup from ESO.
The only side effect that I didn’t find a solution for yet is the “removal of the black map” according to the original team set up (from ESO).
There is going to be fog of war, but my triggers to return the black map didn’t work.
It is therefore best if players don’t set the teams in ESO and leave them as “?”.
That will resolve the black map issue.
The “Army Deploy” effect doesn’t work Online for computer players
This effect works only for human players and Gaia (player 0).
To get around this problem just use the “Army Deploy” for Gaia (player 0) and then in the same trigger use the “Army Convert” effect and convert the army to the player that you want.
This will be done very fast and you won’t notice the difference.
Unfortunately the armies that were converted to Gaia cannot be controlled via the “Army Move…” effects.
That is because none of the “Army Move…” effects works for Gaia.
If you want to be able to control the computer’s armies then you should NOT place the “AI Start” for the AI.
You can then Deploy Armies for Gaia, convert the armies to the computer player, and then move the armies to different locations.
However, once you place the “AI Start” the computer AI will override your trigger command movements.
You can also place many cinematic blocks in different locations on the map (physically, not through triggers).
During the game you can use “Change Unit Type” to change the units to any military units (you can select several cinematic cubes and change all of them in one effect).
You can then use the “Move to Point” effect to move them anywhere you want with attack move (as long as you didn't place the “AI Start” for the computer AI).
If you want them to move to a point with “attack move” = “off” (ignore everything in their way), then use the “Unit Work” effect.
This method works pretty well for CSO.
It’s just that you need to place many cinematic cubes around the map.
Setting the AI's Difficulty Level
Setting the AI difficulty level on ESO should work fine in most cases.
Setting the AI difficulty level is only needed when there is one or more active AI’s in the scenario.
DO NOT open the Scenario Editor prior to playing scenarios online.
If you opened the Editor, then just restart AOE3 before you go to ESO.
This is because the Editor’s difficulty level (default is Sandbox) will override ESO’s difficulty level resulting in OOS (Out of Sync) error when the Editor’s difficulty level doesn’t match the difficulty level on ESO.
Verify that the AI difficulty setting on ESO does match the AI’s difficulty level during the game.
I witnessed cases where it wasn’t the same and so far I haven’t been able to determine the cause for that other than the Editor’s difficulty override.
Scenario Doesn’t recognizing Resigning Players
As some of you have noticed when a player resigns a scenario game the game doesn’t set him as “Player Defeated” automatically.
As result of that players may resign the game and your win triggers won’t be executed.
The solution for that is to check if the player is active, see:
You should have this condition for each player with the “NOT” check box checked.
The effect under this condition should be “Set Player Defeated”.
You may also want to display a message notifying everybody when a player resigns.
This will insure that your win triggers always get executed.
-------------
I wrote this “short” guide mainly to help out new scenario designers who want to make online scenarios.
If you want to see actual examples for these triggers in a very small and simple scenario, then check out my first published multiplayer scenario
This is a very simple 2V2V2 skirmish scenario that has almost all the triggers that I mentioned above.
If you have Reyk’s editor then you can even cut and paste these triggers to your own scenario.
--------------
Feel free to post your own tips and tricks for CSO.
Thank you,
Moshe Levi
My AOE3 Scenarios:
Strategic Objectives: Death Valley / Strategic Objectives: Russo-Turkish Wars
The Tapir Witch Chronicles: Immortal Cows – Single Player / Multiplayer
“Annihilation” 2V2 (Supremacy) Multiplayer / Tribe Wars (2V2/FFA) Multiplayer
Strategic Objectives: Islands / Forest Domination II Multiplayer / Geronimo’s Revenge
More Scenarios / http://www.moshelevi.com
[This message has been edited by MosheLevi (edited 08-14-2008 @ 07:47 PM).]