Jump to content
FORUMS
Sign in to follow this  
Starym

PTR Notes Feb 26: Baptiste, Armor, Knockback and Hero Changes

Recommended Posts

4HGbgH0.jpg
 

The new Hero reveal continues as Baptiste has arrived on the PTR today! We got an intro video for him, in addition to yesterday's origin story and the developer update, as well as bunch of other patch notes as well!

We have more base gameplay changes as well, with beam and damage over time weapons now being more consistent against armor (and DoTs actually not getting reduced by it at all) and knockbacks affecting flying Heroes and their distance also being more consistent. Then there's the Hero changes, with Ana getting some healing nerfs to Nano Boost, Doomfist getting some cooldown reductions, McCree getting Fan the Hammer nerfed and Deadeye buffed and more!

Blizzard LogoFebruary 26 (source)

Overwatch PTR Patch Notes – February 26, 2019

A new Overwatch patch is currently in development and now available for testing! To share your feedback or report and issue, please post in the PTR Feedback or PTR Bug Report forums.

Please note that the below patch notes only include changes currently available for testing on the PTR. While many of these changes will also be available on PlayStation 4 and Xbox One in a future patch, the PTR is PC-only and only reflects changes coming specifically to that platform.

PATCH HIGHLIGHTS

New Hero: Baptiste (Support)

Baptiste is a battle-hardened combat medic who wields an assortment of experimental devices and weaponry to keep allies alive and eliminate his enemies. Baptiste’s Biotic Launcher fires a three-round-burst that rewards accuracy and recoil control with significant damage output. His alternate fire lobs grenades that heal allies near the point of impact. With Regenerative Burst , Baptiste activates an intense surge that heals himself and nearby allies over time. When danger is near, Baptiste can toss out his Immortality Field to prevent allies from dying. Baptiste moves around the battlefield with Exo Boots , jumping over obstacles and clearing distances that would stop other heroes. Baptiste deploys his Amplification Matrix as his ultimate, which doubles the damage and healing effects of friendly projectiles.

GENERAL UPDATES

Armor

  • Beam-type damage is now reduced by 20% when hitting armor
  • Damage over time effects are no longer mitigated by armor

Developer Comments: The damage taken by armor from damage over time effects, such as Widowmaker’s Venom Mine, and beam weapons, like Symmetra’s Photon Projector, varied greatly. Now it will be more consistent and predictable.

Damage Boost

  • Damage boost is now applied when a projectile is fired rather than when it hits a target

Developer Comments: Previously, the effects of damage boosting were only accounted for if the damage-dealing hero was being boosted as they landed a hit. Now, damage is applied to the projectile as it is fired. This means the damage-dealing hero doesn’t need to be boosted when the projectile hits an enemy for the damage boost to be accounted for.

Knockback

  • Knockback distance is now more consistent
  • Heroes that are flying can now be knocked back and slowed

Developer Comments: Knockbacks are now less affected by how the enemy was moving when they were hit. Instead of having small or large knockbacks that depend on chance, knockbacks will feel similar regardless of the enemy’s movement leading up to the knockback. Allowing flying heroes, like Mercy when using her Valkyrie ability or D.Va using her Booster ability, to be properly knocked back makes for more fluid, realistic gameplay.

Sound

  • A new sound plays when you land a hit while damage boosted
  • A new sound plays when you land a hit, but it doesn’t do any damage

Developer Comments: With the addition of Baptiste, we wanted to be sure that you can tell when your hits were being buffed or nullified, regardless of what hero you’re playing.

HERO UPDATES

Ana

  • Nano Boost
    • Heal reduced from 300 to 250

Developer Comments: Giving Nano Boost an instant heal effect enabled players to survive longer and made Ana’s ultimate valuable. However, it needs to be slightly less effective for refilling large health pools.

Doomfist

  • Rising Uppercut
    • Cooldown reduced from 7 to 6 seconds
  • Seismic Slam
    • Cooldown reduced from 7 to 6 seconds

Developer Comments: Reducing the downtime of Doomfist’s abilities should make his gameplay feel more fluid.

Hanzo

  • Sonic Arrow
    • Detection radius increased from 7 to 9 meters

Developer Comments: Because of how dense the environment is on some maps, the Sonic Arrow can feel ineffective in some areas. Increasing Sonic Arrow’s detection radius should make it more effective.

Lúcio

  • Sonic Amplifier
    • Soundwave now counts towards Offensive Assists

Developer Comments: The knockback on Lúcio’s Soundwave is a great tool for pushing enemies into situations that get them killed, so they should be rewarded an offensive assist for doing so.

McCree

  • Fan the Hammer
    • Damage reduced from 55 to 50
  • Deadeye
    • Damage per second increased from 275 to 550 after locking onto targets for 2.5 seconds

Developer Comments: After reducing armor’s effectiveness for all heroes, Fan the Hammer doesn’t need to deal quite as much damage. Increasing Deadeye’s damage after being locked on for a bit makes it more effective when attacking high health, static targets (like barriers) and heroes with over 600 health. It will not impact how dangerous this is for heroes under 600 health.

Mei

  • Endothermic Blaster
    • Primary fire damage increased from 2.25 to 2.75 (45 to 55 damage per second)
  • Ice Wall
    • Health reduced from 500 to 400

Developer Comments: Increasing the damage of Mei’s primary fire should make her Freeze and Icicle move combination more potent. Making the pillars on Mei’s Ice Wall easier to destroy means less waiting for the wall to disappear on its own and more opportunities to counter it.

Moira

  • Biotic Grasp
    • Heal over time duration increased from 3 to 4 seconds
    • Total healing increased from 50 to 65

Developer Comments: These minor changes make Moira’s passive healing effect on Biotic Grasp slightly more effective when topping off an ally’s health.

Orisa

  • Fusion Driver
    • Movement speed penalty while firing reduced from 50% to 30%

