[WIKI-THREAD] Workshop suggestions 2!

#1 - May 25, 2019, 5:22 a.m.
Blizzard Post

BEFORE READING THIS THREAD, READ COMMENT NUMBER ONE!

With the release of the workshop on live, that means that the old thread on ptr feedback is really no longer viable…Plus it kind of got buried in other threads as well there are a lot of old suggestions that were added by the devs, overall it got out-dated fast.

So I thought I’d remake it into the form of a wiki-thread, which makes it easier to read for everyone involved.

Down below, feel free to edit the thread and add your own suggestions:

If you want to organize the thread a bunch to make it easier to read go ahead as well.

EDIT: I will be scratching out stuff that was done instead of moving it to the “Things that were done” because I’m lazy


Index


Things that we want:

Quality of Life Improvements

  • Improved rule editing
    • Collapsible folders/collections/hierarchies.
    • Drag-and-drop.
  • Warn people exiting the game when there are unsaved changes.
  • “Copy, Paste, Add” Buttons that are always on screen instead of attached to the first line of “Actions, Conditions, Rules”
  • Ability to “Paste” Actions, Conditions, Rules to a specific position instead of always to the bottom
  • Remove the accented vowels from heroes’ names, or recognize unaccented versions of those characters when searching.
  • Statistics and graph display of the number of re-evaluations of Conditions for each Rule handler
    • Very useful for identifying Rule handlers and actions that can lead to server overload.
    • Currently, we have no choice but to visually check the huge action logs one by one and statistic. This is the most painful part of my code optimization work.
  • Privacy options for Presets
    (e.g: Set a code to be un-editable / only editable for you)
  • An in-game “Editor mode” where the creator can fly, clip through walls, and select, modify, and interact with invisible triggers or other objects on the map.
    “Could be the foundation for a map editor, if you’re going to make that.”

Effects

  • New/reworked effects
    • A rework of the “Create Effect” action
      • Remove “Sphere” and “Light Shaft” and add a new type: “Primitive”.
        Includes the following options: Shape (Sphere, Cylinder, Cone, Cube/Rectangular Prism, Plane); Size; Rotation; Scaling; Texture (Energy, Barrier, Metal, Color); Color
        • Collision detection for these shapes so that they can act as triggers.
          Similar to Star Craft’s map editor
    • All current sound effects should be moved to two new actions: “Create Sound Effect” and “Play Sound Effect”. Includes options for volume, pitch, radius, and ‘Audible to’
      • Default volume should be at an appreciable level. “Right now it’s tiny quiet.”
    • Improvements to “Create Beam Effect”.
      • Add option for width.
      • Add a few new beam types: “Smoke” (Widowmaker’s charged shots); “Sine” (a sine wave, always faces the observer, could have options for speed and frequency); “Pulse” (a series of planes perpendicular to the angle of emission with the texture of a glowing ring on them, imagine a retro ray-gun effect); “Tech” (Symmetra’s beam).
    • Add a “Create Particle Effect” action. This would be optimized for creating many small, temporary effects in a small space.
      • Could include options for Sprite, Size, Color, Emission Rate, Initial Velocity, Acceleration, Particle Lifetime, and, obviously, Position.
        • Some sprite examples could be orbs, sparks, stars, flames, muzzle flashes, etc.
  • Make effect limits per-player
    (i.e. if player A, due to an ongoing player function, is used to create 32 effects, player B can still be used to create his own 32 effects without being affected by or affecting player A’s effects.)
  • HUD Text Positions based on X% and Y%
  • Create Effect “Reveal” “1. Sombra “Oppertunist” (Passive) 2. Widowmaker “Infra-Sight” (Ultimate)”

Bots / AI / Non-player Entities

  • ‘Create Bot’ ability to spawn any Entity with (If possible) it’s normal programming. (Including: B.O.B.; Turrets; Null Sector units; Talon units; etc)
  • Add Entities like (B.O.B.; Turrets; Null Sector units; Talon units; etc) to ‘Create Dummy Bot’ to spawn the corresponding Entity without it’s normal programming.
  • Targeting for non-player entities for conditions and effects.
  • Simple, programmable AI commands.
    “(e.g. When a condition is met, all specified entities within an area are instructed to move to another specified area using their own pathing and either ignore or attack enemies they encounter.)”
  • Change the hero operated by the built-in AI by script.
  • Designated “AI Slots” for Built in AI to allow the creation of Bots that aren’t taking up player slots

