Feature: Allow scripts to contain bots in pre-saved slots

A feature that i think is extremely necessary is the possibility of pre-saving the bots in the workshop script, so when someone creates a starting lobby the bot will automatically be in the slot, you know…

For example, i’m working on a simple way to escape or fight the boss. I need to enforce in the description of the mode that the host needs to place a bot, and sometimes people may not read what is written…

My idea is to modify the workshop syntax just a little to support standard bots:

lobby
{
	...
}
bots
{
	<Team 1|Team 2|Deathmatch>:
		<Slot>: <Difficulty>; <(Hero|Role) Name>
}

Notes

  • As you can see, my suggestion is that i present a simpler syntax (even to make the parsing of this block of code faster), using all the concepts of the workshop’s own syntax.

  • The reason the hero’s name is at the end is due to the fact that some contain spaces and as the workshop syntax also sends it with spaces, so the most efficient way to read this information is to leave it there at the end.

  • There will be no “Recommended hero/role” option, the gamemode creator must explicitly define which role or which hero will occupy that slot.

  • Team 1 and Team 2 slot must be validated:

    • The slot index must be less than or equal to the number of slots minus 1. In other words, if team 1 (for example) has only 1 slot and the script creator tries to define it in slot 3, it will throw an error.
    • The slot index must be unique.
  • Deathmatch:

    • The “Deathmatch” option only applies in deathmatch modes, with the same rule being the same, the slot index must be less than or equal to the number of FFA slots minus 1.
    • Allows the option for bots in Deathmatch to be available ONLY if deathmatch mode is enabled in the game mode rotation.

“Real World” Example

settings
{
	main
	{
		Description: "Stay alive for as long as you can or face the monstrous beast with your own hands."
		Mode Name: "Survive or Fight"
	}
	lobby
	{
		Map Rotation: After A Game
		Max Team 1 Players: 1
		Max Team 2 Players: 9
		
		// example with FFA bots syntax
		Max FFA Players: 8
		Return To Lobby: Never
	}
	bots
	{
		Team 1:
			0: Lethal; Tank
			
		Team 2:
			6: Casual; Junkrat
		
		// example with FFA bots syntax
		Deathmatch:
			0: Beginner; Torbjörn
			1: Practice; Lúcio
			2: Casual; Soldier: 76
			3: Hard; Moira
			4: Lethal; Tank
			5: Extreme; Support
			6: Ultimate; Damage
			7: Aimbot; Widowmaker
	}
	modes
	{
		Team Deathmatch
		{
			enabled maps
			{
				Kanezaka
			}
			Game Length In Minutes: 15
			Imbalanced Team Score To Win: On
			Mercy Resurrect Counteracts Kills: Off
			Team 1 Score To Win: 1
			Team 2 Score To Win: 50
		}
	}
	heroes
	{
		Team 1
		{
			Damage Received: 75%
			enabled heroes
			{
				Bastion
				Orisa
				Ramattra
				Zenyatta
			}
		}
		Team 2
		{
			disabled heroes
			{
				Bastion
				Orisa
				Ramattra
				Zenyatta
			}
		}
		General
		{
			Ability Cooldown Time: 50%
			Ammunition Clip Size Scalar: 150%
			Health: 150%
			Jump Vertical Speed: 115%
			Movement Speed: 125%
			Projectile Gravity: 75%
			Projectile Speed: 150%
			Spawn With Ultimate Ready: On
			Ultimate Generation: 150%
			Ultimate Generation - Combat: 200%
			Ultimate Generation - Passive: 50%
		}
	}
}

I invite everyone to discuss this change, opinions and important points. I hope you consider this feature.