Upon pressing the “Share Code” button, you’ll be prompted to either “Create A New Code” or “Upload To Existing Code.” If you choose the latter, then you’ll have to enter your existing share code into a text box before pressing Continue, which will update the existing share code with new custom game settings. According to the original post, this will only work if you originally owned the mode.
In the Skirmish settings, you can now choose if any control point area can be chosen to be played on, or only specifically the First, Second, or Third control point area.
Strings can be stored in variables without giving an error.
You can now set the reevaluation parameter to any of the following:
- Visible To and Sort Order
- Visible To
- Sort Order
- None
Triggers when a player takes knockback from another player. Attacker will be set to the player who dealt the knockback, Victim will be set to the player who took the knockback. Apply Impulse does not trigger this event.
New syntax for Workshop code. Examples:
Before 1.48
actions
{
Set Global Variable(A, 88);
Modify Global Variable(B, Add, 1);
Set Global Variable At Index(C, 4, 2);
Set Global Variable(D, Divide(Add(5, 10), 3);
Set Global Variable(E, Or(True, False))
}
After 1.48
actions
{
Global.A = 88;
Global.B += 1;
Global.C[4] = 2;
Global.D = (5 + 10) / 3;
Global.E = True || False;
}
Prettier, isn’t it? These are only a few examples of the improved C-style Workshop code.
If any extra {0}, {1}, or {2} parameters for String/Custom String are Null, then they will not appear in the Workshop code. Example:
Before 1.48
actions
{
Small Message(All Players(All Teams), Custom String("Lorem ipsum {0}", Is Game In Progress, Null, Null));
}
After 1.48
actions
{
Small Message(All Players(All Teams), Custom String("Lorem ipsum {0}", Is Game In Progress));
}
A lovely poem of syntax coloring:
- Actions and operator symbols are yellow
- Values are blue
- Variables and numbers are white
- Strings are dark blue
You can use booleans where numbers are expected, and vice versa.
Not really sure exactly how the Workshop handles using math on booleans or using numbers in And/Or operations, but maybe it’ll be useful.
A ton of new communication types were added to values such as Is Communicating
and the action Communicate
. These new communication types come from the new “Improved Communications Wheel” feature.
Now we can easily trigger lots of different rules by using Is Communicating
with all the new communication options!
Breaks out of the current For/While loop, and jumps to the action after the loop’s End action.
Jumps back to the beginning of the current For/While loop.
Lets you enable/disable crouching for one or more players.
Does not affect crouch abilities like Hammond’s Piledriver.
Lets you enable/disable quick melee for one or more players.
Does not affect Reinhardt’s Rocket Hammer. Also, it make Brigitte go crazy for some reason if you disable it.
Lets you enable/disable jumping for one or more players.
Does not affect jump abilities like Hanzo’s Lunge, or jump passives like Hanzo/Genji’s Wall Climb, Genji’s Double Jump (requires you to leave the ground first), Mercy/Echo’s Glide, or Pharah’s Hover Jets.
Declares a draw for a single round. Only works in Elimination.
Allows you to set the cooldown of any ability for one or more players! Syntax:
- Player - The player who will have their ability’s cooldown set.
- Button - The button that is bound to the ability that will have its cooldown set. Accepts any values that can output a button constant.
- Cooldown - The amount of seconds that you would like to set the ability’s cooldown to.
You can set the cooldown even higher than the normal cooldown of the ability, up to 1,000 seconds! Setting the cooldown to zero or a negative number will instantly make the ability ready for use again.
Instantly cancels any kind of ability/fire that the player is currently using, kind of like an animation cancel. Similar to using a very short stun on a player, except it does not stun them at all. There are so many things that this action can affect, that I wouldn’t be able to list them all. Here are some interesting effects, though:
- Reloading will be canceled
- Doomfist’s grounded Seismic Slam turns into a tiny hop
- Roadhog’s Chain Hook gets instantly pulled back
- McCree doesn’t move at all during Combat Roll, but he still reloads
- Hanzo’s bow pull gets canceled
- Ashe, Widowmaker, and Ana are pulled out of their scope
- Burst fire weapons will usually shoot less bullets
- Bastion’s Reconfigure will get canceled
- If you use this action while Reinhardt is pulling out his shield, you get something hilarious
Is True if the player is currently using their quick melee, False/Null otherwise. Is still False/Null even if Reinhardt’s Rocket Hammer or Brigitte’s Rocket Flail is being used.
Is True if the player was last propelled into the air by their jump.
Will become False if the player lands onto a surface, or uses a propulsion ability/passive in the air such as Genji’s double jump, Hanzo’s Lunge, the Shimada Wall Climb, Echo’s Flight, Pharah’s Jump Jets and Hover Jets, and much much more!
Baptiste’s Exo Boots jump still counts as a jump, and will make this value be True. Mercy/Echo’s Glide will not set this value to False.
The direction pointing from the attacker/healer player/projectile towards the victim/healee player from the event of the current rule.
This works with the following events:
- Player Dealt Damage
- Player Took Damage
- Player Dealt Healing
- Player Received Healing
- Player Dealt Knockback
- Player Received Knockback
Good for Smash Bros. type modes!
A brand new constant that contains all of the buttons that affect normal gameplay in Overwatch.
It contains:
- Primary Fire
- Secondary Fire
- Ability 1
- Ability 2
- Ultimate
- Interact
- Jump
- Crouch
- Melee
- Reload
The ability that caused the event of the current rule to trigger. Returns the Button that is associated with the ability.
This works with the following events:
- Player Earned Elimination
- Player Dealt Final Blow
- Player Dealt Damage
- Player Took Damage
- Player Died
- Player Dealt Healing
- Player Received Healing
- Player Dealt Knockback
- Player Received Knockback
Very useful value.
The ability cooldown time (in seconds) of the specified ability (that is associated with the button in the Button parameter).
You can use this to display any ability icon from any hero in a string!
It also works with the Primary Fire of heroes by showing an icon of their primary weapon.
The desired hero is chosen in the Hero parameter, and the desired ability of that hero is chosen by the Button parameter (choose the button which is associated with your desired ability).
You can easily build an array of values with this value!
Example:
actions
{
Global.A = Array(55, 92, Hero(Echo), Custom String("Strings in variables!"), True, Button(Reload));
}
This easily creates an array with the following elements:
[0] = 55
[1] = 92
[2] = Echo
[3] = "Strings in variables!"
[4] = True
[5] = Reload
Allows you to return a certain value if a condition is true, and a different value if it is not true.
Example:
actions
{
Event Player.A = Is Alive(Event Player) ? All Players(All Teams) : Empty Array;
}
This will set player variable A to All Players(All Teams)
if the Event Player
is alive, but will set player variable A to Empty Array
is the Event Player
is not alive.
And there you have it! I hope that this post will be informative to those of you who are wondering about the new Workshop content in the 1.48 PTR.