Character Customization

  • Ability Modification Including

    • Changing the Ability Icon
    • Enable / Disable Passive Abilities “Including ‘hidden’ Passives”
    • Ability cast time
    • Ability Damage / Healing / Knockback dealt
    • Ability Duration
    • Ability spread
    • Ability charges
    • Shared ability charges
    • Ability resource
    • Ability recharge rate
    • Ability Size
      “Making a ability use Charges or Resource instead of being limited on what the Ability is based on”
  • Weapon Modification Including

    • Reload speed
    • Reload capacity
      “Turning Mccree’s reload into one like Ashe’s”
    • Ammunition consumption
    • Weapon spread
    • Fire Rate
    • Weapon Damage / Healing / Knockback dealt
  • Enable / Disable a players Head / Body hitbox

  • Individual Player Model / Player hitbox scaling

  • Playing the Characters Animations.
    “With or without their default function.”

Workshop in general

  • Increased performance and removal of workshop limits.
  • Save / Load Presets to / from local machine
  • Local variables inside rules.
  • Variables that transfer between games.
  • Support for all keyboard Buttons as Input
  • Allowing players to choose specific Effects of Workshop Extensions
  • Move player to spectator
  • Enable / Disable Kicking inactive players
    • Automatically move players occupying slots in AFK to spectator.
  • Setting a lobby to play on a specific patch

Conditions / Values / Actions

  • Position of a Players gun
  • Events
    • Player Dealt / Took Damage Event Values
      • Event was Blocked
      • Event hit Health
      • Event hit Shield Health
      • Event hit Armor Health
      • Ultcharge generated
    • Player Earned Elimination
      • Event was assist
      • Event was offensive assist
      • Event was defensive assist
    • Player Died / Dealt Final Blow
      • Assister
        "The player or players who received an offensive/defensive assist in the event currently being evaluated by the rule
    • Ongoing All Spectators
    • Chat message
      “Ability to interpret Messages send by players as Custom Strings”
  • Directional inputs (Constants like Up, Down, Left and Right)
  • Improved / expanded raycasting
    • “Pillcast” (raycast with radius)
    • Detection for rays hitting critical areas
    • Detection for rays hitting non-player entities and objects, such as barriers, railings, etc.
    • Advanced ray casts
      “Can optionally search for players, entities, facing, positions, normals, map boundaries, etc in one sweep and outputs an array accordingly”
    • The option to create a raycast in the direction of any bullets or projectiles from an attack
      “Meaning if Soldier were to shoot, you could track where the spread out bullets would land”
    • The option to make a Raycast return the Position of impact
  • Filter options on “Player Closest to Reticle”
    (e.g. include only living players)
  • Current array element of array
  • Shields
    • Ability to create shields
    • Ability to modify Health and Recharge rate of a Shield
    • Ability to modify Size, Shape and Width of a Shield
    • Ability to modify the Position and Facing of a Shield
  • Ability to credit the ‘Resurrect’ action to a player
  • Temporarily Modify Player / Global Variable
    “Modification of a Variable for a set amount of time”
  • Clear all status effects (Buffs / Debuffs / All) from Target player(s)
  • Preset gameplay modifications
    Like: “CC immunity” (Orisa: Fortify) “No Gravity” (Sigma: Ultimate) “Poisoned” (Widowmaker: Venom Mine) “Nano Boost” (Ana Ultimate)

Map / Game / Teams

  • Map object Manipulation Including
    • Enable / Disable destructible object destruction
    • Enable / Disable Global interaction
      (Interaction between Players and Health packs / Elevators, …)
    • Adjusting the Speed of objects
      (Moving Platforms, Elevators, …)
  • Declare Overtime / Sudden Death (Resettable)
  • Set payload progress percentage
  • Set Objective objective capture percentage
  • Ways to manipulate the “fire” system
    (The points earned from eliminations / completing objectives)
    • Disable / Enable Fire Scoring
      (Gain of Fire score disabled outside of Workshop Actions)
    • Disable / Enable Fire Decay
      (Allowing Fire score to no longer be lost over time)
    • Set / Modify Player Fire Score
      (Fire score manipulation for one or multiply players)
  • Ability to choose the next map
  • Enable / Disable overtime
  • Expand “Spawn Health Packs” option to spawn small health packs or big health packs only.
  • Ability to dynamically create 1 - 12 Individual Teams (Skirmish only) with Adjustable Team size.
    • With the Ability to set any pair of Teams into a “relative phase”
      This would help lobbies that want independent fights to occur, without interfering with each other.

