[Gamemode] RPG Deathmatch

RPG DEATHMATCH by Tailord
B4ZEH
Recommended players: 10. Average match time: 35 minutes.
This gamemode is a rework of popular RPG game with a bunch of new features and multiple maps support. The goal is to be the first to score 100 kills while collecting gold, upgrading your character, capturing and holding goldmines. The gamemode also features some improvements, like rebalanced shop prices, scaled healing, randomized hero pools (optional), bug fixes, easily customizable settings.

Supported maps:

  • Blizzard World
  • Eichenwalde
  • Ilios Lighthouse
  • Nepal Village
  • Lijiang garden
  • Kanezaka

Gameplay
The default game goal is to score 100 kills, but the goal can be changed to be a certain net worth (see Customization section below). The maximum match time is 50 minutes.
You start the game with default player stats (and a bit reduced speed) and disabled abilities. You can choose any hero from randomized hero pool (if used), but this hero will be locked till the end of the match. Switching hero will cost some gold, and the price increases as you upgrade.
You can view your current stats by pressing Interact. They will stay visible until the number of other players want to view their stats.

Stats list:

  • Gold - Amount of gold player currently has;
  • Health - Current max health as percentage relative to default max health of the player;
  • Damage - Current damage as percentage relative to default damage of the player;
  • Projectile speed - Current projectile speed as percentage relative to default projectile speed of the player;
  • Running speed - Current movement speed as percentage relative to default movement speed of the player;
  • Regeneration - Regeneration of the player;
  • Lifesteal - Percentage of the player’s damage converted to health;
  • Passive gold - The passive gold player recieves per second;
  • Gold per kill - The amount of gold player recieves upon dealing final blow. Assists are awarded half of this value;
  • Gold stealing - The amount of gold player receives upon dealing 200 points of base damage, i.e. the amount of damage he would deal if he had default damage. In other words, you will steal the same amount of gold per shot regardless of your damage level. Gold of the victim is reduced by that amount. You can’t steal more gold than the victim currently has;
  • Gold per treasure - The amount of gold player recieves from each treasure. If player owns a goldmine, he recieves the passive income of this value divided by 30 per second.

Net worth
Net worth is the amount of gold player currently has plus total amount of gold player spent on upgrades. In other words, it’s the total amount of gold player earned throughout the game minus the gold stolen from him and the gold spent on switching the hero. Net worth for every player is displayed in “Net worth ranking” HUD and is visible for everyone. The ranking can be disabled in settings (see Customization section below).

Shop and upgrades
You can enter the shop by holding Interact key (F by default) while standing still. The time it takes to teleport depends on the health you have.

  • If you are at full health, it’s 3 seconds;
  • If you are more than half health, it’s 5 seconds;
  • If you are less than half helath, it’s 7 seconds.

If you are attacked, attack someone or move during chanelling, teleportation will abort. If you are dead, you can press Interact to be teleported to shop immediately upon respawn (if the shop is not on cooldown).
In the shop you can upgrade your stats by pressing Interact while standing in corresponding shop circles. If you want to buy many levels at once, you can bulk-buy by crouching and holding Interact.
To leave the shop, pass through one of the exit gates.

Shop timer and cooldown
To prevent players from stucking in the shop for too long, the amount of time player can stay in shop is limited. If you stay there for more than a minute, you will be kicked from the shop.
After you leave the shop or get kicked, you will be set on Shop cooldown displayed in your HUD. You can’t teleport to shop when it’s active. Cooldown time equals the time you spent in shop, but the minimum is 15 seconds.

Treasures
After match starts, yellow orbs representing treasures will start spawning every 40 seconds. There is a total of 7 treasures on the map. You can collect them by walking through them*. Treasures respawn every time a match time passes 40 seconds unless they weren’t collected. The amount of gold you receive from them depends on your Gold per treasure stat.

Goldmines
There are two goldmines on the map, represented by white sparkles above big green circles. When a player enters goldmine, he begins capturing it*. After 5 seconds pass, the player captures the goldmine. If an enemy player enters the goldmine you are capturing, capturing process will stop until either player leaves goldmine or dies. The capture progress will start to slowly decay. Text above the goldmine displays the owner of this generator, and particles are green to the owner. Player can own only 1 goldmine at a time. If you own a goldmine, you receive extra passive gold, shown in green HUD, which equals to your Gold per treasure stat divided by 30 and rounded down. If your goldmine is being captured, you will be notified. After you lost the goldmine, HUD with gold from goldmine disappears.

