<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://sigwiki.potato.tf/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Braindawg</id>
	<title>SigMod - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://sigwiki.potato.tf/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Braindawg"/>
	<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php/Special:Contributions/Braindawg"/>
	<updated>2026-06-05T13:25:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7574</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7574"/>
		<updated>2025-07-02T20:43:39Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Misc Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.                                                                &lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Installing_on_Windows_with_WSL&amp;diff=7571</id>
		<title>Installing on Windows with WSL</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Installing_on_Windows_with_WSL&amp;diff=7571"/>
		<updated>2025-04-18T20:54:27Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Manual installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Easy installation script ==&lt;br /&gt;
Right click this link and select save link as:&lt;br /&gt;
&lt;br /&gt;
https://raw.githubusercontent.com/rafradek/sigsegv-mvm/master/windows_install_wsl.bat&lt;br /&gt;
&lt;br /&gt;
Run the downloaded bat file and follow the instructions printed in console&lt;br /&gt;
&lt;br /&gt;
== Manual installation ==&lt;br /&gt;
Run the bat file and follow instructions printed in console&lt;br /&gt;
&lt;br /&gt;
Based on guides: https://docs.microsoft.com/en-us/windows/wsl/install-win10 https://wiki.teamfortress.com/wiki/Linux_dedicated_server&lt;br /&gt;
&lt;br /&gt;
Open PowerShell as administrator, then execute those commands&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart&lt;br /&gt;
&lt;br /&gt;
Now restart your PC. After that, execute another PowerShell command&lt;br /&gt;
 wsl --set-default-version  2&lt;br /&gt;
 echo [wsl2] memory=2GB &amp;gt; $env:USERPROFILE/.wslconfig&lt;br /&gt;
Open Microsoft Store and install Ubuntu. Launch Ubuntu from start menu. Fill in username and password info when asked. Install required packages by entering those commands into the window:&lt;br /&gt;
 sudo dpkg --add-architecture i386&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install lib32z1 libncurses5:i386 libbz2-1.0:i386 lib32gcc-s1 lib32stdc++6 libtinfo5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386&lt;br /&gt;
 sudo ufw disable&lt;br /&gt;
Those Ubuntu commands will install and update server in ~/hlserver/hlserver:&lt;br /&gt;
 mkdir ~/hlserver&lt;br /&gt;
 cd ./hlserver&lt;br /&gt;
 wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz&lt;br /&gt;
 tar zxf steamcmd_linux.tar.gz&lt;br /&gt;
 ./steamcmd.sh +login anonymous +force_install_dir ./hlserver +app_update 232250 +quit&lt;br /&gt;
You can browse server files in windows explorer with this Ubuntu command:&lt;br /&gt;
 explorer.exe ~/hlserver/hlserver&lt;br /&gt;
If you have an existing windows server installation you can copy server files here.&lt;br /&gt;
&lt;br /&gt;
Install a linux version of sourcemod and mm: source in this location&lt;br /&gt;
&lt;br /&gt;
Unpack all sigsegv archive contents into tf directory&lt;br /&gt;
&lt;br /&gt;
Create a server starting file with Ubuntu commands:&lt;br /&gt;
 echo &amp;quot;#!/bin/sh&amp;quot; &amp;gt; ~/startserver.sh&lt;br /&gt;
 echo &amp;quot;~/hlserver/hlserver/srcds_run +map bigrock +maxplayers 32 -enablefakeip&amp;quot; &amp;gt;&amp;gt; ~/startserver.sh&lt;br /&gt;
 chmod u+x ~/startserver.sh&lt;br /&gt;
Run server with Ubuntu command:&lt;br /&gt;
 ~/startserver.sh&lt;br /&gt;
Or, to run a server from windows CMD / PowerShell:&lt;br /&gt;
 wsl ~/startserver.sh&lt;br /&gt;
You should check your linux server IP with a command executed in PowerShell. You can use this IP to connect to your server from this Windows PC. IP will change with every system reset:&lt;br /&gt;
 wsl hostname -I&lt;br /&gt;
