<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sc6w3y7e49.holdfastgame.com/index.php?action=history&amp;feed=atom&amp;title=Ryans_Melee_Drill_System</id>
	<title>Ryans Melee Drill System - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://sc6w3y7e49.holdfastgame.com/index.php?action=history&amp;feed=atom&amp;title=Ryans_Melee_Drill_System"/>
	<link rel="alternate" type="text/html" href="https://sc6w3y7e49.holdfastgame.com/index.php?title=Ryans_Melee_Drill_System&amp;action=history"/>
	<updated>2026-08-04T00:35:42Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://sc6w3y7e49.holdfastgame.com/index.php?title=Ryans_Melee_Drill_System&amp;diff=2752&amp;oldid=prev</id>
		<title>Xarkanoth: Created page with &quot;&lt;div class=&quot;hf-relpage hf-mds-page&quot;&gt; {{Release_page_header|title=Ryan&#039;s Melee Drill System}} &lt;div class=&quot;hf-relpage-body&quot;&gt; {{Release_TOC|content= &lt;div class=&quot;hf-toc-category&quot;&gt;On this page&lt;/div&gt; &lt;div&gt;Overview&lt;/div&gt; &lt;div&gt;Quick Start&lt;/div&gt; &lt;div&gt;Commands&lt;/div&gt; &lt;div&gt;Bot Subcommands&lt;/div&gt; &lt;div&gt;Configurables&lt;/div&gt; &lt;div&gt;Mod Config Variables&lt;/div&gt; &lt;div&gt;#example-config|...&quot;</title>
		<link rel="alternate" type="text/html" href="https://sc6w3y7e49.holdfastgame.com/index.php?title=Ryans_Melee_Drill_System&amp;diff=2752&amp;oldid=prev"/>
		<updated>2026-07-10T22:34:29Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;div class=&amp;quot;hf-relpage hf-mds-page&amp;quot;&amp;gt; {{Release_page_header|title=Ryan&amp;#039;s Melee Drill System}} &amp;lt;div class=&amp;quot;hf-relpage-body&amp;quot;&amp;gt; {{Release_TOC|content= &amp;lt;div class=&amp;quot;hf-toc-category&amp;quot;&amp;gt;On this page&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;&lt;a href=&quot;#overview&quot;&gt;Overview&lt;/a&gt;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;&lt;a href=&quot;#quick-start&quot;&gt;Quick Start&lt;/a&gt;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;&lt;a href=&quot;#commands&quot;&gt;Commands&lt;/a&gt;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;&lt;a href=&quot;#bot-subcommands&quot;&gt;Bot Subcommands&lt;/a&gt;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;&lt;a href=&quot;#configurables&quot;&gt;Configurables&lt;/a&gt;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;&lt;a href=&quot;#mod-config-variables&quot;&gt;Mod Config Variables&lt;/a&gt;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;#example-config|...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;hf-relpage hf-mds-page&amp;quot;&amp;gt;&lt;br /&gt;
{{Release_page_header|title=Ryan&amp;#039;s Melee Drill System}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-relpage-body&amp;quot;&amp;gt;&lt;br /&gt;
{{Release_TOC|content=&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-toc-category&amp;quot;&amp;gt;On this page&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#overview|Overview]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#quick-start|Quick Start]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#commands|Commands]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#bot-subcommands|Bot Subcommands]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#configurables|Configurables]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#mod-config-variables|Mod Config Variables]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#example-config|Example Config]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[#support|Support]]&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-relpage-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-hero&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-kicker&amp;quot;&amp;gt;Community Server Tool&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-title&amp;quot;&amp;gt;Run melee drills, arena fights, and bot lines from remote console commands.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-text&amp;quot;&amp;gt;Melee Drill System (MDS) is a utility mod by RyanLT for Holdfast: Nations At War servers. It adds commands and config variables for controlled melee arenas, X-v-X drills, group fights, open melee practice, and repeatable bot spawning.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-facts&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-fact&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Command Prefix&amp;lt;/span&amp;gt;All runtime commands use the &amp;lt;code&amp;gt;rc&amp;lt;/code&amp;gt; prefix and require admin login.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-fact&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Arena Required&amp;lt;/span&amp;gt;Most drills use a rectangular arena defined by two corner points.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-fact&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Config Support&amp;lt;/span&amp;gt;Use &amp;lt;code&amp;gt;mod_variable&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;mod_variable_local&amp;lt;/code&amp;gt; to configure MDS in rotations.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-fact&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Source&amp;lt;/span&amp;gt;[https://github.com/Ryannlt/RyansDrillScripts Ryan&amp;#039;s Drill Scripts on GitHub]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=overview&lt;br /&gt;
|title=Overview&lt;br /&gt;
|content=&lt;br /&gt;
MDS tracks round and player state to run custom melee drills and utility commands. Server admins can use live &amp;lt;code&amp;gt;rc&amp;lt;/code&amp;gt; commands during a session or add modded config variables to server rotation files for repeatable setups.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-note&amp;quot;&amp;gt;Commands are case-insensitive. Arguments in angle brackets are required, while arguments in square brackets are optional.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-label&amp;quot;&amp;gt;Command Quick Reference&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;hf-code&amp;quot;&amp;gt;rc set ArenaCorner1&lt;br /&gt;
rc set ArenaCorner2&lt;br /&gt;
rc 3v3&lt;br /&gt;
rc groupfight&lt;br /&gt;
rc openmelee 2 7&lt;br /&gt;
rc bot spawn 5 French ArmyLineInfantry&lt;br /&gt;
rc summonLine 10 French ArmyLineInfantry&lt;br /&gt;
rc spawnLine -20 30 90 10 French ArmyLineInfantry&lt;br /&gt;
rc get xvxDistance&lt;br /&gt;
rc set lineBotCount 10&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=quick-start&lt;br /&gt;
|title=Quick Start&lt;br /&gt;
|content=&lt;br /&gt;
Set up an arena first, then run one of the drill commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-step-grid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-step&amp;quot;&amp;gt;&amp;lt;span&amp;gt;1. Set Arena Corners&amp;lt;/span&amp;gt;&amp;lt;pre class=&amp;quot;hf-code&amp;quot;&amp;gt;rc set ArenaCorner1&lt;br /&gt;
rc set ArenaCorner2&amp;lt;/pre&amp;gt;Use your current position, or pass coordinates with &amp;lt;code&amp;gt;rc set ArenaCorner1 [x,z]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rc set ArenaCorner2 [x,z]&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-step&amp;quot;&amp;gt;&amp;lt;span&amp;gt;2. Run A Drill&amp;lt;/span&amp;gt;&amp;lt;pre class=&amp;quot;hf-code&amp;quot;&amp;gt;rc 3v3&lt;br /&gt;
rc groupfight&lt;br /&gt;
rc openmelee 2 7&amp;lt;/pre&amp;gt;Start a structured X-v-X, a group fight, or random open melee spawns inside the arena.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-step&amp;quot;&amp;gt;&amp;lt;span&amp;gt;3. Spawn Bots&amp;lt;/span&amp;gt;&amp;lt;pre class=&amp;quot;hf-code&amp;quot;&amp;gt;rc bot spawn 5 French ArmyLineInfantry&lt;br /&gt;
rc summonLine 5&amp;lt;/pre&amp;gt;Add drill targets, lines, or replacement bots using the bot commands.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=commands&lt;br /&gt;
|title=Commands&lt;br /&gt;
|content=&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable hf-mds-command-table&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:22%;&amp;quot; class=&amp;quot;code&amp;quot; {{!}} Command&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:32%;&amp;quot; {{!}} Usage&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; {{!}} Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;xvx&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc xvx &amp;amp;lt;attacking:int&amp;amp;gt; &amp;amp;lt;defending:int&amp;amp;gt; [strategy] [distance:float] [spacing:float] [orientation]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Spawns an X-v-X match inside the arena. Shorthand commands such as &amp;lt;code&amp;gt;rc 3v3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rc 20v1&amp;lt;/code&amp;gt; are supported. Defaults use &amp;lt;code&amp;gt;xvxStrategy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;xvxDistance&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;xvxSpacing&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;groupfight&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc groupfight [strategy] [distance:float] [spacing:float] [orientation]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Spawns both teams in lines for a group fight inside the arena. Defaults use &amp;lt;code&amp;gt;groupfightStrategy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;groupfightDistance&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;groupfightSpacing&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;openmelee&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc openmelee [spacing:float] [offset:float]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Spawns players randomly around the arena for open melee practice. Defaults use &amp;lt;code&amp;gt;openMeleeSpacing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;openMeleeOffset&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;bot&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc bot &amp;amp;lt;subcommand&amp;amp;gt; [args]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Central command for spawning, summoning, listing, configuring, and removing bots.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;summonLine&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc summonLine [count] [faction] [class] [ai] [death] [name [regtag [uniformId]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Spawns a shoulder-to-shoulder line of bots centered on your position and facing your direction. Defaults can use the caller&amp;#039;s faction and class.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;spawnLine&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc spawnLine &amp;amp;lt;x&amp;amp;gt; &amp;amp;lt;z&amp;amp;gt; &amp;amp;lt;rotation&amp;amp;gt; [count] [faction] [class] [ai] [death] [name [regtag [uniformId]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Spawns a bot line at a specific world position and rotation. Faction can be a faction name or &amp;lt;code&amp;gt;attacking&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;defending&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;get&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc get &amp;amp;lt;Configurable&amp;amp;gt; [additional arguments]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Reads MDS configurables and mod data at runtime. Additional shortcuts include &amp;lt;code&amp;gt;Player &amp;amp;lt;playerId&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Players &amp;amp;lt;faction&amp;amp;gt;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;Round&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc set &amp;amp;lt;Configurable&amp;amp;gt; &amp;amp;lt;Value&amp;amp;gt; [additional arguments]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Sets MDS configurables at runtime, such as &amp;lt;code&amp;gt;xvxDistance&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lineBotCount&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;lineSpacing&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-label&amp;quot;&amp;gt;Examples&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;hf-code&amp;quot;&amp;gt;rc xvx 3 3 next 4 1 northsouth&lt;br /&gt;
rc groupfight random 25 2 180&lt;br /&gt;
rc openmelee 2 7&lt;br /&gt;
rc spawnLine -20 30 90 10 French ArmyLineInfantry&lt;br /&gt;
rc get Players all&lt;br /&gt;
rc set xvxDistance 5&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=bot-subcommands&lt;br /&gt;
|title=Bot Subcommands&lt;br /&gt;
|content=&lt;br /&gt;
All bot subcommands are accessed through &amp;lt;code&amp;gt;rc bot &amp;amp;lt;subcommand&amp;amp;gt; [args]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable hf-mds-command-table&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20%;&amp;quot; class=&amp;quot;code&amp;quot; {{!}} Subcommand&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:38%;&amp;quot; {{!}} Usage&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; {{!}} Description&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;spawn&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc bot spawn [count] [faction class] [ai] [death] [name [regtag [uniformId]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Spawns one or more specific bots at random server spawn points. Faction and class default to the caller if omitted.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;spawnRandom&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc bot spawnRandom [count]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Spawns one or more bots with fully random faction and class.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;summon&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc bot summon [faction] [class] [ai] [death] [name [regtag [uniformId]]]&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Spawns a single bot at your position and facing your direction.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;setBotAi&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc bot setBotAi &amp;amp;lt;target&amp;amp;gt; &amp;amp;lt;ai&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Sets AI behavior for tracked bots. Targets include &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attacking&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;defending&amp;lt;/code&amp;gt;, a faction name, or a player ID.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;setBotDeathPolicy&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc bot setBotDeathPolicy &amp;amp;lt;target&amp;amp;gt; &amp;amp;lt;policy&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Sets bot death handling. Policies are &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Kick&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;Replace&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc bot remove &amp;amp;lt;target&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Kicks tracked bots immediately. Targets include &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;attacking&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;defending&amp;lt;/code&amp;gt;, a faction name, or a player ID.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;rc bot list&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Prints tracked bots to private messages, including player ID, faction, class, AI type, death policy, and spawn status.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-label&amp;quot;&amp;gt;Bot Examples&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;hf-code&amp;quot;&amp;gt;rc bot spawn&lt;br /&gt;
rc bot spawn 5&lt;br /&gt;
rc bot spawn Attacking ArmyLineInfantry&lt;br /&gt;
rc bot spawn 3 French ArmyLineInfantry None Replace&lt;br /&gt;
rc bot summon French ArmyLineInfantry&lt;br /&gt;
rc bot setBotDeathPolicy all Kick&lt;br /&gt;
rc bot remove all&lt;br /&gt;
rc bot list&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=configurables&lt;br /&gt;
|title=Configurables&lt;br /&gt;
|content=&lt;br /&gt;
Defaults in Ryan&amp;#039;s README are tuned for Palisade Arena A1.&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable hf-mds-config-table&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:24%;&amp;quot; {{!}} Configurable&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:24%;&amp;quot; {{!}} Arguments&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:16%;&amp;quot; {{!}} Default&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; {{!}} Purpose&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;ArenaCorner1&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;x z&amp;lt;/code&amp;gt; floats, or none&lt;br /&gt;
{{!}} Not set&lt;br /&gt;
{{!}} First corner of the arena play area. If no coordinates are passed, the command uses the admin&amp;#039;s position.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;ArenaCorner2&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;x z&amp;lt;/code&amp;gt; floats, or none&lt;br /&gt;
{{!}} Not set&lt;br /&gt;
{{!}} Second corner of the arena play area. If no coordinates are passed, the command uses the admin&amp;#039;s position.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;xvxDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Distance float&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Distance between attacking and defending faction lines for &amp;lt;code&amp;gt;xvx&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;xvxSpacing&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Distance float&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Space between each player on a line for &amp;lt;code&amp;gt;xvx&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;xvxStrategy&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Next&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Any&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Repeat&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Player selection strategy for &amp;lt;code&amp;gt;xvx&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;groupfightDistance&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Distance float&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Distance between attacking and defending faction lines for &amp;lt;code&amp;gt;groupfight&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;groupfightSpacing&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Distance float&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Space between each player on a line for &amp;lt;code&amp;gt;groupfight&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;groupfightStrategy&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Repeat&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Player selection strategy for &amp;lt;code&amp;gt;groupfight&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;openMeleeSpacing&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Distance float&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Minimum distance players can spawn from each other during &amp;lt;code&amp;gt;openmelee&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;openMeleeOffset&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Distance float&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Minimum spawn distance from arena edges during &amp;lt;code&amp;gt;openmelee&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;Orientation&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Degree integer, or &amp;lt;code&amp;gt;NorthSouth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EastWest&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SouthNorth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;WestEast&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;90&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Direction two lines spawn facing each other.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;botDefaultAi&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Default AI behavior assigned to bots when not specified inline.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;botDefaultDeathPolicy&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Kick&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;Replace&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;Kick&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Default death policy assigned to bots when not specified inline.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;botKickDelay&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Seconds float&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Delay after bot death before kicking, allowing the kill to register.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;botReplaceDelay&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Seconds float&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Delay after kicking a bot before re-spawning it.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;lineBotCount&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Count integer greater than 0&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Default number of bots used by &amp;lt;code&amp;gt;summonLine&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;spawnLine&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;lineSpacing&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Meters float greater than 0&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;0.55&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Lateral spacing between bots in a line.&lt;br /&gt;
{{!}}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=mod-config-variables&lt;br /&gt;
|title=Mod Config Variables&lt;br /&gt;
|content=&lt;br /&gt;
Use global &amp;lt;code&amp;gt;mod_variable&amp;lt;/code&amp;gt; or per-map &amp;lt;code&amp;gt;mod_variable_local&amp;lt;/code&amp;gt; entries to configure MDS through rotation configs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;hf-code&amp;quot;&amp;gt;mod_variable MDS:&amp;amp;lt;ConfigVariable&amp;amp;gt;:&amp;amp;lt;Argument(s)&amp;amp;gt;&lt;br /&gt;
mod_variable_local MDS:&amp;amp;lt;ConfigVariable&amp;amp;gt;:&amp;amp;lt;Argument(s)&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{{!}} class=&amp;quot;wikitable hf-mds-config-table&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:26%;&amp;quot; {{!}} Area&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:28%;&amp;quot; {{!}} Variable&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; {{!}} Accepted Arguments&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} General&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;EnableDebugLogging&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;EnableAdminOnly&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} Arena&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;SetArena&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;AddArena&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetArenaCorner1&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetArenaCorner2&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;(x,z),(x,z)&amp;lt;/code&amp;gt; for arena pairs, or &amp;lt;code&amp;gt;x,z&amp;lt;/code&amp;gt; for individual corners.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} Drill&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;SetXvXDistance&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetXvXSpacing&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetXvXStrategy&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetGroupfightDistance&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetGroupfightSpacing&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetGroupfightStrategy&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetOpenMeleeSpacing&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetOpenMeleeOffset&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetOrientation&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Distance floats, strategy options, or orientation values depending on the setting.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} Bot&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;SetBotDefaultAi&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetBotDefaultDeathPolicy&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetBotKickDelay&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetBotReplaceDelay&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;None&amp;lt;/code&amp;gt;, death policies, or delay values in seconds.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} Line&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;SetLineBotCount&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SetLineSpacing&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;SpawnLine&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} Count, spacing, or &amp;lt;code&amp;gt;x,z,rotation[,count][,faction][,class][,ai][,death][,name[,regtag[,uniformId]]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-note&amp;quot;&amp;gt;&amp;lt;code&amp;gt;MDS:SpawnLine&amp;lt;/code&amp;gt; can be specified multiple times to schedule multiple bot lines when a round begins. &amp;lt;code&amp;gt;attacking&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;defending&amp;lt;/code&amp;gt; resolve against the live round, so the same config can work across maps.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hf-mds-label&amp;quot;&amp;gt;SpawnLine Examples&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;hf-code&amp;quot;&amp;gt;mod_variable_local MDS:SpawnLine:-20,30,90&lt;br /&gt;
mod_variable_local MDS:SpawnLine:-20,30,90,French&lt;br /&gt;
mod_variable_local MDS:SpawnLine:20,30,270,10,defending,ArmyLineInfantry,None,Replace,Bot,None,1&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=example-config&lt;br /&gt;
|title=Example Config&lt;br /&gt;
|content=&lt;br /&gt;
&amp;lt;pre class=&amp;quot;hf-code&amp;quot;&amp;gt;# Global&lt;br /&gt;
mod_variable MDS:EnableDebugLogging:true&lt;br /&gt;
mod_variable MDS:EnableAdminOnly:true&lt;br /&gt;
&lt;br /&gt;
# Map Rotation (per-map overrides)&lt;br /&gt;
mod_variable_local MDS:SetArena:(-40.99,42.69),(-3.35,5.38)&lt;br /&gt;
mod_variable_local MDS:SetXvXDistance:20&lt;br /&gt;
mod_variable_local MDS:SetXvXSpacing:2&lt;br /&gt;
mod_variable_local MDS:SetXvXStrategy:Random&lt;br /&gt;
mod_variable_local MDS:SetGroupfightDistance:25&lt;br /&gt;
mod_variable_local MDS:SetGroupfightSpacing:2&lt;br /&gt;
mod_variable_local MDS:SetGroupfightStrategy:Random&lt;br /&gt;
mod_variable_local MDS:SetOpenMeleeSpacing:1.5&lt;br /&gt;
mod_variable_local MDS:SetOpenMeleeOffset:7&lt;br /&gt;
mod_variable_local MDS:SetOrientation:NorthSouth&lt;br /&gt;
&lt;br /&gt;
# Bots&lt;br /&gt;
mod_variable_local MDS:SetBotDefaultDeathPolicy:Replace&lt;br /&gt;
mod_variable_local MDS:SetBotKickDelay:2&lt;br /&gt;
mod_variable_local MDS:SetBotReplaceDelay:0.5&lt;br /&gt;
mod_variable_local MDS:SpawnLine:-20,30,90,10,attacking,ArmyLineInfantry&lt;br /&gt;
mod_variable_local MDS:SpawnLine:20,30,270,10,defending,ArmyLineInfantry,None,Replace,Bot,None,1&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Release_section&lt;br /&gt;
|id=support&lt;br /&gt;
|title=Support&lt;br /&gt;
|content=&lt;br /&gt;
For feedback, bug reports, and the latest upstream documentation, see [https://github.com/Ryannlt/RyansDrillScripts Ryan&amp;#039;s Drill Scripts on GitHub].&lt;br /&gt;
&lt;br /&gt;
Future features listed in the source README include automatic repeating drills, modded UI, multi-arena support, and expanded bot AI such as autostab, autoblock, and 1v1 bot behavior.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xarkanoth</name></author>
	</entry>
</feed>