Gold generator
In the middle of the map there is a gold generator represented by yellow sparkles. It gives passive gold for players inside it*. The amount of gold per second doesn’t depend on any player stat, and it increases exponentially as the game goes; it’s capped at 200 gold per second. If there are several players inside generator, the bonus is equally split among them.

*If player is using certain abilities on certain heroes, he can’t collect treasures and gold from generator and capture the goldmines. See Hero notes below.

Compensation for late players
If the player joines a match mid-game, he will be awarded gold and passive gold levels he would have earned if he spent all his passively earned gold on passive gold upgrade as soon as it became available. This will still leave this player far behind his opponents, because they also have other sources of income.

Healing scaling
The more max health player currently has, the more healing from healthpacks and hero abilities he receives, proportionally. Shields and barrier regeneration is not affected due to workshop limitations.

Ultimate generation
Due to Workshop’s limitations, I couldn’t scale Ultimate generation from damage properly. Ultimate generation from damage is disabled in this mode, while passive generation is set to 300%.

Hero notes

  • If player is using Sombra’s Invisibility, Reaper’s Wraith Form, Moira’s Fade or Mei’s Cryo-Freeze he can’t pick up treasures, collect gold from generator or capture goldmines.
  • Genji’s Deflect is not broken in this mode. He deflects the same damage he recieves.
  • Lifesteal upgrade doesn’t work on Reaper, because he already has a lifesteal of 30%. In my opinion, this would be too overpowered.
  • D.va’s shop leaving is delayed due to Workshop glitch associated with her.
  • Mercy’s ultimate generation speed is decreased due to ultimate generation glitch associated with her.
Customization

The first rule with the name “Settings and initialization” has many variables that store game settings. You can change these variables to change the rules of the game. Variables descriptions and their default values (in brackets) are listed below. All time values are in seconds

  • MatchTime (3000): The maximum match duration in seconds.
  • Goal (100): If this value is less than or equal to 1000, then it sets the kills goal. If you set it to more than 1000, the game goal will be to reach this value in net worth instead (Recommended value: 300000). Workshop doesn’t let you set variables to more than 10000 inside Workshop itself, but it can be bypassed by copying the assignment action, pasting it to text editor like Notepad, changing the value there, copying new action and replacing the old action with the modified one.
  • GeneratorMultiplier (2): The multiplier applied to the gold earned from gold generator. For example, changing this value to 4 will double the gold from gold generator, as well as the maximum gold from it.
  • TreasureDelay (40): The time between treasure respawning.
  • ShopDelay: The time it takes to teleport to shop if the player is:
  • [0] (3): at full health;
  • [1] (5): more than half health;
  • [2] (7): less than half health.
  • ShopTimer (60): The maximum time player can be in shop.
  • ShopCooldownMin (15): The minimum shop cooldown time.
  • CaptureDelay (5): The time it takes to capture the goldmine.
  • CaptureResetDelay (1): The time it takes for capture progress to start decaying.
  • HeroChangePenalty (10): The percentage of net worth it costs to switch the hero.
    The next five variables are arrays that store shop information related to every shop item (stat). The correspondence between array index and shop item is as follows (unless otherwise specified):
    [0]: Health
    [1]: Damage
    [2]: Projectile speed
    [3]: Running speed
    [4]: Regeneration
    [5]: Lifesteal
    [6]: Passive gold
    [7]: Gold per kill
    [8]: Gold stealing
    [9]: Gold per treasure
    [10]: Ability 1
    [11]: Ability 2
    [12]: Ultimate
    [13]: Hero change
  • ShopItem(all true): Whether the shop item and player stat is enabled (True) or not (False). If the item is disabled, the corresponding shop circle and text will not be created and it will not be possible to upgrade this stat. The stat will also not be displayed when viewing stats.
  • StatUpgrade(5, 5, 5, 5, 2, 1, 1, 10, 10, 10): The value added to each player stat per upgrade.
  • StatMax(10000, 10000, 200, 140, 1500, 15, 100, 1500, 1000, 5000): The maximum value of each stat.
  • StatPrice(30, 50, 50, 300, 50, 100, 500, 200, 400, 150, 2000, 2000, 2000, 500): The starting price (or constant price per upgrade) of each stat. Abilites share the same price value, stored at index [10]. Values at indices [11] and [12] are unused. Value at index [13] is the minimum price of switching the hero.
  • StatPriceIncrement(0, 0, 50, 300, 0, 100, 0, 0, 0, 0, 1000): The value added to the price of each player stat per upgrade. Abilites share the same price, and thus the same price increment, at index [10].
  • NetWorthEnabled(True): If ‘False’, the net worth ranking will not be visible.
  • HeroPool(32): The array of heroes randomly selected from all heroes to be playable in the match. Change the number next to ‘Count’ parameter to the desired number of playable heroes.