The section below tells how to connect to the server using your LAN or public IP if available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can make the server autostart by adding a scheduled task in Task Scheduler, on login condition, running wsl as a program with ~/startserver.sh as an argument.&lt;br /&gt;
&lt;br /&gt;
=Make the server accessible from the Internet without -enablefakeip=&lt;br /&gt;
Download a program named [http://aluigi.altervista.org/mytoolz/sudppipe.zip sudppipe] (The browser may mark this file as unsafe so you might have to right click and select Save link As)&lt;br /&gt;
&lt;br /&gt;
Unpack the downloaded archive, then create tf2portpipe.bat file in the unpacked directory alongside sudppipe.exe. Replace port value with your own server port. The port should not be in use by any other program (TF2 client often binds to port 27015).&lt;br /&gt;
 @ECHO off&lt;br /&gt;
 &lt;br /&gt;
 SET port=27015&lt;br /&gt;
 &lt;br /&gt;
 FOR /F &amp;quot;tokens=* USEBACKQ&amp;quot; %%F IN (`wsl hostname -I`) DO (&lt;br /&gt;
 SET ip=%%F&lt;br /&gt;
 )&lt;br /&gt;
 %~dp0/sudppipe.exe -q -b 0.0.0.0 %ip% %port% %port%&lt;br /&gt;
Run the bat file. If you wish to get rid of the console window, add a run on system startup scheduled task, with run whether user is logged on or not option, launching this script file as a program.&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=CTFFlameManager&amp;diff=7570</id>
		<title>CTFFlameManager</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=CTFFlameManager&amp;diff=7570"/>
		<updated>2025-03-28T16:44:27Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source location : [https://github.com/ValveSoftware/source-sdk-2013/blob/master/src/game/shared/tf/tf_flame.cpp /game/server/tf/tf_flame.cpp]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linked entity : [https://developer.valvesoftware.com/wiki/tf_flame_manager tf_flame_manager]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==[[Classes|Class Structure]]==&lt;br /&gt;
*&#039;&#039;&#039;[[CBaseEntity]]&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;[[CTFPointManager]]&#039;&#039;&#039;&lt;br /&gt;
***&#039;&#039;&#039;CTFFlameManager&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== SendProps ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;margin: 0 auto; width: 100%; padding: 0;&amp;quot;&lt;br /&gt;
|+CTFFlameManager &lt;br /&gt;
! style=&amp;quot;width: 50%; background-color: #303030; color: white&amp;quot; |Name &lt;br /&gt;
! style=&amp;quot;width: 15%; background-color: #303030; color: white&amp;quot; |Type&lt;br /&gt;
! style=&amp;quot;width: 35%; background-color: #303030; color: white&amp;quot; |Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_hWeapon&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Integer&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_hAttacker&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Integer&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flSpreadDegree&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flRedirectedFlameSizeMult&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flFlameStartSizeMult&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flFlameEndSizeMult&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flFlameIgnorePlayerVelocity&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flFlameReflectionAdditionalLifeTime&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flFlameReflectionDamageReduction&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_iMaxFlameReflectionCount&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Integer&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_nShouldReflect&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Integer&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flFlameSpeed&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flFlameLifeTime&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flRandomLifeTimeOffset&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flFlameGravity&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flFlameDrag&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_flFlameUp&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Float&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&#039;&#039;&#039;m_bIsFiring&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot; |Boolean&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot; |&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Useful_Code_Files&amp;diff=7569</id>
		<title>Useful Code Files</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Useful_Code_Files&amp;diff=7569"/>
		<updated>2025-03-28T16:39:11Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: use official sdk links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [https://github.com/ValveSoftware/source-sdk-2013/blob/master/src/public/const.h const.h]&lt;br /&gt;
* [https://github.com/ValveSoftware/source-sdk-2013/blob/master/src/game/shared/tf/tf_shareddefs.h tf_shareddefs.h]&lt;br /&gt;
* [https://github.com/ValveSoftware/source-sdk-2013/blob/master/src/game/shared/tf/tf_shareddefs.cpp tf_shareddefs.cpp]&lt;br /&gt;
* [https://github.com/ValveSoftware/source-sdk-2013/blob/master/src/public/dt_common.h dt_common.h]&lt;br /&gt;
&lt;br /&gt;
SendProps (CNetwork*) are defined in entity header files (.h); DataMaps (DEFINE*) are defined in the entity code files (.cpp).&lt;br /&gt;
&lt;br /&gt;
(Some entities will have a copy of the same variable as both a SendProp and DataMap.)&lt;br /&gt;
* [https://github.com/ValveSoftware/source-sdk-2013/blob/master/src/public/datamap.h datamap.h]&lt;br /&gt;
* [https://github.com/ValveSoftware/source-sdk-2013/blob/master/src/public/networkvar.h networkvar.h]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7565</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7565"/>
		<updated>2025-03-09T19:24:28Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.                                &lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7564</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7564"/>
		<updated>2025-03-09T19:24:21Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.                                &lt;br /&gt;
&lt;br /&gt;
hkl;hjkl                &lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7563</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7563"/>
		<updated>2025-03-09T19:24:04Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.                &lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7562</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7562"/>
		<updated>2025-03-09T19:22:02Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.                &lt;br /&gt;
&lt;br /&gt;
sthsfghsgh        &lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7561</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7561"/>
		<updated>2025-03-09T19:17:53Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.        &lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7560</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7560"/>
		<updated>2025-03-09T19:17:40Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.        &lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons]&lt;br /&gt;
&lt;br /&gt;
fggadfgerag&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7559</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7559"/>
		<updated>2025-03-09T19:16:52Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.        &lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons] (War Paints do not work in vanilla)&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7558</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7558"/>
		<updated>2025-03-09T19:16:39Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.        &lt;br /&gt;
&lt;br /&gt;
Test    &lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons] (War Paints do not work in vanilla)&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7557</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7557"/>
		<updated>2025-03-09T19:05:38Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.    &lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons] (War Paints do not work in vanilla)&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7556</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7556"/>
		<updated>2025-03-09T19:05:27Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.    &lt;br /&gt;
&lt;br /&gt;
Test edit&lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons] (War Paints do not work in vanilla)&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7555</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7555"/>
		<updated>2025-03-09T19:01:42Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons] (War Paints do not work in vanilla)&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7554</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Main_Page&amp;diff=7554"/>
		<updated>2025-03-09T18:58:43Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: Reverted edits by 172.68.174.11 (talk) to last revision by 141.101.109.162&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Potato&#039;s Custom MvM Wiki. Here you can find information about how to make your own MvM missions, resources for mission making, and information on our custom server mods.    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vanilla Tutorials ==&lt;br /&gt;
* [https://www.youtube.com/watch?v=Z98ei5JLS_g&amp;amp;t=253s Basic Tutorial on how to make popfiles]&lt;br /&gt;
*[https://drive.google.com/file/d/1N-DBsZiKiqjD4OSQH2bRLsYq1Sq4gHhA/view?usp=sharing Titanium Tank Mission Making Guide]&lt;br /&gt;
* [https://steamcommunity.com/sharedfiles/filedetails/?id=1451627628 Canteen Crasher Mission Making Guide]&lt;br /&gt;
* [https://drive.google.com/file/d/1rwcsiZJtKLcbfSBR3o-seQIxq_tTjzPJ/view?usp=sharing Madness vs Machines Expert Mission Making Guide]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=1911160067 Advanced Popfile Tricks]&lt;br /&gt;
*[[Attribute information|Misc. documentation on certain attributes]]&lt;br /&gt;
&lt;br /&gt;
== [[:Category:Tutorials|Modded Tutorials]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Create custom item decals]]&lt;br /&gt;
*[https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Introduction to Point Template Spawners]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Design_PointTemplate_with_hammer_map_editor Designing your Point Templates in Hammer]&lt;br /&gt;
* [[Reverse MvM Beginners Guide]]&lt;br /&gt;
* [https://sigwiki.potato.tf/index.php/Installing_on_Windows_with_WSL Installing Sigmod on Windows with WSL]&lt;br /&gt;
== [[:Category:Templates|Templates]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Spider Tank]]&lt;br /&gt;
* [[Modular Gatebots]]&lt;br /&gt;
* [[Vaccinator Tank]]&lt;br /&gt;
* [[Small Turret Tanks|Small Turret Tank]]&lt;br /&gt;
*[[Rotating Shield]]&lt;br /&gt;
*[[Timers]]&lt;br /&gt;
== [[:Category:Popfile Additions|Custom popfile additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[WaveSchedule]]&lt;br /&gt;
* [[Wave]]&lt;br /&gt;
* [[WaveSpawn]]&lt;br /&gt;
* [[TFBot]]&lt;br /&gt;
== [[:Category:Misc Additions|Miscellaneous additions]] ==&lt;br /&gt;
&lt;br /&gt;
* [[Additions to existing entities]]&lt;br /&gt;
*[[Entity Modules]]&lt;br /&gt;
* [[Custom Entities]]&lt;br /&gt;
* [[Sound Additions]]&lt;br /&gt;
* [[List of custom attributes]]&lt;br /&gt;
*[[List of modifications to vanilla attributes]]&lt;br /&gt;
*[[Expressions]]&lt;br /&gt;
*[[Lua|Lua Scripting]]&lt;br /&gt;
== [[:Category:References|References]] ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/rafradek/sigsegv-mvm/blob/master/scripts/mvm_bigrock_sigdemo.pop Demonstrative SigMod mission]&lt;br /&gt;
* [[List of item definitions]]&lt;br /&gt;
* [https://csrd.science/misc/econ-tf/items.html Complete list of item names] (internal and display)&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/List_of_item_attributes List of vanilla item attributes]&lt;br /&gt;
* [https://wiki.teamfortress.com/wiki/Cheats#addcond List of AddCond values]&lt;br /&gt;
* [https://gist.github.com/sigsegv-mvm/9ce39744fde2aa4c6156 Documentation of all vanilla popfile keyvalues]&lt;br /&gt;
* [[Unusual effect IDs]]&lt;br /&gt;
* [https://github.com/sigsegv-mvm/population Population files used by Valve missions]&lt;br /&gt;
* [[Entity Properties]]&lt;br /&gt;
&lt;br /&gt;
== Misc Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://testing.potato.tf/icons.html Wavebar Icon Repository] &lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=PotatoMvM.popfile-language-support Vanilla Popfile Syntax Highligher for VSCode]&lt;br /&gt;
* [https://www.dropbox.com/s/1w6v8udq74x2gy3/popfile.tmLanguage.json?dl=0 Sigmod Syntax Highlighter for VSCode]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/945446119842938880/Pop_File_Highlighter.xml Vanilla + Sigmod Syntax Highlighter for Notepad++ (slightly outdated)]&lt;br /&gt;
* [https://cdn.discordapp.com/attachments/480416823695638578/933769904778264686/bettericons.zip Fixed valve icons] &lt;br /&gt;
* [https://github.com/Mince64/Popfile-Modifier/tree/main Wavebar Generator]&lt;br /&gt;
* [https://github.com/NPsim/P3/releases/tag/2.1.0 Standalone Popfile Parser]&lt;br /&gt;
* [https://docs.google.com/document/d/e/2PACX-1vR4mcdvfPIib0sfEtzhv_l6lz42ox6xmFr4jxVYceSxL8na9fkrxVkTFz5qVbl1qV3A4VzY-t7CJ-f8/pub War Paint IDs for Decorated weapons] (War Paints do not work in vanilla)&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=231</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=231"/>
		<updated>2021-12-09T03:51:48Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Placing Spawns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom popfile keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand, as well as a deep understanding of our [https://testing.potatomvm.tf/mvm_bigrock_sigdemo.pop popfile mods].  &lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://testing.potato.tf/tf/scripts/population/mvm_rottenburg_reverse_core_logic.pop here].  Red robot template files can be found [https://www.dropbox.com/s/c9lri6egkhp5o8o/redbots.zip?dl=1 here].&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
While the majority of existing mvm maps are suitable, longer and more complex maps are best for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from getting to the hatch quickly, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown, are still completely valid options, however they will require ample counter-measures to avoid players bypassing every threat and camping at the hatch.   &lt;br /&gt;
=== Gate Maps ===&lt;br /&gt;
Maps with gates are very useful for structuring your waves at the cost of simplicity.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput, giving you the option to add rewards or enable new mission mechanics when capturing a gate.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;s&amp;gt;Engineer Teleporter Types&amp;lt;/s&amp;gt; ===&lt;br /&gt;
&#039;&#039;&amp;lt;s&amp;gt;There are 2 separate types of engineer teleporters: regular teleporter behavior, and engineer bot teleporter behavior. Engineer bot teleporters act as a new spawn point, and will instantly teleport players to an exit on respawn with no entrance required.  It is recommended to only use bot style teleporters in long maps that do not use gates, combining gates with this feature can cause balance problems as well as confusion for newer players.&amp;lt;/s&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;As of 12/07/2021, The feature to place engineer-bot style teleporters is horribly broken.  Only vanilla teleporters and teleporters built by actual engineer-bots are currently functional.&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Placing Spawns ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.]]&lt;br /&gt;
Bot spawn timing and placement is the most important ingredient for making your mission enjoyable.  Each spawn must be carefully chosen to cover as much ground as possible.  &lt;br /&gt;
&lt;br /&gt;
It is best to divide your map into distinct areas that players need to conquer before progressing to the next stage, placing spawns accordingly for where those sections of the map are.  Rottenburg, for example, could be cut into 3 distinct areas that players need to &amp;quot;beat&amp;quot; before deploying the bomb:  The front, the church tower, and the hatch.  Spawns and accompanying sub-waves can then be adjusted depending on how long you want players to spend in each individual area of the map.&lt;br /&gt;
&lt;br /&gt;
A common mistake new reverse mission makers will make is placing spawns very close to the player, sometimes in plain view, in order to ensure players don&#039;t make too much progress too quickly, then, waiting for all bots to be dead in the previous sub-wave before spawning the next.  It is best to avoid this practice and, instead, place your spawns far behind cover along the main bot path, using WaitForAllSpawned over WaitForAllDead.  This serves multiple purposes: When bots are spawned further back and need to make their way to players, new sub-waves are seamlessly blended into old ones, rather than abruptly ending and having new bots appear out of thin air.  It also allows red bots to spread more thinly around the map, catching rushers and taking flank routes without needing to be explicitly told to do so.  It also better highlights the direction players need to go if they get lost, as they can simply follow the trail of red bots to the next location in the map.  &lt;br /&gt;
&lt;br /&gt;
For new reverse mission makers, it is not recommended to go overboard on making the bots themselves very interesting and outlandish.  While traditional community mvm is largely about creating new and interesting bots in your waves, the main hurdle of making a fun reverse mission is good red spawn locations and pacing.  More time should be spent optimizing red spawns and map flow rather than creating new bot types.   &lt;br /&gt;
&lt;br /&gt;
== Friendly Robots ==&lt;br /&gt;
When adding friendly bots to your mission, you should balance them to be considerably weaker than the upcoming red robots.  If your friendly bots are strong enough to beat the mission without player interference in a reasonable amount of time, players won&#039;t feel very engaged.  A good system for picking good friendly bots using valve templates is to pick the less dangerous variant of bots you are using in your waves.  If a certain sub-wave uses crit rapid fire giant soldiers on red, send out normal giant soldiers on blu.  This way, blu robots are at an inherent disadvantage and need players to assist them to progress.    &lt;br /&gt;
&lt;br /&gt;
Due to the complexity of balancing overpowered and underpowered blu robots for your wave, it is recommended that any lose conditions built around VIP escorting objectives either be very forgiving, or take advantage of custom behavior changing keyvalues such as InterruptAction to give players more control over the VIP.  It is highly recommended not to allow VIP bots to pick up the bomb, but still have them use default bomb-hunting behavior.  This way, if a player picks up the bomb and there are &amp;lt; 4 blu robots nearby*, they will be protected and escorted by the VIP.    &lt;br /&gt;
&lt;br /&gt;
Do note that players are able to interact with bots in several ways.  Heavies can heal them with lunchbox items, medics can uber them, soldiers can whip them, and bots will take nearby active teleporters.  All of these features can be modified or disabled.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*Max escort limit can be adjusted with FlagEscortCountOffset, or by giving the bot Action EscortFlag&amp;lt;/sup&amp;gt;   &lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own [https://developer.valvesoftware.com/wiki/Game_round_win game_round_win] entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
==Preparing Your Map==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;lt;sup&amp;gt;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&amp;lt;/sup&amp;gt;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;sup&amp;gt;For more complex maps with a lot of entities, it may be beneficial to strip away certain decorative elements of the map to avoid hitting the edict limit (such as move_rope and keyframe_rope).&amp;lt;/sup&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points, use them to cover up holes in the map as well.  If your map has particularly cramped spawns, it might be wise to use a smaller model than the traditional one to signify an upgrade station, such as a resupply locker or a small weapons case.  Do note the &amp;quot;mins&amp;quot; and &amp;quot;maxs&amp;quot; values for the func_upgradestation entity will need to be adjusted accordingly&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=230</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=230"/>
		<updated>2021-12-08T16:50:15Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Maps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom popfile keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand, as well as a deep understanding of our [https://testing.potatomvm.tf/mvm_bigrock_sigdemo.pop popfile mods].  &lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://testing.potato.tf/tf/scripts/population/mvm_rottenburg_reverse_core_logic.pop here].  Red robot template files can be found [https://www.dropbox.com/s/c9lri6egkhp5o8o/redbots.zip?dl=1 here].&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
While the majority of existing mvm maps are suitable, longer and more complex maps are best for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from getting to the hatch quickly, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown, are still completely valid options, however they will require ample counter-measures to avoid players bypassing every threat and camping at the hatch.   &lt;br /&gt;
=== Gate Maps ===&lt;br /&gt;
Maps with gates are very useful for structuring your waves at the cost of simplicity.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput, giving you the option to add rewards or enable new mission mechanics when capturing a gate.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;s&amp;gt;Engineer Teleporter Types&amp;lt;/s&amp;gt; ===&lt;br /&gt;
&#039;&#039;&amp;lt;s&amp;gt;There are 2 separate types of engineer teleporters: regular teleporter behavior, and engineer bot teleporter behavior. Engineer bot teleporters act as a new spawn point, and will instantly teleport players to an exit on respawn with no entrance required.  It is recommended to only use bot style teleporters in long maps that do not use gates, combining gates with this feature can cause balance problems as well as confusion for newer players.&amp;lt;/s&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;As of 12/07/2021, The feature to place engineer-bot style teleporters is horribly broken.  Only vanilla teleporters and teleporters built by actual engineer-bots are currently functional.&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Placing Spawns ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.]]&lt;br /&gt;
Bot spawn timing and placement is the most important ingredient for making your mission enjoyable, and each spawn must be carefully and thoughtfully chosen to cover as much ground as possible before it becomes simply too far from the player to be useful.  &lt;br /&gt;
&lt;br /&gt;
It is best to divide your map into distinct areas that players need to conquer before progressing to the next stage, placing spawns accordingly for where those sections of the map are.  Rottenburg, for example, could be cut into 3 distinct areas that players need to beat before deploying the bomb:  The front, the church tower/bridge, and the hatch.  Spawns can be placed and accompanying sub-waves can be timed based on how long you want players to spend in each individual area of the map.&lt;br /&gt;
&lt;br /&gt;
A common mistake new reverse mission makers will make is placing spawns very close to the player, sometimes in plain view, in order to ensure players don&#039;t make too much progress too quickly, then, waiting for all bots to be dead in the previous sub-wave before spawning the next.  It is best to avoid this practice and, instead, place your spawns far behind cover along the main bot path, using WaitForAllSpawned over WaitForAllDead.  This serves multiple purposes: When bots are spawned further back and need to make their way to players, new sub-waves are seamlessly blended into old ones, rather than abruptly ending and having new bots appear out of thin air.  It also allows red bots to spread more thinly around the map, catching rushers and taking flank routes without needing to be explicitly told to do so.  It also better highlights the direction players need to go if they get lost, as they can simply follow the trail of red bots to the next location in the map.  &lt;br /&gt;
&lt;br /&gt;
For new reverse mission makers, it is not recommended to go overboard on making the bots themselves very interesting and outlandish.  While traditional community mvm is largely about creating new and interesting bots in your waves, the main hurdle of making a fun reverse mission is good red spawn locations and pacing.  More time should be spent optimizing red spawns and map flow rather than creating new bot types.  Reverse as a concept carries itself, and many of the existing reverse missions that are suitable for an event make ample use of valve bot templates converted to red team.   &lt;br /&gt;
&lt;br /&gt;
== Friendly Robots ==&lt;br /&gt;
When adding friendly bots to your mission, you should balance them to be considerably weaker than the upcoming red robots.  If your friendly bots are strong enough to beat the mission without player interference in a reasonable amount of time, players won&#039;t feel very engaged.  A good system for picking good friendly bots using valve templates is to pick the less dangerous variant of bots you are using in your waves.  If a certain sub-wave uses crit rapid fire giant soldiers on red, send out normal giant soldiers on blu.  This way, blu robots are at an inherent disadvantage and need players to assist them to progress.    &lt;br /&gt;
&lt;br /&gt;
Due to the complexity of balancing overpowered and underpowered blu robots for your wave, it is recommended that any lose conditions built around VIP escorting objectives either be very forgiving, or take advantage of custom behavior changing keyvalues such as InterruptAction to give players more control over the VIP.  It is highly recommended not to allow VIP bots to pick up the bomb, but still have them use default bomb-hunting behavior.  This way, if a player picks up the bomb and there are &amp;lt; 4 blu robots nearby*, they will be protected and escorted by the VIP.    &lt;br /&gt;
&lt;br /&gt;
Do note that players are able to interact with bots in several ways.  Heavies can heal them with lunchbox items, medics can uber them, soldiers can whip them, and bots will take nearby active teleporters.  All of these features can be modified or disabled.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*Max escort limit can be adjusted with FlagEscortCountOffset, or by giving the bot Action EscortFlag&amp;lt;/sup&amp;gt;   &lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own [https://developer.valvesoftware.com/wiki/Game_round_win game_round_win] entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
==Preparing Your Map==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;lt;sup&amp;gt;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&amp;lt;/sup&amp;gt;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;sup&amp;gt;For more complex maps with a lot of entities, it may be beneficial to strip away certain decorative elements of the map to avoid hitting the edict limit (such as move_rope and keyframe_rope).&amp;lt;/sup&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points, use them to cover up holes in the map as well.&lt;br /&gt;
&lt;br /&gt;
If your map has particularly cramped spawns, it might be wise to use a smaller model than the traditional one to signify an upgrade station, such as a resupply locker or a small weapons case.  Do note the &amp;quot;mins&amp;quot; and &amp;quot;maxs&amp;quot; values for the func_upgradestation entity will need to be adjusted accordingly&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=229</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=229"/>
		<updated>2021-12-08T16:41:41Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom popfile keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://steamcommunity.com/sharedfiles/filedetails/?id=2289315026 Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand, as well as a deep understanding of our [https://testing.potatomvm.tf/mvm_bigrock_sigdemo.pop popfile mods].  &lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://testing.potato.tf/tf/scripts/population/mvm_rottenburg_reverse_core_logic.pop here].  Red robot template files can be found [https://www.dropbox.com/s/c9lri6egkhp5o8o/redbots.zip?dl=1 here].&lt;br /&gt;
&lt;br /&gt;
== Maps ==&lt;br /&gt;
While the majority of existing mvm maps are suitable, longer and more complex maps are best suited for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from getting to the hatch quickly, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown are still completely valid options, however they will require ample counter-measures to avoid players bypassing every threat and camping at the hatch, usually by blocking the hatch until the last subwave is ended, or blocking off large regions of the map from access and periodically opening them.   &lt;br /&gt;
=== Gate Maps ===&lt;br /&gt;
Maps with gates are very useful for structuring your waves at the cost of simplicity.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput, giving you the option to add rewards or enable new mission mechanics when capturing a gate.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;s&amp;gt;Engineer Teleporter Types&amp;lt;/s&amp;gt; ===&lt;br /&gt;
&#039;&#039;&amp;lt;s&amp;gt;There are 2 separate types of engineer teleporters: regular teleporter behavior, and engineer bot teleporter behavior. Engineer bot teleporters act as a new spawn point, and will instantly teleport players to an exit on respawn with no entrance required.  It is recommended to only use bot style teleporters in long maps that do not use gates, combining gates with this feature can cause balance problems as well as confusion for newer players.&amp;lt;/s&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;As of 12/07/2021, The feature to place engineer-bot style teleporters is horribly broken.  Only vanilla teleporters and teleporters built by actual engineer-bots are currently functional.&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Placing Spawns ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.]]&lt;br /&gt;
Bot spawn timing and placement is the most important ingredient for making your mission enjoyable, and each spawn must be carefully and thoughtfully chosen to cover as much ground as possible before it becomes simply too far from the player to be useful.  &lt;br /&gt;
&lt;br /&gt;
It is best to divide your map into distinct areas that players need to conquer before progressing to the next stage, placing spawns accordingly for where those sections of the map are.  Rottenburg, for example, could be cut into 3 distinct areas that players need to beat before deploying the bomb:  The front, the church tower/bridge, and the hatch.  Spawns can be placed and accompanying sub-waves can be timed based on how long you want players to spend in each individual area of the map.&lt;br /&gt;
&lt;br /&gt;
A common mistake new reverse mission makers will make is placing spawns very close to the player, sometimes in plain view, in order to ensure players don&#039;t make too much progress too quickly, then, waiting for all bots to be dead in the previous sub-wave before spawning the next.  It is best to avoid this practice and, instead, place your spawns far behind cover along the main bot path, using WaitForAllSpawned over WaitForAllDead.  This serves multiple purposes: When bots are spawned further back and need to make their way to players, new sub-waves are seamlessly blended into old ones, rather than abruptly ending and having new bots appear out of thin air.  It also allows red bots to spread more thinly around the map, catching rushers and taking flank routes without needing to be explicitly told to do so.  It also better highlights the direction players need to go if they get lost, as they can simply follow the trail of red bots to the next location in the map.  &lt;br /&gt;
&lt;br /&gt;
For new reverse mission makers, it is not recommended to go overboard on making the bots themselves very interesting and outlandish.  While traditional community mvm is largely about creating new and interesting bots in your waves, the main hurdle of making a fun reverse mission is good red spawn locations and pacing.  More time should be spent optimizing red spawns and map flow rather than creating new bot types.  Reverse as a concept carries itself, and many of the existing reverse missions that are suitable for an event make ample use of valve bot templates converted to red team.   &lt;br /&gt;
&lt;br /&gt;
== Friendly Robots ==&lt;br /&gt;
When adding friendly bots to your mission, you should balance them to be considerably weaker than the upcoming red robots.  If your friendly bots are strong enough to beat the mission without player interference in a reasonable amount of time, players won&#039;t feel very engaged.  A good system for picking good friendly bots using valve templates is to pick the less dangerous variant of bots you are using in your waves.  If a certain sub-wave uses crit rapid fire giant soldiers on red, send out normal giant soldiers on blu.  This way, blu robots are at an inherent disadvantage and need players to assist them to progress.    &lt;br /&gt;
&lt;br /&gt;
Due to the complexity of balancing overpowered and underpowered blu robots for your wave, it is recommended that any lose conditions built around VIP escorting objectives either be very forgiving, or take advantage of custom behavior changing keyvalues such as InterruptAction to give players more control over the VIP.  It is highly recommended not to allow VIP bots to pick up the bomb, but still have them use default bomb-hunting behavior.  This way, if a player picks up the bomb and there are &amp;lt; 4 blu robots nearby*, they will be protected and escorted by the VIP.    &lt;br /&gt;
&lt;br /&gt;
Do note that players are able to interact with bots in several ways.  Heavies can heal them with lunchbox items, medics can uber them, soldiers can whip them, and bots will take nearby active teleporters.  All of these features can be modified or disabled.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*Max escort limit can be adjusted with FlagEscortCountOffset, or by giving the bot Action EscortFlag&amp;lt;/sup&amp;gt;   &lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own [https://developer.valvesoftware.com/wiki/Game_round_win game_round_win] entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
==Preparing Your Map==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&amp;lt;sup&amp;gt;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&amp;lt;/sup&amp;gt;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;sup&amp;gt;For more complex maps with a lot of entities, it may be beneficial to strip away certain decorative elements of the map to avoid hitting the edict limit (such as move_rope and keyframe_rope).&amp;lt;/sup&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points, use them to cover up holes in the map as well.&lt;br /&gt;
&lt;br /&gt;
If your map has particularly cramped spawns, it might be wise to use a smaller model than the traditional one to signify an upgrade station, such as a resupply locker or a small weapons case.  Do note the &amp;quot;mins&amp;quot; and &amp;quot;maxs&amp;quot; values for the func_upgradestation entity will need to be adjusted accordingly&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=184</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=184"/>
		<updated>2021-10-28T06:45:19Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Pacing and Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://sigwiki.potatomvm.tf/index.php/Design_PointTemplate_with_hammer_map_editor Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand.&lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://www.dropbox.com/s/iu84axj1r0vhg0y/mvm&amp;amp;#x20;rottenburg&amp;amp;#x20;reverse&amp;amp;#x20;core&amp;amp;#x20;logic.pop?dl=1rial&amp;amp;#x20;mission here]&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For more complex maps with a lot of entities, it may be beneficial to strip away unnecessary decorative elements of the map to avoid hitting the edict limit.  move_rope and keyframe_rope for example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own game_round_win entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points and use them to cover up holes in the map.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pacing and Structure ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.]]&lt;br /&gt;
While the majority of existing mvm maps are suitable, longer maps that have more complex paths to the hatch are best suited for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from blast jumping directly to hatch, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown are still completely valid options, however they will require ample counter-measures to avoid players bypassing the map and camping at the hatch, usually by blocking the hatch until the last subwave is ended and/or adding very strong defenses.   &lt;br /&gt;
   &lt;br /&gt;
Once you&#039;ve identified a map you feel is best for your mission, the next step is to create bot spawns that move progressively further towards the hatch that are spread far apart, combined with sub-waves that give players adequate time to move forward and engage in the next sub-wave after it.  If each sub-wave and spawn location is balanced correctly, players will not spend the majority of their time in one part of the map.  If spawns are too fast and too close together, the mission will be a slog and players will struggle to progress.  If new sub-waves are too slow to begin and spawns are spread too far apart, the threat will be too spread out and players can simply ignore the next sub-wave, head straight to the hatch, and let everything come to them.  Do your best to strike a balance between these two extremes.&lt;br /&gt;
&lt;br /&gt;
Maps with gates are very useful for structuring your waves at the cost of simplicity.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput, giving you the option to add rewards or enable new mission mechanics when capturing a gate.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=183</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=183"/>
		<updated>2021-10-28T06:43:38Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Pacing and Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://sigwiki.potatomvm.tf/index.php/Design_PointTemplate_with_hammer_map_editor Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand.&lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://www.dropbox.com/s/iu84axj1r0vhg0y/mvm&amp;amp;#x20;rottenburg&amp;amp;#x20;reverse&amp;amp;#x20;core&amp;amp;#x20;logic.pop?dl=1rial&amp;amp;#x20;mission here]&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For more complex maps with a lot of entities, it may be beneficial to strip away unnecessary decorative elements of the map to avoid hitting the edict limit.  move_rope and keyframe_rope for example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own game_round_win entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points and use them to cover up holes in the map.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pacing and Structure ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.  Players would take the top path in this example]]&lt;br /&gt;
While the majority of existing mvm maps are suitable, longer maps that have more complex paths to the hatch are best suited for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from blast jumping directly to hatch, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown are still completely valid options, however they will require ample counter-measures to avoid players bypassing the map and camping at the hatch, usually by blocking the hatch until the last subwave is ended and/or adding very strong defenses.   &lt;br /&gt;
   &lt;br /&gt;
Once you&#039;ve identified a map you feel is best for your mission, the next step is to create bot spawns that move progressively further towards the hatch that are spread far apart, combined with sub-waves that give players adequate time to move forward and engage in the next sub-wave after it.  If each sub-wave and spawn location is balanced correctly, players will not spend the majority of their time in one part of the map.  If spawns are too fast and too close together, the mission will be a slog and players will struggle to progress.  If new sub-waves are too slow to begin and spawns are spread too far apart, the threat will be too spread out and players can simply ignore the next sub-wave, head straight to the hatch, and let everything come to them.  Do your best to strike a balance between these two extremes.&lt;br /&gt;
&lt;br /&gt;
Maps with gates are very useful for structuring your waves at the cost of simplicity.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput, giving you the option to add rewards or enable new mission mechanics when capturing a gate.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=182</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=182"/>
		<updated>2021-10-28T06:42:23Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Pacing and Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://sigwiki.potatomvm.tf/index.php/Design_PointTemplate_with_hammer_map_editor Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand.&lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://www.dropbox.com/s/iu84axj1r0vhg0y/mvm&amp;amp;#x20;rottenburg&amp;amp;#x20;reverse&amp;amp;#x20;core&amp;amp;#x20;logic.pop?dl=1rial&amp;amp;#x20;mission here]&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For more complex maps with a lot of entities, it may be beneficial to strip away unnecessary decorative elements of the map to avoid hitting the edict limit.  move_rope and keyframe_rope for example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own game_round_win entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points and use them to cover up holes in the map.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pacing and Structure ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.  Players would take the top path in this example]]&lt;br /&gt;
While the majority of existing mvm maps are suitable, longer maps that have more complex paths to the hatch are best suited for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from blast jumping directly to hatch, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown are still completely valid options, however they will require ample counter-measures to avoid players bypassing the map and camping at the hatch, usually by blocking the hatch until the last subwave is ended and/or adding very strong defenses.   &lt;br /&gt;
   &lt;br /&gt;
Once you&#039;ve identified a map you feel is best for your mission, the next step is to create bot spawns that move progressively further towards the hatch that are spread far apart, combined with sub-waves that give players adequate time to move forward and engage in the next sub-wave after it.  If each sub-wave and spawn location is balanced correctly, players will not spend the majority of their time in one part of the map.  If spawns are too fast and too close together, the mission will be a slog and players will struggle to progress.  If new sub-waves are too slow to begin and spawns are spread too far apart, the threat will be too spread out and players can simply ignore the next sub-wave, head straight to the hatch, and let everything come to them.  Do your best to strike a balance between these two extremes.&lt;br /&gt;
&lt;br /&gt;
Maps with gates are very useful for structuring your waves.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput, giving you the option to add rewards or enable new mission mechanics when capturing a gate.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=181</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=181"/>
		<updated>2021-10-28T06:40:22Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Pacing and Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://sigwiki.potatomvm.tf/index.php/Design_PointTemplate_with_hammer_map_editor Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand.&lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://www.dropbox.com/s/iu84axj1r0vhg0y/mvm&amp;amp;#x20;rottenburg&amp;amp;#x20;reverse&amp;amp;#x20;core&amp;amp;#x20;logic.pop?dl=1rial&amp;amp;#x20;mission here]&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For more complex maps with a lot of entities, it may be beneficial to strip away unnecessary decorative elements of the map to avoid hitting the edict limit.  move_rope and keyframe_rope for example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own game_round_win entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points and use them to cover up holes in the map.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pacing and Structure ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.  Players would take the top path in this example]]&lt;br /&gt;
While the majority of existing mvm maps are suitable, longer maps that have more complex paths to the hatch are best suited for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from blast jumping directly to hatch, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown are still completely valid options, however they will require ample counter-measures to avoid players bypassing the map and camping at the hatch, usually by blocking the hatch until the last subwave is ended and/or adding very strong defenses.   &lt;br /&gt;
   &lt;br /&gt;
Once you&#039;ve identified a map you feel is best for your mission, the best way to achieve good pacing is to have bot spawns that move progressively further towards the hatch that are spread far apart, combined with sub-waves that give players adequate time to move forward and engage in the next sub-wave after it.  If each sub-wave and spawn location is balanced correctly, players will not spend the majority of their time in one part of the map.  If spawns are too fast and too close together, the mission will be a slog and players will struggle to progress.  If new sub-waves are too slow to begin and spawns are spread too far apart, the threat will be too spread out and players can simply ignore the next sub-wave, head straight to the hatch, and let everything come to them.  Do your best to strike a balance between these two extremes.&lt;br /&gt;
&lt;br /&gt;
Maps with gates are very useful for structuring your waves.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput, giving you the option to add rewards or enable new mission mechanics when capturing a gate.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=180</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=180"/>
		<updated>2021-10-28T06:39:48Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Pacing and Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://sigwiki.potatomvm.tf/index.php/Design_PointTemplate_with_hammer_map_editor Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand.&lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://www.dropbox.com/s/iu84axj1r0vhg0y/mvm&amp;amp;#x20;rottenburg&amp;amp;#x20;reverse&amp;amp;#x20;core&amp;amp;#x20;logic.pop?dl=1rial&amp;amp;#x20;mission here]&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For more complex maps with a lot of entities, it may be beneficial to strip away unnecessary decorative elements of the map to avoid hitting the edict limit.  move_rope and keyframe_rope for example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own game_round_win entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points and use them to cover up holes in the map.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pacing and Structure ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.  Players would take the top path in this example]]&lt;br /&gt;
While the majority of existing mvm maps are suitable, longer maps that have more complex paths to the hatch are best suited for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from blast jumping directly to hatch, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown are still completely valid options, however they will require ample counter-measures to avoid players bypassing the map and camping at the hatch, usually by blocking the hatch until the last subwave is ended and/or adding very strong defenses.   &lt;br /&gt;
   &lt;br /&gt;
Once you&#039;ve identified a map you feel is best for your mission, the best way to achieve good pacing is to have bot spawns that move progressively further towards the hatch that are spread far apart, combined with sub-waves that give players adequate time to move forward and engage in the next sub-wave after it.  If each sub-wave is balanced and timed correctly, players will not spend the majority of their time in one part of the map.  If spawns are too fast and too close together, the mission will be a slog and players will struggle to progress.  If new sub-waves are too slow to begin and spawns are spread too far apart, the threat will be too spread out and players can simply ignore the next sub-wave, head straight to the hatch, and let everything come to them.  Do your best to strike a balance between these two extremes.&lt;br /&gt;
&lt;br /&gt;
Maps with gates are very useful for structuring your waves.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput, giving you the option to add rewards or enable new mission mechanics when capturing a gate.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=179</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=179"/>
		<updated>2021-10-28T06:35:03Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Pacing and Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://sigwiki.potatomvm.tf/index.php/Design_PointTemplate_with_hammer_map_editor Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand.&lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://www.dropbox.com/s/iu84axj1r0vhg0y/mvm&amp;amp;#x20;rottenburg&amp;amp;#x20;reverse&amp;amp;#x20;core&amp;amp;#x20;logic.pop?dl=1rial&amp;amp;#x20;mission here]&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For more complex maps with a lot of entities, it may be beneficial to strip away unnecessary decorative elements of the map to avoid hitting the edict limit.  move_rope and keyframe_rope for example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own game_round_win entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points and use them to cover up holes in the map.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pacing and Structure ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.  Players would take the top path in this example]]&lt;br /&gt;
While the majority of existing mvm maps are suitable for reverse missions, longer maps that have more complex paths to the hatch which cannot be immediately bypassed by blast jumping are best suited for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from jumping directly to hatch, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown are still completely valid options, however they will require ample counter-measures to avoid players bypassing the map and camping at the hatch, usually by blocking the hatch until the last subwave is ended and/or adding very strong defenses.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve identified a map you feel is best for your mission, the best way to achieve good pacing is to have bot spawns that move progressively further towards the hatch at a steady rate, combined with sub-waves that give players adequate time to move forward and engage in the next sub-wave after it.  Think of each sub-wave and custom spawn location you create as a new challenge that players need to complete before moving to the next location.  If each sub-wave is balanced and timed correctly, players will not spend the majority of their time in one part of the map.  If spawns are too fast and too close together, the mission will be a slog and players will struggle to progress.  If new sub-waves are too slow to begin and spawns are spread too far apart, the threat will be too spread out and players can simply ignore the next sub-wave, camp at the hatch with the bomb, and let everything come to them.  Do your best to strike a balance between these two extremes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maps with gates are very useful for structuring your waves.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput as well, adding rewards or enabling new mission mechanics when capturing the gate.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=178</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=178"/>
		<updated>2021-10-28T06:34:44Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Pacing and Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://sigwiki.potatomvm.tf/index.php/Design_PointTemplate_with_hammer_map_editor Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand.&lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://www.dropbox.com/s/iu84axj1r0vhg0y/mvm&amp;amp;#x20;rottenburg&amp;amp;#x20;reverse&amp;amp;#x20;core&amp;amp;#x20;logic.pop?dl=1rial&amp;amp;#x20;mission here]&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For more complex maps with a lot of entities, it may be beneficial to strip away unnecessary decorative elements of the map to avoid hitting the edict limit.  move_rope and keyframe_rope for example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own game_round_win entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points and use them to cover up holes in the map.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pacing and Structure ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.  Players would take the top path in this example]]&lt;br /&gt;
The map you select and pacing of your waves are the most integral part of making an enjoyable reverse mission.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While the majority of existing mvm maps are suitable for reverse missions, longer maps that have more complex paths to the hatch which cannot be immediately bypassed by blast jumping are best suited for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from jumping directly to hatch, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown are still completely valid options, however they will require ample counter-measures to avoid players bypassing the map and camping at the hatch, usually by blocking the hatch until the last subwave is ended and/or adding very strong defenses. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve identified a map you feel is best for your mission, the best way to achieve good pacing is to have bot spawns that move progressively further towards the hatch at a steady rate, combined with sub-waves that give players adequate time to move forward and engage in the next sub-wave after it.  Think of each sub-wave and custom spawn location you create as a new challenge that players need to complete before moving to the next location.  If each sub-wave is balanced and timed correctly, players will not spend the majority of their time in one part of the map.  If spawns are too fast and too close together, the mission will be a slog and players will struggle to progress.  If new sub-waves are too slow to begin and spawns are spread too far apart, the threat will be too spread out and players can simply ignore the next sub-wave, camp at the hatch with the bomb, and let everything come to them.  Do your best to strike a balance between these two extremes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maps with gates are very useful for structuring your waves.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput as well, adding rewards or enabling new mission mechanics when capturing the gate.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=177</id>
		<title>Reverse MvM Beginners Guide</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=177"/>
		<updated>2021-10-28T06:33:15Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: /* Pacing and Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reverse MvM refers to a combination of [https://sigwiki.potatomvm.tf/index.php/WaveSchedule custom keyvalues] that flips the teams and win conditions.  Instead of defending against hordes of robots, players are spawned on the blue team and must fight their way to the hatch and deliver the bomb.  Designing missions around this concept can be very complex and requires heavy usage of [https://sigwiki.potatomvm.tf/index.php/Design_PointTemplate_with_hammer_map_editor Point Templates].  It is highly recommended that you have a basic understanding of hammer and map logic beforehand.&lt;br /&gt;
&lt;br /&gt;
An example popfile for Rottenburg can be found [https://www.dropbox.com/s/iu84axj1r0vhg0y/mvm&amp;amp;#x20;rottenburg&amp;amp;#x20;reverse&amp;amp;#x20;core&amp;amp;#x20;logic.pop?dl=1rial&amp;amp;#x20;mission here]&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
Because many maps were not designed for this mode, it is recommended that you go through your map of choice and remove unwanted map entities, cover up holes in bot spawn with [https://developer.valvesoftware.com/wiki/Prop_dynamic prop_dynamic], and generally prepare your map beforehand.  For the bulk of custom logic, a [https://developer.valvesoftware.com/wiki/Logic_auto logic_auto] in combination with [https://developer.valvesoftware.com/wiki/AddOutput AddOutputs] is recommended, as it will instantly trigger when a new wave loads.  For example, if your mission gives the blue team infinite ammo, it wouldn&#039;t hurt to remove redundant ammo packs from the map like so  &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
logic_auto &lt;br /&gt;
{&lt;br /&gt;
     &amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
     &amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
     &amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;    &lt;br /&gt;
&lt;br /&gt;
Many maps do not have gates or doors blocking the blue spawn area and will require you to add your own blockades.  This can be as simple as placing a prop in front of the spawn and killing it when the wave starts, or as complex as creating a moving gate using [https://developer.valvesoftware.com/wiki/Func_tracktrain func_tracktrain].  For our example, we&#039;ll be using a [https://developer.valvesoftware.com/wiki/Func_forcefield func_forcefield], an invisible wall which can be disabled and enabled when wave start/end relays trigger using some basic AddOutputs&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	corelogic&lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		logic_auto &lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot; &lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;mainrelay&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;item_ammopack*,Kill,,0,-1&amp;quot;&lt;br /&gt;
				 &lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_start_relay*,AddOutput,OnTrigger spawnbarrier:Disable:0:-1,0,-1&amp;quot;&lt;br /&gt;
			&amp;quot;OnMapSpawn&amp;quot; &amp;quot;wave_finished_relay*,AddOutput,OnTrigger spawnbarrier:Enable:0:-1,0,-1&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	forcefield&lt;br /&gt;
	{  &lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		func_forcefield&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;2724.365479 -2303.941650 -143.139458&amp;quot; //rottenburg spawn&lt;br /&gt;
			&amp;quot;angles&amp;quot; &amp;quot;0 90 0&amp;quot;&lt;br /&gt;
			&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
			&amp;quot;rendercolor&amp;quot; &amp;quot;255 255 255&amp;quot;&lt;br /&gt;
			&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot; //10 = don&#039;t render&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot; //2 for red, 3 for blu&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;spawnbarrier&amp;quot;&lt;br /&gt;
			&amp;quot;mins&amp;quot; &amp;quot;-300 -300 -300&amp;quot;&lt;br /&gt;
			&amp;quot;maxs&amp;quot; &amp;quot;300 300 300&amp;quot; //300x300 hu cube&lt;br /&gt;
			&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;* is a [https://developer.valvesoftware.com/wiki/Wildcard wildcard] that can be used to reference multiple entities with the same prefix.  It is only limited to suffixes (*_start_relay* would not work)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For more complex maps with a lot of entities, it may be beneficial to strip away unnecessary decorative elements of the map to avoid hitting the edict limit.  move_rope and keyframe_rope for example.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Lose Condition==&lt;br /&gt;
In order to fail the wave when players lose, you will need to add your own game_round_win entity like so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
PointTemplates [$SIGSEGV]&lt;br /&gt;
{&lt;br /&gt;
	LoseRelay &lt;br /&gt;
	{&lt;br /&gt;
		NoFixup 1&lt;br /&gt;
		game_round_win //ignore this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;bots_win_red&amp;quot;&lt;br /&gt;
			&amp;quot;switch_teams&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			&amp;quot;force_map_reset&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
			&amp;quot;classname&amp;quot; &amp;quot;game_round_win&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		logic_relay //trigger this&lt;br /&gt;
		{&lt;br /&gt;
			&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			&amp;quot;targetname&amp;quot; &amp;quot;redwin_relay&amp;quot;&lt;br /&gt;
			&amp;quot;OnTrigger&amp;quot; &amp;quot;bots_win_red,RoundWin,,0,-1&amp;quot;&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s up to you to decide how you want players to lose.  Timers, VIP Escort, and Tanks are popular ways to do so.&lt;br /&gt;
&lt;br /&gt;
== Upgrade Station ==&lt;br /&gt;
Upgrade stations will need to be placed in blue spawns.  Do your best to strategically place these in areas that don&#039;t interfere with spawn points and use them to cover up holes in the map.&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		station&lt;br /&gt;
		{&lt;br /&gt;
			NoFixup 1&lt;br /&gt;
			func_upgradestation //upgrade station entity&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;mins&amp;quot; &amp;quot;-105 -100 0&amp;quot; &lt;br /&gt;
				&amp;quot;maxs&amp;quot; &amp;quot;105 100 242&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //blu upgrade station model, can be found on potato servers&lt;br /&gt;
			{&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;upgradestation&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models\props_mvm\mvm_upgrade_blu.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;255&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
			prop_dynamic //invisible collision prop &lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				&amp;quot;targetname&amp;quot; &amp;quot;shopcollision&amp;quot;&lt;br /&gt;
				&amp;quot;angles&amp;quot; &amp;quot;0 -90 0&amp;quot;&lt;br /&gt;
				&amp;quot;DisableBoneFollowers&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;disablereceiveshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;model&amp;quot; &amp;quot;models/props_vehicles/train_flatcar_container.mdl&amp;quot;&lt;br /&gt;
				&amp;quot;disableshadows&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeDamage&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;ExplodeRadius&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademaxdist&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;fademindist&amp;quot; &amp;quot;-1&amp;quot;&lt;br /&gt;
				&amp;quot;fadescale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;MaxAnimTime&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;maxdxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;MinAnimTime&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;mindxlevel&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;modelscale&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
				&amp;quot;PerformanceMode&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;pressuredelay&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;RandomAnimation&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderamt&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;renderfx&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;rendermode&amp;quot; &amp;quot;10&amp;quot;&lt;br /&gt;
				&amp;quot;SetBodyGroup&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;skin&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;CollisionGroup&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
				&amp;quot;solid&amp;quot; &amp;quot;6&amp;quot;&lt;br /&gt;
				&amp;quot;spawnflags&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;StartDisabled&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
				&amp;quot;origin&amp;quot; &amp;quot;0 0 0&amp;quot;	&lt;br /&gt;
			}		&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pacing and Structure ==&lt;br /&gt;
[[File:Rotten.png|thumb|Custom spawn and sub-wave layout example for Rottenburg.  Players would take the top path in this example]]&lt;br /&gt;
The pacing of your waves is the most integral part of making an enjoyable reverse mission.  Specifically: map selection, spawn locations, spawn timing, and sub-wave duration. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While the majority of existing mvm maps are suitable for reverse missions, longer maps that have more complex paths to the hatch which cannot be immediately bypassed by blast jumping are best suited for reverse.  Bigrock, Mannhattan, and Rottenburg are examples of valve maps where it is relatively easy to stop players from jumping directly to hatch, due to their layouts and/or overall length.  Shorter and more open-ended maps such as Decoy, Mannworks, and Coaltown are still completely valid options, however they will require ample counter-measures to avoid players bypassing the map and camping at the hatch, usually by blocking the hatch until the last subwave is ended and/or adding very strong defenses. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve identified a map you feel is best for your mission, the best way to achieve good pacing is to have bot spawns that move progressively further towards the hatch at a steady rate, combined with sub-waves that give players adequate time to move forward and engage in the next sub-wave after it.  Think of each sub-wave and custom spawn location you create as a new challenge that players need to complete before moving to the next location.  If each sub-wave is balanced and timed correctly, players will not spend the majority of their time in one part of the map.  If spawns are too fast and too close together, the mission will be a slog and players will struggle to progress.  If new sub-waves are too slow to begin and spawns are spread too far apart, the threat will be too spread out and players can simply ignore the next sub-wave, camp at the hatch with the bomb, and let everything come to them.  Do your best to strike a balance between these two extremes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maps with gates are very useful for structuring your waves.  You can enable/disable bot spawns and connect your own custom logic to the outputs of the maps [https://developer.valvesoftware.com/wiki/Trigger_timer_door trigger_timer_door] entity using AddOutput as well, adding rewards or enabling new mission mechanics when capturing the gate.&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=File:Rotten.png&amp;diff=176</id>
		<title>File:Rotten.png</title>
		<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php?title=File:Rotten.png&amp;diff=176"/>
		<updated>2021-10-28T05:37:26Z</updated>

		<summary type="html">&lt;p&gt;Braindawg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;custom spawn and sub-wave layout example for rottenburg, players take the top path on Wave 1 in this example&lt;/div&gt;</summary>
		<author><name>Braindawg</name></author>
	</entry>
</feed>