Developer Comments: As a defensive tank, Orisa can have trouble pushing forward with the team. Allowing Orisa to move faster while firing should make it easier to apply pressure on the enemy team and use her barrier in proactive ways.

Pharah

  • Rocket Launcher
    • Minimum explosion damage increased from 16.25 to 20

Developer Comments: This change sets the Rocket Launcher’s minimum damage to where it was before we rebalanced its direct impact and explosive damage in a recent patch.

Soldier: 76

  • Pulse Rifle
    • Damage increased from 19 to 20
  • Sprint
    • Delay before you can fire the weapon after using Sprint reduced from .5 to .3 seconds
  • Tactical Visor
    • Can target RIP-Tire and Immortality Field

Developer Comments: This change should potentially allow Soldier: 76 to kill an enemy hero one shot sooner. Reducing the time between when you use Sprint and when you can fire should make the ability more fluid and responsive. Giving Tactical Visor the ability to target Junkrat’s RIP-Tire and Baptiste’s Immortality Field drone is a quality of life improvement, since these are both critical targets.

Sombra

  • Hack
    • Cooldown is reduced by half when hacking a health pack

Developer Comments: The cooldown on Hack often made it feel less effective to target health packs instead of players. This will make both health packs and players viable targets for hacking.

Torbjörn

  • Base health increased by 50 armor (250 maximum health)
  • Overload
    • Armor gain reduced from 150 to 100

Developer Comments: Torbjörn’s survivability was a bit low, so we’ve shifted some power from his Overload ability to his base health.

Widowmaker

  • Infra-Sight
    • Reveals enemy health bars
    • Now canceled on death

Developer Comments: Infra-Sight had no counter to its effect, so it now ends when Widowmaker dies. To balance out its higher risk of use, Infra-Sight now reveals enemy health bars to Widowmaker’s team.

Wrecking Ball

  • Adaptive Shield
    • No longer cancels Roll mode

Developer Comments: This will make Adaptive Shields a more powerful survival tool, since being forced out of Roll mode left Wrecking Ball more susceptible to fire.

BUG FIXES

Callouts

  • Fixed a bug where the “Need Healing” callout wouldn’t display in chat if the hero you targeted didn’t have healing abilities

Camera

  • Fixed a bug where, when playing certain heroes, the camera would clip into the hero when looking straight upwards

Career Stats Menu

  • Fixed a bug where the season labels for Competitive CTF and Competitive 6v6 Elimination didn’t display

Hero Gallery

  • Fixed a bug where, if switching between Junkrat Skins, one of the bombs on his vest would spin

Heroes

  • Ana
    • Fixed a bug where Ana’s clothes would clip into her hip pouch while doing the Yut Nori emote
  • Ashe
    • Fixed a bug that prevented audio feedback from playing to indicate ammo was low on Ashe’s rifle if it had three or fewer bullets
  • D.Va
    • Fixed a bug that made D.Va very difficult to knock back while she was firing her Fusion Cannons
  • Genji
    • Fixed a bug that caused Genji’s Dragonblade to end before the deflect duration was complete
    • Fixed a bug where Genji would be knocked back unusually far when using Swift Strike to hit Doomfist’s Rocket Punch
  • Hanzo
    • Fixed a bug where Hanzo’s leg would visibly move while he was in his Meditate pose
  • Mercy
    • Fixed a bug where Mercy’s left knee would bend unnaturally when stunned by McCree’s Flashbang
  • Orisa
    • Fixed a bug that made Orisa very difficult to knock back while she was firing her Fusion Driver
  • Reaper
    • Fixed a bug where a button on the shoulder of Reaper’s Lu Bu skin appeared to be floating
  • Reinhardt
    • Fixed a bug where a piece on Reinhardt’s back displayed incorrectly while using the Guan Yu skin in the Hammer Down highlight intro
    • Fixed an issue that allowed Reinhardt’s Earthshatter to hit people further off the ground than intended in specific circumstances
  • Sombra
    • Fixed a bug where Sombra’s stealth exiting sound effect wouldn’t play if an emote was used to exit stealth mode
    • Fixed a bug where Sombra couldn’t quick melee while using her Hack ability
  • Symmetra
    • Fixed a bug where Symmetra would gain ultimate charge while casting Photon Barrier
  • Torbjörn
    • Fixed a bug that prevented Torbjörn from using Molten Core in custom games if Ability 2 was disabled
  • Widowmaker
    • Fixed a bug that prevented Widowmaker’s Venom Mine from damaging a hero if they triggered it at the edge of its trigger radius

Maps

  • Hollywood
    • Fixed a bug where the winning team’s hero lineup wouldn’t display correctly
  • Paris
    • Fixed a bug where the sounds coming from the Nous vous surveillons apartment weren’t playing
  • Sad 1

Share this post


Link to post
Share on other sites
17 minutes ago, Starym said:

Widowmaker

  • Infra-Sight
    • Reveals enemy health bars
    • Now canceled on death

Developer Comments: Infra-Sight had no counter to its effect, so it now ends when Widowmaker dies. To balance out its higher risk of use, Infra-Sight now reveals enemy health bars to Widowmaker’s team.

BTW how the hell does that even work? I get it that she puts her goggles on and sees everybody but why so does every single team member? She gives them spares that activate the same time she uses her's or what?

  • Haha 1

Share this post


Link to post
Share on other sites
28 minutes ago, Starym said:

New Hero: Baptiste (Support)

Baptiste is a battle-hardened combat medic who wields an assortment of experimental devices and weaponry to keep allies alive and eliminate his enemies. Baptiste’s Biotic Launcher fires a three-round-burst that rewards accuracy and recoil control with significant damage output. His alternate fire lobs grenades that heal allies near the point of impact. With Regenerative Burst , Baptiste activates an intense surge that heals himself and nearby allies over time. When danger is near, Baptiste can toss out his Immortality Field to prevent allies from dying. Baptiste moves around the battlefield with Exo Boots , jumping over obstacles and clearing distances that would stop other heroes. Baptiste deploys his Amplification Matrix as his ultimate, which doubles the damage and healing effects of friendly projectiles.