If you want to change the starting player stats, you can do this inside “Setup new player” (“Waiting for players” phase) and “Start game [Each Player]” (match phase) rules.

  • Money(Global.StartingMoney): Sets the starting gold for each player.
  • Stat(100, 100, 100, 90, 0, 0, Global.StartingPassiveMoney, 100, 0, 200, False, False, False): Sets the starting stats for each player. Values at indices [10], [11], [12] control whether a player starts with ability enabled (True) or not (False).

You can change variables related to starting gold and passive gold inside a “Start game [Global]” rule.

  • StartingMoney(0): Sets the starting gold for each player.
  • StartingPassiveMoney(5): Sets the starting passive gold level.

Gold mine divider can be modified inside an “Upgrade Gold per treasure” rule.

4 Likes

I didnt play it but 30 minutes sounds like too much imo

I’ve released an updated version. Game description and share code in the top post are updated.

NEW FEATURES:

  • 3 new maps are now supported.
    Added support for the Blizzard World, Eichenwalde and Nepal Village. Planning to add more maps in the future.
  • Money generator (Old generators are renamed into Goldmines)
    The area in the middle of each map that gives players inside it bonus gold over time. This bonus is equally divided among players inside it, and it increases over time as the game goes. There is no upgrade that affects the income from money generator.
  • New skill: Gold stealing
    This skill is upgradable in shop and is at level 0 from the start. It lets you steal gold from other players by dealing damage to them. The stealing is only applied on your base damage, which means that you will steal the same amount of money per shot regardless of your damage level. You can’t steal more money than the player currently has. This skill is intended to give low-level players a way to catch up. It isn’t very useful if you are one-shotting your enemies.
  • Compensation for players that join mid-game
  • Net worth ranking and net worth win condition
    There is now a hud in a top-right part of the screen showing the list of players and their net worth. If you set the ‘Goal’ variable to a value more than 1000, then the first player to reach this value in net worth wins.
  • "Change the hero" item in a shop
    Selected hero is now locked for the duration of the game.
    You can switch your hero in a shop, but this will cost you a percentage of your net worth.
  • Hero pool
    N random heroes are selected to be available every game, the rest are banned. This value equals to 32 by default (all heroes), which means this feature is optional and is disabled by default.
  • Now the time it takes to teleport to shop is increased if player is not full health
  • You can now teleport to shop immediately when dead

GAMEPLAY CHANGES AND BALANCING:

  • Treasure respawning mechanics have been changed
    First, treasure respawning time has been decreased from 60 to 40. Second, they don’t have individual respawn timers anymore. They now respawn every time match time passes 40 seconds, unless they weren’t collected. This should make it easier to track treasure respawning.
  • Goldmine capture progress doesn’t reset immediately now
  • Income-related prices have been adjusted
  • Lifesteal, Projectile speed, Running speed and Abilities’ prices now scale with the number of upgrades purchased
    These prices are displayed individually for each player.
  • Shop texts are no longer visible to players not in shop
  • Shop timer is now always visible
  • The number of players that can be in the shop at the same time is now limited
  • The number of players that can view their stats at the same time is now limited
    Two changes above were made simply because of Workshop text count restrictions.
  • Bug fix: you can’t illegally leave shop anymore using certain heroes