<?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=Orinuse</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=Orinuse"/>
	<link rel="alternate" type="text/html" href="https://sigwiki.potato.tf/index.php/Special:Contributions/Orinuse"/>
	<updated>2026-06-05T04:37:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=142</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=142"/>
		<updated>2021-07-22T14:53:33Z</updated>

		<summary type="html">&lt;p&gt;Orinuse: missed one&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;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&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;&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 prefixes (*_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 can be safely removed if necessary.&#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;/div&gt;</summary>
		<author><name>Orinuse</name></author>
	</entry>
	<entry>
		<id>https://sigwiki.potato.tf/index.php?title=Reverse_MvM_Beginners_Guide&amp;diff=141</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=141"/>
		<updated>2021-07-22T14:51:25Z</updated>

		<summary type="html">&lt;p&gt;Orinuse: /* Getting Started */ Attempt to remove &amp;quot;Pages with syntax highlighting errors&amp;quot; category&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;&lt;br /&gt;
			&amp;quot;TeamNum&amp;quot; &amp;quot;2&amp;quot;&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;&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 prefixes (*_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 can be safely removed if necessary.&#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&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;/div&gt;</summary>
		<author><name>Orinuse</name></author>
	</entry>
</feed>