Oooh look out boys and girls. We are about to get another OP monster soon

Share this post


Link to post
Share on other sites

Finally I can dump in the trash Wrecking Ball weapons for good since if I don't need to cancel the ball to use the shield I will almost never use them either for how bad they are compared to the risk of getting multiple headshots on myself.

Great improvement to WB effectiveness that emphasize mobility and being harder to kill.

The enemy stuns are more than enough forced out of the ball time the shield being a trouble to activate more than a actual help was his only problem and now is gone.

Seems pretty much comparable to Roadhog heal during walk update that incredibly helped Roadhog at the time.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Starym
      Overwatch's three year anniversary is coming up tomorrow and we have both new and returning cosmetics! For the new stuff we have 6 legendary and 3 epic skins, as well as new dances for Ashe, Baptiste and Hammond, and the returning stuff also features old brawls.
      We're also getting a free trial for a week, lasting until May 28th, whereas the event itself ends on June 10th. We also got the first new legendary skin with this pretty amazing Winston gargoyle one:
    • By Starym
      Here comes the next live patch, introducing the new Escort map in Havana! There are also two new skins to be had, themed around the 2019 All-stars, with Lucio and Mercy getting all dolled up!
      Patch Notes, May 7 (source)
      New Map: Havana
      Havana, a vibrant, historic port city where the winds of change blow strong, is home to Overwatch’s newest Escort map!
      Begin your trip at the Taller de Sebastián, where the classic cars that line Havana’s bustling streets stop for refueling and repair. Escort a truck of rum barrels on the sun-drenched cobblestone roads, fighting off those who try to stop you. As you make your way, duck into a colorful building to escape enemy fire and savor the impressive flavors of Havana at La Cocina de Miranda or Café del Sol. Battle your opponents through the alleys until you reach the Don Rumbotico rum distillery, a once little-known local treasure that has recently earned international acclaim. Finally, guide the jalopy through the distillery to its destination at the Havana Sea Fort, a historical landmark recently purchased by an anonymous financial group and closed to the public.
      All-Star Skins
      To celebrate the Overwatch League 2019 All-Stars, we’re adding two new Legendary skins— 2019 Atlantic All-Star Mercy and 2019 Pacific All-Star Lúcio! These skins will be available from May 7th to May 22nd.
      BUG FIXES
      Maps
      Havana
      Fixed text errors on Taller de Sebastián and several posters Fixed a bug where players would slide along the bottom of the pillars and the wall corners on the second floor of La Euforia Fixed an issue where players could become stuck on the Yucca plants Previous live patch notes.
      PTR Patch notes.
    • By Starym
      Here comes a new Competitive season, bringing a new spray and player icon, as well as the special top 500 player icon and animated spray. New this season is the Grandmaster limitation that only up to 2 player can queue together, bringing some balance to the full stack team dominated bracket. We now also have no breaks between seasons with this one starting immediately after 15 ended.
      Season 16 (source)
      Unlocked at level 25, Competitive Play is designed for those players who want to put their skills to the test, and offers a more serious experience than our Quick Play or Arcade Modes.
      To begin your competitive journey this season, click on the “Play” button, select “Competitive Play” from the submenu, and you’re ready to enter a match. You can join on your own or in a group, and Overwatch’s matchmaking system will automatically find the best game possible for your skill level.
      GETTING STARTED
      Before you can kick off your competitive career, every player must first complete 10 placement matches to obtain their initial skill rating. This rating will be a number between 1 and 5000, with higher values indicating a greater skill level. Players will also be assigned a tier based on their rating—Bronze, Silver, Gold, Platinum, Diamond, Master, or Grandmaster—and climbing into the next tier is possible as you improve.
      Skill ratings and tier icons will be visible at the beginning of every match. As you compete, your rating will increase or decrease with each win or loss based on a number of factors, including your own performance and the skill of the other players in the match.
      A detailed breakdown of the skill tiers, along with icons and information about the corresponding skill ratings can be found by pressing the “Information” button under the Competitive Play menu.
      COMPETITIVE REWARDS
      In addition to experiencing the thrill of victory, players can also unlock unique rewards through Competitive Play. Anyone who completes their placement matches during a season will receive a special spray and player icon. If you are placed within the Top 500 players on your platform (and in your region) at the end of the season, you’ll receive an extra player icon and animated spray.

      On top of that, as you complete competitive matches, you’ll earn a currency called Competitive Points. When the season concludes, you’ll also receive a number of those points (based on your overall performance) to spend on golden versions of your favorite heroes’ weapons.
      Here’s the Skill Rating (SR) to Competitive Point (CP) breakdown for Season 16:
      SR 1-1499 (Bronze): 65 CP
      SR 1500-1999 (Silver): 125 CP
      SR 2000-2499 (Gold): 250 CP
      SR 2500-2999 (Platinum): 500 CP
      SR 3000-3499 (Diamond): 750 CP
      SR 3500-3999 (Master): 1200 CP
      SR 4000-5000 (Grandmaster): 1750 CP
      WHAT’S NEW
      Starting with Season 16 of Competitive Play, Grandmaster players (players with SR >4000) will no longer be able to queue for competitive matches in a party size larger than two. Read here 2.
      Reminder: You may have noticed there is no Competitive Play off-season break! Going forward when a Competitive Play season ends a new one will immediately begin.
      Season 16 is live RIGHT NOW on PC, PlayStation 4, and Xbox One, so power up your favorite gaming machine and join the fight. We’ll see you on the battlefield!
    • By Starym
      Scott Mercer announced that the upcoming Season 16 (starting tomorrow, April 30th), will be bringing a huge change to the very top of Competitive play. Everyone at Grandmaster level will no longer be able to queue with more than one other player. This will remove the huge advantage full pre-made groups had over smaller ones (or god forbid, solo-queuers) and hopefully lead to better balanced and more fun matches overall!
      Season 16 Competitive (source)
      Hello everyone!
      Starting with Season 16 of Competitive Play, Grandmaster players (players with SR >4000) will no longer be able to queue for competitive matches in a party size larger than two. In an effort to have higher quality and more fun matches for everyone, Overwatch actively tries to place parties of similar sizes together to create fair matches. For the vast majority of players this feature of the matchmaking system works reasonably well. For our Grandmaster players, making fair matches is always more difficult simply because there are fewer players of their skill level to place together. It’s even harder if we allow Grandmasters to queue with larger groups. We believe this change will help create better quality matches for all Grandmaster players.
      Thank you and please continue to share your feedback about Competitive Play!
    • By Starym
      Now that we've learned about the awesome Workshop feature coming to the game soon and live on the PTR now, we're getting an in-depth walkthrough of the editor. There's a whole bunch of info below on how to create, debug and share your script and more, and definitely make sure to read the post on the official site if you're interested in specific examples of scripts.
      The Workshop (source)
      Create games in ways previously unimaginable with the Workshop! The Workshop is a simplified game scripting system that expands the customization features available in the Game Browser. Within the Workshop, you'll create a Script to add Rules and unique play Conditions on top of the established Overwatch game modes you already know and love. Rules can do many things, like change how a hero's movement and abilities work, modify how players are damaged or healed, or even display text under certain circumstances.
      One hot game mode you can create is Molten Floor, where your hero will catch on fire if they're on the ground:


      Table of Contents
      Accessing Workshop Creating a Script Adding a Rule Selecting an Event Adding a Condition Adding an Action Action Types Additional Information Examples Debugging Your Script Sharing Your Script Opening a Script Tips and Tricks Accessing Workshop
      To access Workshop, click Play > Game Browser > Create > Settings > Workshop.
      Creating a Script
      To create a Script, you must:
      Add a Rule Select an Event Add a Condition (Optional) Add an Action Once you do this, you can add as many Rules, Conditions, and Actions as you have room for.
      Adding a Rule
      Rules are highly customizable pieces that make up your Script. Each Script must have one or more Rules.
      Each Rule has an optional comment and contains:
      Event: Defines when the Rule will be executed. For more information, see Selecting an Event. Conditions: An optional list of things that must be true for the Rule to apply. For more information, see Adding a Condition. Actions: A list of things that happen when the Event and Conditions are met. For more information, see Adding an Action .  
      To add a Rule, click Add Rule.
      Selecting an Event
      An Event defines when the Rule will be executed. When an Event happens in-game, an Instance of the Rule is created. Each Instance evaluates Conditions and executes Actions independently of other Instances.
      Once a Rule is created in the editor , an Event is automatically added. You must specify what type of Event you'd like.
      To specify an Event type:
      Click the drop-down next to Event. Select one of the following:
      Event Types Event Type comment Ongoing - Global Creates a single Instance of this Rule when the game starts. This Instance remains active for the entirety of the game.
      Since the Instance remains active the entire game, a Condition may sometimes pass or sometimes fail. Once a Condition passes for the first time, the Actions will then execute. Whenever the list of Conditions fails and then passes again, the Actions will attempt to execute again. Ongoing - Each Player Creates an Instance of this Rule for each player when they join the game. This Instance remains active until the player leaves or the game ends. Each Instance tracks and executes the Conditions and Actions separately.
      Since the Instance remains active as long as the player is in the game, a Condition may sometimes pass or sometimes fail. Once a Condition passes for the first time, the Actions will then execute. Whenever the list of Conditions fails and then passes again, the Actions will attempt to execute again. Player Earned Elimination Executes the Rule whenever a player earns an elimination. Only one Instance of the Rule can be active on a specific player at a time.
      When a player eliminates someone, the Conditions are checked. If every Condition passes, the Actions execute. If any fail, the Actions don't execute. Player Dealt Final Blow Executes the Rule whenever a player deals a final blow. Only one Instance of the Rule can be active on a specific player at a time.
      When a player deals the final blow to an opponent, the Conditions are checked. If every Condition passes, the Actions execute. If any fail, the Actions don't execute. Player Dealt Damage Executes the Rule whenever a player deals damage. Only one Instance of the Rule can be active on a specific player at a time.
      When a player deals damage to an opponent, the Conditions are checked. If every Condition passes, the Actions execute. If any fail, the Actions don't execute. Player Took Damage Executes the Rule whenever a player takes damage. Only one Instance of the Rule can be active on a specific player at a time.
      When a player takes damage from an opponent, the Conditions are checked. If every Condition passes, the Actions execute. If any fail, the Actions don't execute. Player Died Executes the Rule whenever a player is killed. Only one Instance of the Rule can be active on a specific player at a time.
      When a player is killed, the Conditions are checked. If every Condition passes, the Actions execute. If any fail, the Actions don't execute. If necessary, specify the Team or Player that should be impacted by this event. The options are:
      Team Option comment All Event applies to all teams, including players in free-for-all modes Team 1 (or Current Team Name) Event only applies to members of this team Team 2 (or Current Team Name) Event only applies to members of this team Player Option comment All Event applies to all players Slot 0 through Slot 5 Event only applies to players in the specified slot. In a team-based game, two players may occupy one slot (one for each team). Slot 6 through Slot 11 Event only applies to players in the specified slot. This only applies in free-for-all game modes. Specific Hero Event will only apply to players who have spawned as that hero Adding a Condition
      After you've added a Rule and an Event, you have the option to add one or more Conditions. Conditions are a list of things that must be true before the Rule can execute its list of Actions. If the Condition belongs to a Rule with an Event type of "Ongoing - Global" or "Ongoing - Each Player," it's checked continuously to see if it's true. If it belongs to a Rule with any other type, it's checked whenever the specified Event occurs. If a Rule has no Conditions, the Action list will attempt to execute as soon as the Event occurs. Each Condition is made up of two Values, which use an Operator to compare and check to see whether or not they are True. See Values for more information.
      To add a Condition:
      Click Add next to Conditions. Fill in the Value fields. Note: When a Value itself has an Input (such as the "Hero Of" Value, which needs to know the player from whom to acquire the hero), then the Input for that Value will show up indented below it. Select an Operator. The Operators are: == Equals != Doesn't equal > Is greater than >= Is greater than or equal to < Is less than <= Is less than or equal to Examples This checks whether or not the number of all players in the game is equal to the number of players that are alive.
      Value: "Number of Living Players", Checks for the total number of players who are alive Team: Team, Checks all players on a team Team: All, Checks all players on all teams Operator: ==, Means the first Value must be equal to the second Value for this Condition to return True Value: "Number of Living Players, Checks for the total number of Living Players Team: Team, Checks all players on a team Team: All, Checks all players on all teams Other Examples
      IsFlagBeingCarried(Victim) == False: The player that was killed must not have been holding the flag IsCrouching(Event Player) == True: The player that the event is active on must be crouching NumberOfFinalBlows(Attacker) > 10: The player who's attacking has more than 10 final blows  
      Adding an Action
      An Action is something that modifies the game. They are executed in order from top to bottom. For the list of Actions to start executing:
      The Event associated with the Rule must have occurred All Conditions of the Rule must be true (or there are no Conditions) If the Event type is "Ongoing - Global" or "Ongoing - Each Player," the list of Actions will execute when every Condition passes for the first time. Whenever the list of Conditions fails and then passes again, the Actions will attempt to execute again. With the exception of the Wait Action (see Wait Action for more information), all Actions execute and finish immediately. Each Action is made of zero or more Inputs, which describe how the game is modified. Each Input is given a Value, which is a piece of information or an instruction on how to get information. For more information, see Values.
      To add an Action:
      Click Add next to Actions. Select an Action, which describes how the game will be modified. Select a Value in the drop-down for each new Input that appeared. Note: Some Actions will create an object or ongoing behavior. Such Actions may have an Input called "Reevaluation." This Input determines whether the other Inputs for this Action are fixed (leaving the object or ongoing behavior unchanged) or dynamic (changing the object or ongoing behavior as the Value assigned to the Input changes). Examples Actions
      Pause Match Time: Pauses the time of the current match Modify the Global Variable(T, Add, 5): Increases the Global Variable T by 5 Set Invisible(Event Player, Enemies): Makes the player executing this Rule invisible to enemies Actions with a Reevaluation Input
      Create Icon(All Players(All Teams), Global Variable(P), Alert, Position): Create an Alert icon that's visible to everyone at the location specified by Global Variable "P". Reevaluate the Position continuously, so if the Global Variable "P" changes later, the icon's position will change to the new location. Create Icon(All Players(All Teams), Global Variable(P), Alert, None): Create an Alert icon that is visible to everyone at the location specified by Global Variable P. Do not reevaluate anything, so even if the global variable P changes later, do not update the position of the icon. Action Types
      Although there are many potential Actions, there are a few you should be aware of:
      Looping Action Loop is an Action that causes the execution of the list of Actions to restart from the beginning. There are four types of Loop Action:
      Loop: Always restart the Action list Loop If: Restarts the Action list if the Action’s Condition Input evaluates to a value other than 0 or False Loop if Condition Is True: Restarts the Action list if all of the Rule’s Conditions are currently passing Loop If Condition Is False: Restarts the Action list if any of the Rule’s Conditions are currently failing A Loop Action is only allowed if a Wait Action is guaranteed to execute before the start of the Action list.
      Good Bad This is allowed, since it waits before looping.
       
      This is not allowed, since it would execute forever without waiting.
      Wait Action Wait is an Action that causes time to pass before a subsequent Action can execute. The minimum wait time is 0.25 seconds.
      There are three behavior options for the Wait Action:
      Ignore Condition: If this is selected, the execution of the Actions can't be interrupted by Conditions or other Events. If the Event type is "Ongoing - Global" or "Ongoing - Each Player", Conditions transitioning between failing and passing will not cause anything to happen. If the Event is of any other type and an event of that type occurs with the same Event Player, the event is ignored entirely. Abort When False: If this is selected, the Action list stops executing if the Conditions start to fail. Restart When True: If this is selected, Action execution will reset to the first Action if one of the following happens: The Event type is "Ongoing - Global" or "Ongoing - Each Player" and the Conditions transition from failing to passing. The Event is of any other type, an event occurs with the same Event Player, and the Conditions all pass. Additional Information
      Strings The String Value generates a string. It has the following Inputs:
      String: The text to display. If the text contains a number inside curly braces, it will be replaced with the Value provided to the corresponding Input. {0}: The Value that will be converted to text before replacing the {0} in the String. This Value may be of any type. {1}: The Value that will be converted to text before replacing the {1} in the String. This Value may be of any type. {2}: The Value that will be converted to text before replacing the {2} in the String. This Value may be of any type. Examples String(“Hello”, Null, Null, Null): Produces the string “Hello” String(“{0} vs {1}”, Hero(Ana), Hero(Pharah), Null): Produces the string “Ana vs Pharah” Strings can be combined to form more complex strings:
      Examples String(“{0} vs {1}”, Hero(Ana), String("{0} and {1}", Hero(Pharah), Hero(Genji), Null), Null): Produces the string “Ana vs Pharah and Genji” Strings can't be used in Conditions or stored into Variables because of complications with players using different languages in the same Custom Game.
      Values A Value is a piece of information—or an instruction on how to obtain information—provided to the Input of a Condition, an Action, or another Value. Values can be combined with each other.
      There are many, many Values, so we won't define them all here. However, they are defined in the Workshop Editor. Here are a few that you're likely to see:
      Value comment Number Provides a real number in a range specified by the Input Vector Provides a three-dimensional value in a range specified by the Input. This is used for positions and directions. Team Indicates a specific team, such a Team 1, Team 2, or All Teams Hero Indicates a specific Hero Null Indicates the absence of a Player or Entity True Provides the value of True False Provides the value of False Compare Provides either True or False, depending on whether or not the comparison it describes was true or not Event Player Provides the Player that's executing the Instance of the Rule or Null if there's no such player Attacker Indicates the Attacker for the Instance of the Rule or Null if there isn't an Attacker Victim Indicates the Victim for the Instance of the Rule or Null if there isn't a Victim Current Array Element Provides the current Value being considered when used along with the If True For Any, If True For All, Filtered Array, or Sorted Array Value A Value may be stored into an Array, which is a collection of multiple Values.
      Several Actions and Values can create or modify an Array. For example, the "All Players" Value gives you an Array of every player currently in the game. You can also build your own arrays using the "Append To Array" operation of the "Modify Global Variable" Action or "Modify Player Variable" Action. If an Input expects an array but receives some other kind of Value, the Value is copied into an array of a single element for the benefit of the Input. Similarly, if an Input expects some other kind of Value but receives an array, the first Value in the array is used (or 0 if the array is empty). Variables A Variable is a place where a Value can be stored and retrieved later. With the exception of Strings, any Value can be stored in a Variable. All Variables start with a Number Value of 0.
      There are two types of Variables in a Script:
      Global Variable: There are 26 Global Variables, named A through Z. Each Variable holds a separate Value or array of Values. Player Variable: Each Player has 26 Variables, named A through Z. Each Variable holds a separate Value or array of Values. There are three operations that can be performed on a Variable:
      Setting: "Set Global Variable" and "Set Player Variable" will set the Variable to a new Value, replacing the previous Value. Modifying: "Modify Global Variable" and "Modify Player Variable" modify the Value in a Variable using a particular arithmetic operation (such as Add, Multiply, etc.) or Array operation (Append, Remove). Chasing: "Chase Global Variable Over Time", "Chase Player Variable Over Time", "Chase Global Variable at Rate", and "Chase Player Variable at Rate" gradually change the Variable over time or at a specified rate. The Destination for the Chase can be a Number or a Vector (or any Value that results in a Number or Vector). If the Destination is a Number, the Variable Value needs to be a Number before the Chase begins so that the Chase will work correctly. If the Destination is a Vector, the Variable Value needs to be a Vector before the Chase begins so that the Chase will work correctly. If Reevaluation is enabled for the Destination, the Chase will update as needed to pursue a changed Destination, even if the Destination had been reached before. For more information on Reevaluation, see Adding an Action. You can cancel a Chase using the "Stop Chasing Global Variable" Action and the "Stop Chasing Player Variable" Action. When a Chase is cancelled, the Variable keeps its current Value, which may be somewhere between what it was when the Chase began and the Destination. Examples
      Ready to get into the Action? Try creating one of these game modes! We'll walk you through what you need to add and why:
      Molten Floor We're going to walk you through creating Molten Floor, a game where heroes burn and take damage if they're on the ground.
      First, let's make sure you'll play the game on the desired map(s). Click Play > Game Browser > Create > Settings > Maps. Select the map you'd like to test the game on and disable all others. Next, enter your Workshop. Click Back. Click Workshop. Now it's time to make a Script! Let's add our first Rule. Click Add Rule. In the Comment section, enter Start Burning If On Ground. This lets you know that this Rule is what makes players start to burn when they touch the ground. Now, change the Event type so we know when this Rule should be executed. In the Event drop-down, select Ongoing - Each Player. This indicates that the Rule will be evaluated separately for every player in the game. Leave the other drop-downs with the default options. Now, let's add a Condition. This Condition will determine whether or not the Rule will execute. You can also just leave this empty if you always want the Rule to execute! Under Conditions, click Add. In the first Value drop-down, select Is On Ground. This value returns true whenever the player is on the ground. Leave all other drop-downs with the default options and click OK. Event Player means "The player that the Rule is currently running on". Finally, we'll add an Action. Actions are what happens if the Condition is true. This Action will make it so a hero will start to burn when on the ground. Under Actions, click Add. In the Action drop-down, select Set Status. In the Status drop-down, select Burning. Under Duration, change the number slider to 10,000. Leave all other drop-downs with the default options and click OK. Let's test if your hero is on fire while on the ground! Click Back twice. On the Create Game screen, click Start. Select a hero. As soon as you enter the game, your hero should be on fire. Press Esc and click Open Workshop Editor to keep building your Script. Now, let's add another Rule that ensures a hero won't be on fire if they are jumping or in the air. Instead of adding a new Rule from the beginning, let's copy the last one we created. Next to the Rule you created, click Copy. Click Paste Rule. Change the decription to Stop Burning When In the Air. This lets you know that this Rule is what makes your hero stop burning when they are in the air or jumping. Keep the existing Event type. Now, let's edit the Condition. This Condition will determine whether or not the Rule will execute. Click the existing Condition that says "Is On Ground(Event Player) == True." In the Value drop-down, select False. Leave all other drop-downs with the existing options and click OK. Next, let's edit the Action. This Action will make it so your hero will stop being on fire if they're not on the ground. Click the existing Action that says "Set Status (Event Player, Null, Burning, 10000)." In the Action drop-down, select Clear Status. In the Status drop-down, select Burning. Leave all other drop-downs with the existing options and click OK. Let's test if the hero stops being on fire when in air! Click Back twice. As soon as you enter the game, your hero should be on fire. Jump and see if your hero is no longer on fire. Press Esc and click Open Workshop Editor to keep building your Script. Finally, we'll start to damage a hero while they're on the ground. Expand the "Start Burning If On Ground" Rule. Under Actions, click Add. This Action will make the hero take damage while on the ground. In the Action drop-down, select Damage Over Time. Under Duration, change the number slider to 9999. Under Damage Per Second, change the number slider to 30. Leave all other drop-downs with the default options and click OK. Expand to the "Stop Burning If Not On Ground" Rule. Under Actions, click Add . This Action will make the hero stop taking damage while not on the ground. In the Action drop-down, select Stop All Damage Over Time . Let's test if your hero takes damage while on the ground and doesn't take damage while in the air or jumping. Click Back twice. Exit the spawn room and see if your hero begins taking damage. Jump and see if your her stopped taking damage. You did it! The floor is now lava! Mirrored Deathmatch Here's a more extensive walk through of a game mode, Mirrored Deathmatch. In this game, there are multiple short rounds where everyone plays the same hero. At the end of each round, each player respawns where they were as the next hero in a randomized, predetermined list. When the final round ends, the player with the most kills wins.
      For example, in one match, everyone might start as McCree and then switch to Pharah in the second round. In a different match, they might start as Widowmaker and then switch to Ashe in the second round. Because of how this list is generated, it's unlikely that you'll ever play through the same list of heroes twice!
      So, let's make a Script for Mirrored Deathmatch!
      Click Play > Game Browser > Create > Settings > Workshop. First, we'll create the Rule that makes a list of heroes that can potentially be played. This list will be stored in Global Variable "L" as an Array. Arrays can be anything, like a list of players, a list of heroes, a list of numbers, a single value, or even no values at all (known as an “empty” array). Each value in the array is stored at a unique Index starting at 0 and counting up. An index and its value are sometimes referred to as an Element. The order of an array matters, so [Reaper, Winston, Mercy] is a different array than [Mercy, Winston, Reaper]. Arrays may contain a mixture of types. For example, it’s possible to have the following array: [123, Reaper, True, -4.5]. If an Input expects an Array, but a single Value is provided, the Input will receive that single Value packed into an Array of one Element. If an Input expects a single Value but is provided an Array, the Input will receive the first Value in the Array (or 0 if the Array is empty). Add a Rule and enter a comment so you know what this Rule will do. Set the Event type to Ongoing - Global. This means only a single instance of this Rule will be executed. Since the Rule doesn't have any Conditions, it will start executing as soon as the game starts. Add an Action with: Action: Set Global Variable Variable: L Value: Hero Hero: A hero you'd like to be playable. This creates the hero Array. The "Set Global Variable" Actions sets "L" to the initial hero in the list. Only having one playable hero in the game would be boring, so let's add more! Add as many Actions as you'd like with: Action: Modify Global Variable Variable: L Operation: Append Value: Hero Hero: A hero you'd like to be playable. This appends additional heroes to the Array we created before in "L". If the the first Action started with "Modify Global Variable" instead of "Set Global Variable", the Array would begin with 0. All variables are 0 by default, so if you don't set it to something else you'll end up with an array like [0, Pharah, Hanzo, Ana,...] . Let's add the last Action for this Rule. This Rule will take a randomized copy of Global Variable L (the Array of heroes), copy a part of the now randomized Array starting at the 0 position, and include the number of heroes the game mode should have. This copy is then stored back into Global Variable L, resulting in a randomly shuffled subset of the original list of heroes you provided. For Example: If the initial hero list were [Ashe, Doomfist, Hanzo, McCree, Pharah, Soldier: 76, Zenyatta, Widowmaker, Ana] , the randomized Array might be [Hanzo, Pharah, Widowmaker, Ana, Ashe, Doomfist, Soldier: 76, Zenyatta, McCree] , and the slice might be [Hanzo, Pharah, Widowmaker, Ana, Ashe, Doomfist] . The next Rule guarantees that, no matter what, every player is playing the same hero at all all times. Add a Rule and enter a comment so you know what this Rule will do. Set the Event type to Ongoing - Each Player. This means each player will execute their own Instance of the Rule. Add two Conditions, which must be true for the hero to be forced: The number of the round, Global Variable "R", must be less than the total number of heroes in the hero list. If it isn't, the game is finished, and no more heroes will be forced. The round number starts at 0 and counts up, so if there are 6 rounds, the final round number is 5. It's okay that Global Variable "R" is never set to 0 since all variables start with a default value of 0. Value: Global Variable Variable: R Operator: < Value: Count Of Array: Global Variable Variable: L This checks to see if the hero currently being played by a given player must be different than the desired hero for that round number. The "given player" is represented by Event Player, a special Value that refers to the player currently executing an Instance of the Rule. The "desired hero" for the current round is the hero stored at the corresponding index of the hero list (Global Variable "L"). Since the current round is stored in Global Variable "R," the desired hero can be obtained using "Value In Array". Value: Hero Of Player: Event Player Operator: != Value: Value in Array Array: Global Variable Variable: L Index: Global Variable Variable: R Once we know the player must change heroes, add two Actions that will execute: The first Action will force the Event Player to the desired hero. The first Input in this Action is the player whose hero should be forced. The second Input is the hero, so the desired hero is provided. Action: Start Forcing Player To Be Hero Player: Event Player Hero: Value In Array Array: Global Variable Variable: L Index: Global Variable Variable: R The second Action preloads the next hero in the list so the player doesn't experience a long delay before seeing their hero switch. Each player preloads the hero separately, even though everyone will play the same hero. This is because each player might need to preload a different skin for the hero. The use of the Add value to add 1 to Global Variable "R" instructs the Action to preload the next hero rather than the current hero. On the last round, this will yield an Array Index that's out-of-bounds for the Array Global Variable "L". This is okay since all out-of-bounds values for an Array are considered to be 0, so any Action that expects a hero and receives 0 just won't do anything. Action: Preload Hero Player: Event Player Hero: Value In Array Array: Global Variable Variable: L Index: Add Value: Global Variable Variable: R Value: Number Number: 1.00 The next Rule we'll make sets up each round if it hasn't been initialized yet. Add a Rule and enter a comment so you know what this Rule will do. Set the Event type to Ongoing - Global. This means only a single instance of this Rule will be executed. Add three Conditions, which must be true for the round to start: The game must be in progress. This means that the Assemble Heroes screen and Setup time have already occurred, but the game hasn't finished yet. Value: Is Game In Progress Operator: == Value: True The Global Variable I must be False. This variable is used to indicate if the current round is initialized. If the Global Variable I has never been set, it will have a value of 0, which is equivalent to False in comparisons like this. Value: Global Variable Variable: I Operator: == Value: False The round number, Global Variable "R", must be less than the total number of heroes in the hero list. Value: Global Variable Variable: R Operator: < Value: Count Of Array: Global Variable Variable: L Once we know the Conditions are all true, the round needs to be initialized. Add a few Actions that will do that: The first Action tells the core game mode that the match shouldn't end because of normal criteria. For a Deathmatch, it means the game won't end because time runs out or someone reaches the score limit. Once this Action executes, the match won't end until the script re-enables the built-in game more completion or a winner is explicitly declared. Action: Disable Built-in Game Mode Completion The next Action sets the game mode's current timer to the length of a round. Action: Set Match Time Time: Number Number: 60.00 This Action sets the Global Variable "I" to True so initialization won't happen again until Global Variable "I" is set back to False. Action: Set Global Variable Variable: I Value: True This Rule waits for the time to run out in the current round before advancing to the next one. Add a Rule and enter a comment so you know what this Rule will do. Set the Event type to Ongoing - Global. This means only a single instance of this Rule will be executed. Add two Conditions, which must be true for the game to advance to the next round: The game must be in progress. This means that the Assemble Heroes screen and Setup time have already occurred, but the game hasn't finished yet. Value: Is Game In Progress Operator: == Value: True The current match time must be 0, meaning time in the round has run out. Value: Match Time Operator: == Value: Number Number: 0.00 In response to these Conditions being true and the round being over, the match will advance the round number and mark the round as uninitialized. Add two Actions to do this: This Action lets the other Rules know that the match has transitioned to the next round. Action: Modify Global Variable Variable: R Operation: Add Value: Number Number: 1.00 This Action sets Global Variable "I" to False, letting the other Rules know that a new round needs to be initialized. Action: Set Global Variable Variable: I Value: False The final Rule ends the match when all rounds have been played. Add a Rule and enter a comment so you know what this Rule will do. Set the Event type to Ongoing - Global. This means only a single instance of this Rule will be executed. Add one Condition, which will check to see if Global Variable "R" equals the number of elements in Global Variable "L." If it does, it means that a round has been played for each hero on the hero list. When this happens, the match should end. Value: Global Variable Variable: R Operator: == Value: Count Of Array: Global Variable Variable: L Once the Condition is true, this Action will re-enable built-in game mode completion. Since the timer will be at 0, the game mode will immediately finish the match and the standard end-of-match flow will begin. Action: Enable Built-in Game Mode Completion Debugging Your Script
      Once you've created a Script, you can use the Workshop Inspector to view your Script executing in-game, see what Actions and Conditions are active, and view any issues with your Script.
      To access the Workshop Inspector:
      Begin a game with the Script you created. Press Esc. Press Open Script Debugger. Press Enable. This feature is not enabled by default. The Workshop Inspector is composed of a few things:
      Entry: The Entry lets you know what is happening Comment: This displays the comment associated with the Rule. Condition: Lists what Conditions need to pass in order for Actions to execute Action: Lists what Action executed Timeline Scrubber: The Timeline Scrubber allows you to move forwards or backwards in time through the game's progress. Sharing Your Script
      Once you've created an awesome Script, you can share it with the world (or just your friends) for the next six months. The scripts you create can be used on any platform, regardless of which platform you made it on.
      To share a Script:
      Click Play > Game Browser > Create > Settings > Share . Click Copy. Send the link to others! Opening a Script
      If someone has shared a Script that you'd like to use:
      Click Play > Game Browser > Create > Settings > Import . Enter the link. Click OK. Tips and Tricks
      It's easier to access the Workshop Inspector if you set a keybinding for it. To do this, click Esc > Options > Controls. Scroll down until you see Open Workshop Inspector and bind a key. Workshop Inspector will not only tell you what happened, but also what didn't happen (and why)! Don’t forget about the preset games! There may be certain settings already provided that you can use instead of coming up with a new solution by hand. If an Event isn't firing as expected, your Event Player may already be executing the list of Actions. Take a look at the Wait Action(s) in your Rule, especially if any are set up to ignore Conditions. To pick a specific location on the map, use the "Vector" Value and click the Camera icon. The "Has Spawned" Value is useful if you only want logic to run after a player has a hero in the game. If you only want your Rules to execute after the Setup and Assemble Heroes phases of the game, use the "Is Game In Progress" Value. Assigning a Value to a Variable and watching it in the Workshop Inspector is often the easiest way to understand what the Value is returning during gameplay. You can store the last created effect or icon into a Player Variable using the "Last Created Entity" Value. This lets you reference the entity later for destruction. Combining Filtered Arrays with Values such as "All Players On Objective" or "Players Within Radius" allows you to easily filter players who meet certain criteria (dead, alive, status effect, etc.). If you need branching behavior, you can use the "Skip If" Action to skip any number of Actions if a given Condition is true. If you do this, the skipped Actions may need to include an "Abort" Action to prevent both branches from executing. You can filter through the drop-down lists by typing. If your Value expects an Array as a parameter but doesn’t receive one, it will cast the Input into an Array of size one. The same goes for the reverse. If your Value expects a single piece of data but receives an Array, it will use the element in the 0 position of that Array. Splitting your work into multiple Actions or Conditions will help you more easily figure out what is going wrong. If you're unsure what an Action, Value, or Input does, you can mouse-over it on PC or choose "Show Details" on console to see an explanation. Always fill out the Comment section so you remember what your Rule is doing! Test often!
×
×
  • Create New...