Misc / Uncategorized

  • Add Function to get someones full Battletag as String
    "This would allow creators for example to make their own leaderboard website for a gamemode, since you could get the data from the log file"
  • Matrix or 2D arrays
    (see Workshop already have PARTIAL multidimentional arrays support!)
  • The ability to get the ID of created entities and text without having to call the “Last [thing]” action
    (Since this can cause race conditions if you have multiple rules [or multiple instances of 1 rule] simultaneously creating stuff), or more generally,
    more actions with returns (e.g. ray cast returns the point of collision of the ray)
  • Add filter / vision effects (black and white, brighter/ dimmer, etc.)
  • Bypass Damage: …
    • …Detection (damage cannot be detected)
    • …Shields (damages purely health and armor)
    • …Armor (only health/shields)
    • …Artificial (only health)
    • …Pure (only shields/armor)
    • Bypass Heal: All of the above
    • Bypass Critical Damage: Above
  • ID’s for accelerations to make using them easier.
  • A way to sync data between games, export data through an API or something
    "This would allow for progression saving and/or working with external games"
  • is alive(*empty slot / not existing player*); Array Contains(Empty Array, Event Player)
    Get resolved as FALSE (currently equal TRUE)
  • Set damage type
    (Set what reaction a hero has to damage (none, burning, freezing, stunned)
    “This would be so that we can control what pain noise a hero makes”
  • Simple game BGM control
    (such as specifying the start crescendo timing or loop)

Things that we asked for that were done

  • Let us save our custom strings into variables and arrays like vectors, numbers, etc
  • Dummy bots
    • Option to save bots as part of the preset.
  • Let us write in our own strings and not have the most limited list ever, Sure it’ll need a filter, but it would be sooo helpful
    I’m so sick of players asking what the heck my quest station just said or what “buy transfer” means.
  • Let us name our own variables
  • The ability to create new variables instead of having 26 for global and player.
  • Better saving system for presets so that they stop getting deleted
  • Better UI system for console workshop
  • Player recived / Player dealt Healing events
  • Button support for reload / quick melee
  • Modify ability cooldown / charge / ressource
  • A way to cleanly and forcefully end whatever action a hero is performing, be it casting an ability, using an ultimate, or firing and reloading.
  • Custom Workshop only maps
  • “None” reevaluation option for HUD/In-World texts.
    “No need for custom strings with no variables in them”
  • Button support for weapon switch
  • A way to update our codes to avoid outdated gamemodes.
    (i.e. declare our code as “outdated” and make it redirect to a new code)
  • Visual effects (Hacked / Fortified / Nano Boosted / Shielded / Immortal / etc, without gameplay modifications)
  • Renaming the (dummy) bots using custom strings.
  • Proper String operations.
    There are operations for other variable types, but it seems nothing for strings. Any analogues to “sub”, “count”, “length”, or similar would be nice. (Currently in PTR waiting for release)
  • A way to return Array size. “This can be done with count of? I think?”
  • Detection for ammunition (player has x amount of ammo) and modification.
  • Change Start/Stop Holding Button and Press Button to use the button value and compatible with variables
    (e.g. setting a variable to Button(Primary Fire) and then using Press Button(Event Player.A)
  • Team manipulation (i.e. change teams of players)
  • Bot Player Slots
    "To allow Dummy bots to be added to the game without counting towards the total player limit."
  • Add Enable / Disable silhouette effects. “The color tint could also be changed.”
  • Generic FFA/Team game modes. Namely, modes that display points for each player/team - but points can only be gained or lost through workshop rules. It would allow custom games to define their own rules for winning without cheating the death-match score board or using the skirmish game mode. It’d also allow the mode maker to use any map they need, like using the full map of Gibraltar while still organizing players into a free for all.
  • get/set/fire ‘input’ and ‘output’ as well as ‘button’ and ‘throttle’
    “Allow for controls to be tracked without being tied to a character, and character actions to be fired without being tied to the controls”
  • Health of type (Health / Shield / Armor)

As you can see, the list is much smaller, i condensed fused and removed some things that were already done / could already be done / didn’t make sense / Didn’t understand / etc

Just in case, all the stuff i removed will be in the spoiler down below, if you believe i was wrong in any capacity, please feel free to edit them in once again, But try to make it more clearer in case its hard to understand

Removed stuff
  • A set of variables belonging specifically to each team, allowing the creation of rules where each team has a separate instance of said variable in the same way that Player Variables do.
  • Position of Muzzle - only for visual effects as it may be different in first person to third.
  • Draw ray. Creates a thin, 2D, rectangular sprite, with one axis facing the player to give the appearance of thickness, along the path of a specified ray cast. Could have variable thickness and color. :star:
  • Alter the opacity of effects, or at least have opaque color options.
  • A way to pick a map for the next match in-game.
  • A modifier to change the damage that something does under certain conditions without setting the damage dealth/damage received by the attacker/victim. Examples: a character takes reduced damage from a certain angle; characters deal more damage when shooting through a special area, like Bap’s ult; an aerial character does extra damage when they hit an enemy from above.
  • A catch-all condition for debilitating status effects like Frozen and Stunned. “Is able to act” or something.
  • An event called during hit detection regardless of damage done, for use cases such as Cry Freeze and Genji’s Deflect.
  • A “Begin Heal Modification” action which allows the healing received from other players to be modified.
  • Functions / macros / custom actions (with parameters), made of multiple actions. Extreme bonus points if we can have functions with return values as well as parameters.
  • Ability to modify parameters of events
    (e.g. change the amount of damage dealt by an event)
  • A proper way to iterate through arrays and execute however many actions on each element of the array.
  • Add options to remove or add map objects or structures
  • Linkable Conditions (Ex. Linking Two Or More Conditions Into An Or Condition Without Using An Or Condition)
  • Critical Damage
  • Restart game action in workshop, so you can quickly restart the game
  • Access to the training mode and its map within the lobby rules.
  • The creation of training mode bots and the option to define their set behaviour.
  • A built in while loop instead of having to use a Do while loop.
  • Playsound command that allows the workshop to call on any in game voice line / SFX and play it.
  • Clicking on a number field should either highlight the entire field or nothing, instead of everything to the left of the cursor (this is rarely helpful).
  • Handle the decimal limit by rounding instead of ignoring inputs. Right now number fields only allow up to three decimal places, but they are filled with zeroes by default, so you must delete those zeroes first or you won’t be able to type anything after the decimal point.
  • Show last save time when hovering a preset.
  • More conventional save/load system for presets.
  • Organize heroes alphabetically.
  • Additional workspace (Chamber, Island)
  • Manipulate the scale (Size) of characters
  • Detect ammunition
    • All 12 players set to the same team would be good for “chill” lobbies where players don’t want to kill each other, but do want to hear each others’ comms
  • Values for temporary health (armor, shields, health)
  • Addition: Add Sort Value To (Armor/Shields)/Temporary
  • Addition: Use direct values for Max H/S/A
  • Allow players to be set to any team number 1-12. This could simulate 6v6 or FFA, but could also enable anything between.
  • Set Cooldown Ui (edit the cooldown Ui tied to any button - can set custom icons and add reevaluating numbers over the top of them - creates new icons if not existing - null removes the icon, default resets - none of this effects actual cooldowns)
  • Proper local variables (i.e. variables in the scope of a single rule, since player variables are actually global variables belonging to a player)
  • Enable / Disable passive abilities. (I feel like its in the game but i haven’t seen it)
  • A function that detects when abilities have successfully targeted someone (Roadhog hooked someone or Reinhardt successfully pinned someone)
  • Modify/disable passive abilities. Includes passives that are described in the Hero Info, such Lucio’s wallride, and passives that are not, such as Lucio’s aura.
  • Modify ability cooldown and duration, as well as other properties such as barrier HP, resource meters and ammo / uses / charges / fire rate / spread.
  • Allow for “dry firing” of any ability (still uses animation without dealing damage, firing bullets, knockback, projectiles or any other effects).
  • Ability to cancel event healing, event damage, and cancel player death (for example in infection game mode, same hero cannot damage them).
  • The alteration/possible removal/prevention of status effects caused by player abilities.
  • Add ability to “Spawn AI” or other entities, including non-hero characters (Nulltroopers, Talon Snipers, etc., maybe as well as some new generic ones such as generic troopers or omnic civilians) and other things like barriers, turrets and BOB. Entities could be spawned at specific locations/times, have team affiliation (Team 1, Team 2, friendly/hostile to all).
  • Dynamic addition and removal of built-in AI by script.
    • No need to manually add and remove from the lobby menu.
    • Can dynamically fix team uneven.
    • When waiting time to for players to gather, can implement automatically swap player from BOT when player join.
Forum Avatar
Overwatch Developer
#268 - July 15, 2020, 10:58 p.m.
Blizzard Post

Hope you all have fun :slight_smile: