Removed voice attack. Will redo that.

This commit is contained in:
iTracerFacer 2025-12-01 09:50:41 -06:00
parent 19ccac1a69
commit e61c1de93f
9 changed files with 0 additions and 18955 deletions

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-16"?>
<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>DCS CTLD Menu Navigation</Name>
<Id>a8f7c9d2-4e6b-4c1a-9f3e-2a8d7c6b5e4f</Id>
<Commands>
<Command>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0d</Id>
<CommandString>load troops</CommandString>
<ActionSequence>
<PressKey>
<KeyCodes>{RALT}\{F2}{F1}{F1}</KeyCodes>
</PressKey>
</ActionSequence>
</Command>
<Command>
<Id>4b8c9d0e-1f2a-3b4c-5d6e-7f8a9b0c1d2e</Id>
<CommandString>show status;ctld status;check status</CommandString>
<ActionSequence>
<PressKey>
<KeyCodes>{RALT}\{F5}{F2}</KeyCodes>
</PressKey>
</ActionSequence>
</Command>
</Commands>
</Profile>

View File

@ -1,266 +0,0 @@
# DCS CTLD Voice Attack Profile Guide
## Overview
This Voice Attack profile provides voice command navigation for the Moose CTLD (Combat Troop and Logistics Deployment) menu system in DCS World. All commands use direct navigation - saying the command automatically navigates through the entire F10 menu path.
## Installation
### 1. Import the Profile
1. Open Voice Attack
2. Click the wrench icon (Edit Profile)
3. Click "Import Profile"
4. Navigate to `CTLD_VoiceAttack_Profile.xml`
5. Select the profile and click OK
### 2. DCS Key Binding (No Configuration Needed!)
The profile uses **Right Alt + Backslash** (`RAlt + \`) which works in all situations:
- **On the ground:** Backslash `\` alone opens F10, but `RAlt + \` also works
- **In the air:** Only `RAlt + \` works (backslash alone is disabled)
The profile uses `RAlt + \` for all commands, ensuring compatibility both on ground and in air.
**No DCS configuration changes needed** - this is the default binding!
## F10 Key Binding
### How DCS F10 Menu Works
- **On ground:** Backslash `\` key opens F10 menu
- **In the air:** `\` is disabled, must use `Right Alt + \`
### Voice Attack Profile
All commands use **`RAlt + \`** which works in both situations:
```
"load troops" → RAlt + \ + F2 + F1 + F1
"build here" → RAlt + \ + F2 + F2 + F1
"vectors to pickup" → RAlt + \ + F4 + F2
```
This ensures voice commands work whether you're on the ground or flying!
## Command Reference
### OPERATIONS: Troop Transport
| Voice Command | Action | Menu Path |
|--------------|--------|-----------|
| "load troops" | Load troops at supply zone | Operations → Troop Transport → Load Troops |
| "deploy troops"<br>"deploy hold"<br>"deploy defend" | Deploy troops in defensive posture | Operations → Troop Transport → Deploy [Hold Position] |
| "deploy attack"<br>"troops attack" | Deploy troops with attack orders | Operations → Troop Transport → Deploy [Attack] |
### OPERATIONS: Build
| Voice Command | Action | Menu Path |
|--------------|--------|-----------|
| "build here"<br>"build at position" | Build collected crates at location | Operations → Build → Build Here |
| "refresh buildable list"<br>"refresh build list" | Update list of buildable items | Operations → Build → Refresh Buildable List |
### OPERATIONS: MEDEVAC (if enabled)
| Voice Command | Action | Menu Path |
|--------------|--------|-----------|
| "list medevac"<br>"active medevac requests" | Show all active MEDEVAC missions | Operations → MEDEVAC → List Active MEDEVAC Requests |
| "nearest medevac location"<br>"medevac location" | Show nearest MEDEVAC crew location | Operations → MEDEVAC → Nearest MEDEVAC Location |
| "salvage points"<br>"check salvage" | Display coalition salvage points | Operations → MEDEVAC → Coalition Salvage Points |
| "vectors to medevac"<br>"medevac vectors" | Get bearing/range to nearest crew | Operations → MEDEVAC → Vectors to Nearest MEDEVAC |
| "mash locations"<br>"show mash" | List all MASH zones | Operations → MEDEVAC → MASH Locations |
| "smoke crew locations"<br>"mark crews" | Pop smoke at MEDEVAC crew positions | Operations → MEDEVAC → Pop Smoke at Crew Locations |
| "smoke mash zones"<br>"mark mash" | Pop smoke at MASH delivery zones | Operations → MEDEVAC → Pop Smoke at MASH Zones |
### LOGISTICS: Crate Management
| Voice Command | Action | Menu Path |
|--------------|--------|-----------|
| "drop one crate"<br>"drop crate" | Drop single loaded crate | Logistics → Crate Management → Drop One Loaded Crate |
| "drop all crates"<br>"drop cargo" | Drop all loaded crates | Logistics → Crate Management → Drop All Loaded Crates |
| "mark nearest crate"<br>"smoke crate"<br>"remark crate" | Re-mark closest crate with smoke | Logistics → Crate Management → Re-mark Nearest Crate |
| "show inventory"<br>"check inventory"<br>"zone inventory" | Display zone inventory | Logistics → Show Inventory at Nearest Zone |
### FIELD TOOLS
| Voice Command | Action | Menu Path |
|--------------|--------|-----------|
| "create drop zone"<br>"mark drop zone" | Create new drop zone at position | Field Tools → Create Drop Zone (AO) |
| "smoke green"<br>"green smoke" | Pop green smoke at location | Field Tools → Smoke My Location → Green |
| "smoke red"<br>"red smoke" | Pop red smoke at location | Field Tools → Smoke My Location → Red |
| "smoke white"<br>"white smoke" | Pop white smoke at location | Field Tools → Smoke My Location → White |
| "smoke orange"<br>"orange smoke" | Pop orange smoke at location | Field Tools → Smoke My Location → Orange |
| "smoke blue"<br>"blue smoke" | Pop blue smoke at location | Field Tools → Smoke My Location → Blue |
### NAVIGATION
| Voice Command | Action | Menu Path |
|--------------|--------|-----------|
| "vectors to crate"<br>"find crate"<br>"nearest crate" | Get bearing/range to nearest crate | Navigation → Request Vectors to Nearest Crate |
| "vectors to pickup"<br>"find pickup zone"<br>"nearest pickup" | Get bearing/range to pickup zone | Navigation → Vectors to Nearest Pickup Zone |
| "smoke nearest zone"<br>"mark nearest zone" | Smoke closest zone (any type) | Navigation → Smoke Nearest Zone |
| "smoke all zones"<br>"mark all zones"<br>"smoke nearby zones" | Smoke all zones within 5km | Navigation → Smoke All Nearby Zones (5km) |
| "vectors to mash"<br>"find mash"<br>"nearest mash" | Get bearing/range to MASH | Navigation → Vectors to Nearest MASH |
| "enable hover coach"<br>"hover coach on" | Enable hover pickup guidance | Navigation → Hover Coach: Enable |
| "disable hover coach"<br>"hover coach off" | Disable hover pickup guidance | Navigation → Hover Coach: Disable |
### STATUS & ADMIN
| Voice Command | Action | Menu Path |
|--------------|--------|-----------|
| "show status"<br>"ctld status"<br>"check status" | Display CTLD system status | Admin/Help → Show CTLD Status |
| "draw zones on map"<br>"show zones"<br>"mark zones on map" | Draw all zones on F10 map | Admin/Help → Draw CTLD Zones on Map |
| "clear map drawings"<br>"clear map marks"<br>"remove zone marks" | Remove zone drawings from map | Admin/Help → Clear CTLD Map Drawings |
| "medevac statistics"<br>"medevac stats"<br>"show medevac stats" | Display MEDEVAC statistics | Admin/Help → Show MEDEVAC Statistics |
### QUICK ACCESS COMMANDS
These are alternate phrases for commonly used functions:
| Voice Command | Equivalent To |
|--------------|---------------|
| "quick pickup"<br>"pickup mode" | "load troops" |
| "quick deploy"<br>"fast deploy" | "deploy troops" |
| "quick build"<br>"fast build" | "build here" |
## Usage Tips
### 1. Voice Recognition Accuracy
- Speak clearly and at normal volume
- Pause briefly between words for best recognition
- If a command doesn't work, try an alternate phrase
- Train Voice Attack with your voice for better accuracy
### 2. Menu Navigation Timing
- Commands execute instantly with no delays
- DCS menu system is fast - no need to wait between commands
- If you're in a different menu, the command will navigate from wherever you are
### 3. Common Workflows
**Troop Transport Mission:**
1. "vectors to pickup" (find supply zone)
2. "load troops" (board passengers)
3. Fly to destination
4. "deploy hold" or "deploy attack" (unload with orders)
**Crate Logistics Mission:**
1. "vectors to pickup" (find supply zone)
2. Use manual F10 menu to request specific crates
3. "vectors to crate" (find spawned crate)
4. Pick up crate
5. "build here" (deploy at destination)
**MEDEVAC Mission:**
1. "list medevac" (check active requests)
2. "vectors to medevac" (find nearest crew)
3. Pick up crew (auto-load when landed nearby)
4. "vectors to mash" (find hospital)
5. Deploy at MASH (auto-unload)
6. "salvage points" (check rewards)
**Reconnaissance:**
1. "smoke all zones" (mark nearby objectives)
2. "draw zones on map" (see all zones on F10)
3. "vectors to pickup" (return to base)
4. "clear map drawings" (clean up map)
### 4. Combat Situations
Voice commands work best when:
- ✓ Flying stable (not in combat maneuvers)
- ✓ Hands free for flight controls
- ✓ Clear of radio chatter/background noise
- ✗ Not recommended during combat or emergency procedures
### 5. Request Crate Limitation
**Note:** The profile does NOT include voice commands for requesting specific crate types because:
- There are dozens of crate types (vehicles, SAMs, FOBs, etc.)
- Categories vary by mission configuration
- Manual F10 navigation (F2 → Logistics → Request Crate) is more practical
Use voice commands for navigation/status, manual F10 for crate requests.
## Troubleshooting
### Command Not Recognized
1. Check Voice Attack is running and profile is active
2. Train Voice Attack with your voice (Tools → Train Profile)
3. Try alternate phrases for the command
4. Verify microphone input levels
### Wrong Menu Opens
1. Verify DCS is using default key bindings (RAlt + \ for F10)
2. Check that backslash key isn't rebound in DCS controls
3. Try manual RAlt + \ to verify F10 menu opens
### Command Works But Menu Doesn't Navigate
1. Verify DCS is the active window
2. Check F10 menu is not already open
3. Ensure no other key bindings conflict with F-keys
4. Try manual navigation to verify menu structure matches profile
### MEDEVAC Commands Not Available
- These commands only work if MEDEVAC system is enabled in the mission
- Check mission briefing or use "show status" to verify MEDEVAC is active
## Profile Customization
### Adding New Commands
1. Open Voice Attack profile editor
2. Click "New Command"
3. Set "When I say" to your phrase
4. Add Action: "Send keys to active window"
5. Enter key sequence (e.g., `{RALT}{F2}{F1}{F1}`)
6. Save command
### Modifying Existing Commands
1. Find command in list
2. Click "Edit"
3. Modify "When I say" phrases
4. Update key sequence if menu structure changed
5. Save changes
### Key Sequence Format
- `{RALT}` = Right Alt key
- `\\` = Backslash key (escaped in XML)
- `{F1}` through `{F9}` = Function keys
- Example: `{RALT}\\{F2}{F3}{F1}` = RAlt, \, F2, F3, F1 in sequence
## Menu Structure Reference
```
CTLD (Root - F2)
├── F1: Operations
│ ├── F1: Troop Transport
│ ├── F2: Build
│ └── F3: MEDEVAC
├── F2: Logistics
│ ├── F1: Request Crate
│ ├── F2: Recipe Info
│ ├── F3: Crate Management
│ └── F4: Show Inventory
├── F3: Field Tools
├── F4: Navigation
└── F5: Admin/Help
```
See full menu tree diagram in main documentation.
## Version Information
- **Profile Version:** 1.0
- **CTLD Version:** 0.1.0-alpha (Moose_CTLD_Pure)
- **Voice Attack Version:** 1.8+ (tested on 1.10)
- **DCS Version:** Compatible with current stable/open beta
## Support & Updates
If the menu structure changes in future CTLD updates:
1. Check `Moose_CTLD.lua` function `BuildGroupMenus()` (around line 2616)
2. Update key sequences in Voice Attack profile
3. Test each command to verify navigation
## Credits
- **CTLD System:** Moose_CTLD_Pure custom implementation
- **Voice Attack:** VoiceAttack by VoiceAttack.com
- **DCS World:** Eagle Dynamics
---
**Happy Flying! 🚁**

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,587 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>CTLD VoiceAttack Profile &mdash; Command Reference</title>
<style>
:root {
color-scheme: light dark;
--bg: #0f141a;
--bg-alt: #162029;
--fg: #f0f3f6;
--fg-muted: #c8d2dd;
--accent: #2f8dda;
--accent-soft: rgba(47, 141, 218, 0.14);
--border: rgba(240, 243, 246, 0.14);
--border-strong: rgba(240, 243, 246, 0.28);
}
body {
margin: 0;
font-family: "Segoe UI", "Roboto", sans-serif;
font-size: 15px;
line-height: 1.6;
background: var(--bg);
color: var(--fg);
}
main {
margin: 0 auto;
padding: 48px 32px 64px;
max-width: 1180px;
}
header {
position: sticky;
top: 0;
margin: -48px -32px 36px;
padding: 36px 32px 24px;
background: linear-gradient(160deg, rgba(47, 141, 218, 0.35), rgba(15, 20, 26, 0.0));
border-bottom: 1px solid var(--border);
backdrop-filter: blur(10px);
}
h1 {
margin: 0 0 4px;
font-size: 30px;
letter-spacing: 0.02em;
}
h2 {
margin-top: 44px;
margin-bottom: 12px;
font-size: 22px;
color: var(--accent);
}
p.lead {
margin: 8px 0 16px;
color: var(--fg-muted);
max-width: 880px;
}
.callout {
background: var(--bg-alt);
border: 1px solid var(--border);
border-radius: 12px;
padding: 18px 22px;
margin-bottom: 28px;
box-shadow: 0 16px 32px rgba(0, 0, 0, 0.22);
}
.callout strong {
color: var(--accent);
}
table {
width: 100%;
border-collapse: collapse;
background: var(--bg-alt);
border: 1px solid var(--border);
border-radius: 12px;
overflow: hidden;
box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}
thead {
background: rgba(47, 141, 218, 0.18);
color: var(--fg);
text-transform: uppercase;
letter-spacing: 0.05em;
font-size: 12px;
}
th, td {
padding: 14px 18px;
vertical-align: top;
border-bottom: 1px solid var(--border);
}
tbody tr:last-child td {
border-bottom: none;
}
tbody tr:nth-child(odd) {
background: rgba(255, 255, 255, 0.02);
}
code {
font-family: "Cascadia Code", "Fira Code", monospace;
font-size: 13px;
background: rgba(255, 255, 255, 0.04);
padding: 2px 6px;
border-radius: 6px;
border: 1px solid var(--border);
}
ul {
padding-left: 22px;
margin: 0;
}
.phrases span {
display: inline-block;
background: var(--accent-soft);
color: var(--accent);
border: 1px solid rgba(47, 141, 218, 0.35);
border-radius: 999px;
padding: 4px 12px;
margin: 2px 6px 2px 0;
font-size: 13px;
}
footer {
margin-top: 64px;
font-size: 13px;
color: var(--fg-muted);
border-top: 1px solid var(--border);
padding-top: 18px;
}
@media (max-width: 900px) {
main {
padding: 36px 18px 48px;
}
header {
margin: -36px -18px 24px;
padding: 28px 18px 18px;
}
table, thead, tbody, th, td, tr {
display: block;
}
thead {
display: none;
}
tbody tr {
margin-bottom: 18px;
border: 1px solid var(--border);
border-radius: 10px;
overflow: hidden;
}
td {
border: none;
border-bottom: 1px solid var(--border);
}
td::before {
content: attr(data-label);
display: block;
font-weight: 600;
margin-bottom: 6px;
color: var(--accent);
text-transform: uppercase;
letter-spacing: 0.05em;
font-size: 11px;
}
tbody tr:last-child td {
border-bottom: none;
}
}
</style>
</head>
<body>
<main>
<header>
<h1>CTLD VoiceAttack Command Reference</h1>
<p class="lead">All phrases below assume the VoiceAttack profile sends <code>Right&nbsp;Alt&nbsp;+&nbsp;Backslash</code> to open the radio menu, then <code>F10 &gt; F2</code> to enter the CTLD root. Speak any phrase shown to run the navigation sequence automatically.</p>
</header>
<section class="callout">
<strong>Pro Tip:</strong> Fine-tune the pause durations inside VoiceAttack if your DCS instance needs more/less time for menus to populate. You can also add your own synonyms by editing the command string list for any entry.
</section>
<h2>Operations &mdash; Troop Transport</h2>
<table>
<thead>
<tr>
<th scope="col">Phrases</th>
<th scope="col">Action</th>
<th scope="col">Menu Path</th>
</tr>
</thead>
<tbody>
<tr>
<td class="phrases" data-label="Phrases">
<span>load troops</span>
<span>load infantry</span>
</td>
<td data-label="Action">Load default troop package.</td>
<td data-label="Menu Path">Operations → Troop Transport → Load Troops</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>load assault squad</span>
<span>load assault team</span>
</td>
<td data-label="Action">Load Assault Squad preset (AS).</td>
<td data-label="Menu Path">Operations → Troop Transport → Load Troops (Type) → Assault Squad</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>load manpads team</span>
<span>load aa squad</span>
</td>
<td data-label="Action">Load MANPADS Team preset (AA).</td>
<td data-label="Menu Path">Operations → Troop Transport → Load Troops (Type) → MANPADS Team</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>load anti tank team</span>
<span>load at squad</span>
</td>
<td data-label="Action">Load Anti-Tank Team preset (AT).</td>
<td data-label="Menu Path">Operations → Troop Transport → Load Troops (Type) → AT Team</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>load mortar team</span>
<span>load mortar squad</span>
</td>
<td data-label="Action">Load Mortar Team preset (AR).</td>
<td data-label="Menu Path">Operations → Troop Transport → Load Troops (Type) → Mortar Team</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>deploy troops hold</span>
<span>deploy hold</span>
</td>
<td data-label="Action">Unload troops with Hold/Defend behavior.</td>
<td data-label="Menu Path">Operations → Troop Transport → Deploy [Hold Position]</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>deploy troops attack</span>
<span>deploy attack</span>
</td>
<td data-label="Action">Unload troops with Attack/Advance behavior.</td>
<td data-label="Menu Path">Operations → Troop Transport → Deploy [Attack]</td>
</tr>
</tbody>
</table>
<h2>Operations &mdash; Build</h2>
<table>
<thead>
<tr>
<th scope="col">Phrases</th>
<th scope="col">Action</th>
<th scope="col">Menu Path</th>
</tr>
</thead>
<tbody>
<tr>
<td class="phrases" data-label="Phrases">
<span>build here</span>
<span>build at position</span>
</td>
<td data-label="Action">Build using nearby crates (with confirm/cooldown rules).</td>
<td data-label="Menu Path">Operations → Build → Build Here</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>open build advanced</span>
<span>build advanced menu</span>
</td>
<td data-label="Action">Open the dynamic build menu.</td>
<td data-label="Menu Path">Operations → Build → Build (Advanced)</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>open buildable near you</span>
<span>show buildable list</span>
</td>
<td data-label="Action">Focus the “Buildable Near You” submenu.</td>
<td data-label="Menu Path">Operations → Build → Build (Advanced) → Buildable Near You</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>refresh build list</span>
<span>refresh buildable list</span>
</td>
<td data-label="Action">Rescan crate availability for builds.</td>
<td data-label="Menu Path">Operations → Build → Refresh Buildable List</td>
</tr>
</tbody>
</table>
<h2>Operations &mdash; MEDEVAC</h2>
<table>
<thead>
<tr>
<th scope="col">Phrases</th>
<th scope="col">Action</th>
<th scope="col">Menu Path</th>
</tr>
</thead>
<tbody>
<tr>
<td class="phrases" data-label="Phrases">
<span>list medevac requests</span>
<span>active medevac</span>
</td>
<td data-label="Action">Show all active MEDEVAC crews.</td>
<td data-label="Menu Path">Operations → MEDEVAC → List Active MEDEVAC Requests</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>nearest medevac location</span>
<span>medevac location</span>
</td>
<td data-label="Action">Display nearest crew position.</td>
<td data-label="Menu Path">Operations → MEDEVAC → Nearest MEDEVAC Location</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>check salvage points</span>
<span>show salvage</span>
</td>
<td data-label="Action">Report coalition salvage totals.</td>
<td data-label="Menu Path">Operations → MEDEVAC → Coalition Salvage Points</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>vectors to medevac</span>
<span>medevac vectors</span>
</td>
<td data-label="Action">Provide bearing/range to nearest crew.</td>
<td data-label="Menu Path">Operations → MEDEVAC → Vectors to Nearest MEDEVAC</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>show mash locations</span>
<span>list mash</span>
</td>
<td data-label="Action">List all MASH delivery zones.</td>
<td data-label="Menu Path">Operations → MEDEVAC → MASH Locations</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>smoke crew locations</span>
<span>mark crews</span>
</td>
<td data-label="Action">Drop smoke on every active crew.</td>
<td data-label="Menu Path">Operations → MEDEVAC → Pop Smoke at Crew Locations</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>smoke mash zones</span>
<span>mark mash</span>
</td>
<td data-label="Action">Drop smoke on all MASH zones.</td>
<td data-label="Menu Path">Operations → MEDEVAC → Pop Smoke at MASH Zones</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>medevac guide</span>
<span>salvage guide</span>
</td>
<td data-label="Action">Show in-game MEDEVAC/salvage quick reference.</td>
<td data-label="Menu Path">Operations → MEDEVAC → MASH &amp; Salvage System Guide</td>
</tr>
</tbody>
</table>
<h2>Logistics</h2>
<table>
<thead>
<tr>
<th scope="col">Phrases</th>
<th scope="col">Action</th>
<th scope="col">Menu Path</th>
</tr>
</thead>
<tbody>
<tr>
<td class="phrases" data-label="Phrases">
<span>open request crate</span>
<span>request crate menu</span>
</td>
<td data-label="Action">Open the crate request submenu (choose item manually).</td>
<td data-label="Menu Path">Logistics → Request Crate</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>open recipe info</span>
<span>recipe info menu</span>
</td>
<td data-label="Action">Open recipe info submenu.</td>
<td data-label="Menu Path">Logistics → Recipe Info</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>drop one crate</span>
<span>drop crate</span>
</td>
<td data-label="Action">Drop a single loaded crate.</td>
<td data-label="Menu Path">Logistics → Crate Management → Drop One Loaded Crate</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>drop all crates</span>
<span>drop cargo</span>
</td>
<td data-label="Action">Drop every loaded crate.</td>
<td data-label="Menu Path">Logistics → Crate Management → Drop All Loaded Crates</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>remark nearest crate</span>
<span>smoke crate</span>
</td>
<td data-label="Action">Smoke the nearest friendly crate.</td>
<td data-label="Menu Path">Logistics → Crate Management → Re-mark Nearest Crate (Smoke)</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>show zone inventory</span>
<span>check inventory</span>
</td>
<td data-label="Action">Show stock at nearest supply/FOB zone.</td>
<td data-label="Menu Path">Logistics → Show Inventory at Nearest Zone</td>
</tr>
</tbody>
</table>
<h2>Field Tools</h2>
<table>
<thead>
<tr>
<th scope="col">Phrases</th>
<th scope="col">Action</th>
<th scope="col">Menu Path</th>
</tr>
</thead>
<tbody>
<tr>
<td class="phrases" data-label="Phrases">
<span>create drop zone</span>
<span>mark drop zone</span>
</td>
<td data-label="Action">Create a player drop zone (AO).</td>
<td data-label="Menu Path">Field Tools → Create Drop Zone (AO)</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>smoke green</span>
<span>green smoke</span>
</td>
<td data-label="Action">Drop green smoke at your position.</td>
<td data-label="Menu Path">Field Tools → Smoke My Location → Green</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>smoke red</span>
<span>red smoke</span>
</td>
<td data-label="Action">Drop red smoke at your position.</td>
<td data-label="Menu Path">Field Tools → Smoke My Location → Red</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>smoke white</span>
<span>white smoke</span>
</td>
<td data-label="Action">Drop white smoke at your position.</td>
<td data-label="Menu Path">Field Tools → Smoke My Location → White</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>smoke orange</span>
<span>orange smoke</span>
</td>
<td data-label="Action">Drop orange smoke at your position.</td>
<td data-label="Menu Path">Field Tools → Smoke My Location → Orange</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>smoke blue</span>
<span>blue smoke</span>
</td>
<td data-label="Action">Drop blue smoke at your position.</td>
<td data-label="Menu Path">Field Tools → Smoke My Location → Blue</td>
</tr>
</tbody>
</table>
<h2>Navigation &amp; Hover Coach</h2>
<table>
<thead>
<tr>
<th scope="col">Phrases</th>
<th scope="col">Action</th>
<th scope="col">Menu Path</th>
</tr>
</thead>
<tbody>
<tr>
<td class="phrases" data-label="Phrases">
<span>vectors to crate</span>
<span>find crate</span>
</td>
<td data-label="Action">Show bearing/range to nearest friendly crate.</td>
<td data-label="Menu Path">Navigation → Request Vectors to Nearest Crate</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>vectors to pickup zone</span>
<span>find pickup zone</span>
</td>
<td data-label="Action">Show bearing/range to nearest supply zone.</td>
<td data-label="Menu Path">Navigation → Vectors to Nearest Pickup Zone</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>smoke nearest zone</span>
<span>mark nearest zone</span>
</td>
<td data-label="Action">Smoke the closest zone (pickup/drop/FOB/MASH).</td>
<td data-label="Menu Path">Navigation → Smoke Nearest Zone (Pickup/Drop/FOB/MASH)</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>smoke all zones</span>
<span>mark all zones</span>
</td>
<td data-label="Action">Smoke every zone within 5&nbsp;km.</td>
<td data-label="Menu Path">Navigation → Smoke All Nearby Zones (5km)</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>vectors to medevac crew</span>
<span>find medevac crew</span>
</td>
<td data-label="Action">Show bearing/range to the nearest crew (shortcut).</td>
<td data-label="Menu Path">Navigation → Vectors to Nearest MEDEVAC Crew</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>vectors to mash</span>
<span>find mash</span>
</td>
<td data-label="Action">Show bearing/range to nearest MASH.</td>
<td data-label="Menu Path">Navigation → Vectors to Nearest MASH</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>enable hover coach</span>
<span>hover coach on</span>
</td>
<td data-label="Action">Enable hover coach prompts for this group.</td>
<td data-label="Menu Path">Navigation → Hover Coach: Enable</td>
</tr>
<tr>
<td class="phrases" data-label="Phrases">
<span>disable hover coach</span>
<span>hover coach off</span>
</td>
<td data-label="Action">Disable hover coach prompts for this group.</td>
<td data-label="Menu Path">Navigation → Hover Coach: Disable</td>
</tr>
</tbody>
</table>
<footer>
Generated for <code>CTLD_VoiceAttack_Profile_F10.vap</code> (Right Alt + Backslash → F10 → F2). Tweak phrases or delays directly inside VoiceAttack to match your mission&apos;s pace.
</footer>
</main>
</body>
</html>

View File

@ -1,74 +0,0 @@
<?xml version="1.0" encoding="utf-16"?>
<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>DCS CTLD Menu Navigation</Name>
<Id>a8f7c9d2-4e6b-4c1a-9f3e-2a8d7c6b5e4f</Id>
<Commands>
<!-- OPERATIONS: TROOP TRANSPORT -->
<Command>
<CommandString>load troops</CommandString>
<ActionSequence>
<CommandAction>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0d</Id>
<ActionType>PressKey</ActionType>
<Delay>0</Delay>
<KeyCodes>
<unsignedShort>165</unsignedShort>
</KeyCodes>
</CommandAction>
<CommandAction>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0e</Id>
<ActionType>Pause</ActionType>
<Delay>200</Delay>
</CommandAction>
<CommandAction>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0f</Id>
<ActionType>PressKey</ActionType>
<Delay>0</Delay>
<KeyCodes>
<unsignedShort>220</unsignedShort>
</KeyCodes>
</CommandAction>
<CommandAction>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c10</Id>
<ActionType>Pause</ActionType>
<Delay>300</Delay>
</CommandAction>
<CommandAction>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c11</Id>
<ActionType>PressKey</ActionType>
<Delay>0</Delay>
<KeyCodes>
<unsignedShort>113</unsignedShort>
</KeyCodes>
</CommandAction>
<CommandAction>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c12</Id>
<ActionType>Pause</ActionType>
<Delay>300</Delay>
</CommandAction>
<CommandAction>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c13</Id>
<ActionType>PressKey</ActionType>
<Delay>0</Delay>
<KeyCodes>
<unsignedShort>112</unsignedShort>
</KeyCodes>
</CommandAction>
<CommandAction>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c14</Id>
<ActionType>Pause</ActionType>
<Delay>300</Delay>
</CommandAction>
<CommandAction>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c15</Id>
<ActionType>PressKey</ActionType>
<Delay>0</Delay>
<KeyCodes>
<unsignedShort>112</unsignedShort>
</KeyCodes>
</CommandAction>
</ActionSequence>
<Id>3a7f2b1e-8c4d-4f9a-b2e1-5d6c7a8b9c0d</Id>
</Command>
</Commands>
</Profile>

View File

@ -1,174 +0,0 @@
# CTLD Voice Attack - Quick Reference Card
## Essential Commands (Most Used)
### Troop Operations
```
"load troops" → Load troops at supply zone
"deploy hold" → Deploy troops (defensive)
"deploy attack" → Deploy troops (offensive)
```
### Logistics
```
"build here" → Build crates at position
"drop all crates" → Drop all loaded cargo
"show inventory" → Check zone stock
```
### Navigation
```
"vectors to pickup" → Find supply zone
"vectors to crate" → Find dropped crate
"smoke nearest zone" → Mark closest zone
```
### MEDEVAC (if enabled)
```
"list medevac" → Show active requests
"vectors to medevac" → Find crew
"vectors to mash" → Find hospital
"salvage points" → Check rewards
```
### Status
```
"show status" → CTLD system status
"hover coach on/off" → Toggle pickup guidance
```
---
## Full Command List
### OPERATIONS
| Command | Action |
|---------|--------|
| load troops | Board passengers |
| deploy hold / deploy defend | Unload defensive |
| deploy attack / troops attack | Unload offensive |
| build here / build at position | Build collected crates |
| refresh buildable list | Update build options |
### MEDEVAC (if enabled)
| Command | Action |
|---------|--------|
| list medevac / active medevac requests | List all missions |
| nearest medevac location | Find closest crew |
| salvage points / check salvage | Show points |
| vectors to medevac / medevac vectors | Bearing to crew |
| mash locations / show mash | List hospitals |
| smoke crew locations / mark crews | Mark crews |
| smoke mash zones / mark mash | Mark hospitals |
### LOGISTICS
| Command | Action |
|---------|--------|
| drop one crate / drop crate | Drop single crate |
| drop all crates / drop cargo | Drop all crates |
| mark nearest crate / smoke crate | Re-mark crate |
| show inventory / check inventory | Zone stock |
### FIELD TOOLS
| Command | Action |
|---------|--------|
| create drop zone / mark drop zone | New drop zone |
| smoke green / green smoke | Green smoke |
| smoke red / red smoke | Red smoke |
| smoke white / white smoke | White smoke |
| smoke orange / orange smoke | Orange smoke |
| smoke blue / blue smoke | Blue smoke |
### NAVIGATION
| Command | Action |
|---------|--------|
| vectors to crate / find crate | Find crate |
| vectors to pickup / find pickup zone | Find supply |
| smoke nearest zone / mark nearest zone | Mark nearest |
| smoke all zones / smoke nearby zones | Mark all <5km |
| vectors to mash / find mash | Find MASH |
| enable hover coach / hover coach on | Coach ON |
| disable hover coach / hover coach off | Coach OFF |
### STATUS & ADMIN
| Command | Action |
|---------|--------|
| show status / ctld status | System status |
| draw zones on map / show zones | Draw zones |
| clear map drawings | Clear drawings |
| medevac statistics / medevac stats | MEDEVAC stats |
### QUICK ACCESS
| Command | Same As |
|---------|---------|
| quick pickup / pickup mode | load troops |
| quick deploy / fast deploy | deploy hold |
| quick build / fast build | build here |
---
## F10 Key Binding
**DCS Default (No config needed):**
- On ground: `\` key opens F10
- In air: `RAlt + \` required (backslash alone disabled)
**Voice Attack Profile:**
- All commands use `RAlt + \` (works everywhere)
- Example: "load troops" → **RAlt \ F2 F1 F1**
---
## Common Workflows
### Troop Transport
1. "vectors to pickup"
2. "load troops"
3. Fly to LZ
4. "deploy hold" or "deploy attack"
### Crate Delivery
1. "vectors to pickup"
2. Request crates (manual F10)
3. "vectors to crate"
4. Pick up & deliver
5. "build here"
### MEDEVAC
1. "list medevac"
2. "vectors to medevac"
3. Land near crew (auto-load)
4. "vectors to mash"
5. Land at MASH (auto-unload)
6. "salvage points"
### Zone Recon
1. "smoke all zones" (mark <5km)
2. "draw zones on map" (F10 view)
3. "vectors to pickup" (navigate)
4. "clear map drawings" (cleanup)
---
## Tips
✓ Speak clearly at normal volume
✓ Use alternate phrases if not recognized
✓ Train Voice Attack with your voice
✓ Best when flying stable, not in combat
✗ Don't use for crate requests (too many types)
---
## Troubleshooting
- **Not recognized:** Train profile, try alternate phrase
- **Wrong menu:** Check F10 key (RAlt vs slash)
- **Doesn't navigate:** DCS must be active window
- **MEDEVAC missing:** System not enabled in mission
---
**Print this card for cockpit reference!**
Profile: CTLD_VoiceAttack_Profile.xml
Guide: CTLD_VoiceAttack_Guide.md
CTLD Version: 0.1.0-alpha

View File

@ -1,283 +0,0 @@
# CTLD Voice Attack Integration
This directory contains a complete Voice Attack profile for hands-free navigation of the Moose CTLD (Combat Troop and Logistics Deployment) menu system in DCS World.
## Files in This Package
| File | Purpose |
|------|---------|
| **CTLD_VoiceAttack_Profile.xml** | Voice Attack profile (import this) |
| **CTLD_VoiceAttack_Guide.md** | Complete user guide with all commands |
| **CTLD_VoiceAttack_QuickRef.md** | Quick reference card (print for cockpit) |
| **CTLD_Menu_Structure.md** | Full F10 menu tree diagram |
| **Moose_CTLD.lua** | Source CTLD system (menu structure defined here) |
## Quick Start
### 1. Install
1. Open Voice Attack
2. Import `CTLD_VoiceAttack_Profile.xml`
3. Activate the profile
### 2. F10 Key Binding (Already Configured!)
**DCS Default Behavior:**
- On ground: `\` (backslash) opens F10 menu
- In air: `RAlt + \` required (backslash alone disabled)
**Voice Attack Profile:**
- Uses `RAlt + \` for all commands
- Works both on ground and in air
- **No DCS configuration needed!**
### 3. Test
In DCS, say: **"show status"**
- Should open: F10 → CTLD → Admin/Help → Show CTLD Status
## Most Useful Commands
```
"load troops" → Load passengers
"deploy hold" → Unload defensive
"build here" → Build crates
"drop all crates" → Drop cargo
"vectors to pickup" → Find supply zone
"vectors to crate" → Find crate
"smoke nearest zone" → Mark zone
"show status" → System info
```
## Command Categories
- **Troop Operations:** Load, deploy (defensive/offensive)
- **Build Operations:** Build here, refresh list
- **MEDEVAC:** List requests, vectors, MASH locations, salvage points
- **Logistics:** Drop crates, re-mark crate, check inventory
- **Navigation:** Vectors to zones/crates/MASH, smoke zones
- **Field Tools:** Create drop zone, smoke colors
- **Status:** Show status, draw zones, statistics
See `CTLD_VoiceAttack_Guide.md` for complete command list.
## Documentation
### For New Users
Start here: **CTLD_VoiceAttack_Guide.md**
- Installation instructions
- All commands with examples
- Common workflows
- Troubleshooting
### For Flying
Print this: **CTLD_VoiceAttack_QuickRef.md**
- One-page command list
- Essential workflows
- Tips for in-flight use
### For Developers
Reference: **CTLD_Menu_Structure.md**
- Complete F10 menu tree
- Key path tables
- Menu behavior notes
- Source code references
## How It Works
### Direct Navigation
All commands use **direct navigation** - one voice command executes the entire menu path:
```
Say: "load troops"
Sends: RAlt + \ + F2 + F1 + F1
Result: Operations → Troop Transport → Load Troops
```
No step-by-step navigation, no waiting between keys.
### No TTS Feedback
Commands execute silently - DCS provides on-screen feedback.
### All Non-Admin Functions Included
Profile includes:
- ✓ All operational commands
- ✓ All status/info commands
- ✓ Navigation and smoke
- ✓ MEDEVAC operations
- ✗ Specific crate requests (too many types - use manual F10)
- ✗ Debug/admin functions (intentionally excluded)
## Voice Attack Tips
### Improve Recognition
1. Train profile with your voice (Tools → Train Profile)
2. Speak clearly at normal volume
3. Use alternate phrases if not recognized
4. Reduce background noise
### Best Practices
- ✓ Use during stable flight
- ✓ Keep hands free for controls
- ✓ Combine with manual F10 for crate requests
- ✗ Don't use during combat maneuvers
- ✗ Don't use during emergency procedures
## Menu Structure Overview
```
CTLD (F2)
├── Operations (F1)
│ ├── Troop Transport
│ ├── Build
│ └── MEDEVAC
├── Logistics (F2)
│ ├── Request Crate
│ ├── Recipe Info
│ ├── Crate Management
│ └── Show Inventory
├── Field Tools (F3)
├── Navigation (F4)
└── Admin/Help (F5)
```
Full structure: `CTLD_Menu_Structure.md`
## Limitations
### Not Included
1. **Crate Requests:** Too many types (dozens of vehicles, SAMs, etc.)
- Use manual F10: CTLD → Logistics → Request Crate
2. **Typed Troop Loading:** Submenu with 4+ troop types
- Use manual F10: CTLD → Operations → Troop Transport → Load Troops (Type)
3. **Advanced Build Menu:** Dynamic list of buildable items
- Use manual F10: CTLD → Operations → Build → Build (Advanced)
4. **Debug Commands:** Admin logging controls
- Not needed for normal operations
### Why These Are Excluded
- **Crate requests:** Mission-specific, too many variations
- **Typed troops:** Rare use case, 4+ submenu items
- **Advanced build:** Dynamic content, better with manual selection
- **Debug:** Admin-only, not for regular flight ops
Use voice commands for quick actions, manual F10 for detailed selections.
## Compatibility
- **CTLD Version:** 0.1.0-alpha (Moose_CTLD_Pure)
- **Voice Attack:** 1.8+ (tested on 1.10)
- **DCS World:** Current stable/open beta
- **Menu Type:** Per-player (MENU_GROUP)
## Customization
### Add New Commands
1. Open profile in Voice Attack
2. Study menu structure: `CTLD_Menu_Structure.md`
3. Create command with key sequence
4. Test in DCS
### Update for Menu Changes
1. Check `Moose_CTLD.lua` function `BuildGroupMenus()` (~line 2616)
2. Update key sequences in Voice Attack
3. Update documentation files
4. Test all modified commands
## Troubleshooting
| Problem | Solution |
|---------|----------|
| Command not recognized | Train profile, try alternate phrase |
| Wrong menu opens | Verify DCS default binding (RAlt + \), check Controls settings |
| Menu doesn't navigate | DCS must be active window, F10 not already open |
| MEDEVAC missing | System not enabled in mission |
| Works on ground but not in air | Expected! Profile uses RAlt + \ (works in air) |
Full troubleshooting: `CTLD_VoiceAttack_Guide.md`
## Examples
### Troop Transport Mission
```
1. Say: "vectors to pickup" → Find supply zone
2. Fly to zone
3. Say: "load troops" → Board passengers
4. Fly to LZ
5. Say: "deploy hold" → Unload defensive
```
### Crate Logistics Mission
```
1. Say: "vectors to pickup" → Find supply zone
2. Manual F10 to request crates → (Too many types for voice)
3. Say: "vectors to crate" → Find spawned crate
4. Pick up and fly to target
5. Say: "build here" → Deploy at destination
```
### MEDEVAC Mission
```
1. Say: "list medevac" → Check active requests
2. Say: "vectors to medevac" → Find nearest crew
3. Land nearby (auto-load)
4. Say: "vectors to mash" → Find hospital
5. Land at MASH (auto-unload)
6. Say: "salvage points" → Check rewards
```
### Reconnaissance
```
1. Say: "smoke all zones" → Mark nearby zones
2. Say: "draw zones on map" → See all zones on F10
3. Manual F10 map navigation
4. Say: "clear map drawings" → Clean up
```
More workflows: `CTLD_VoiceAttack_Guide.md`
## Support
### If Menu Structure Changes
Menu structure is defined in `Moose_CTLD.lua`:
- Function: `CTLD:BuildGroupMenus(group)`
- Line: ~2616
Compare with `CTLD_Menu_Structure.md` to identify changes.
### Profile Updates
1. Check code for menu changes
2. Update Voice Attack key sequences
3. Update documentation
4. Test all commands
### Help Resources
- CTLD source code: `Moose_CTLD.lua`
- Menu diagram: `CTLD_Menu_Structure.md`
- Full guide: `CTLD_VoiceAttack_Guide.md`
- Quick ref: `CTLD_VoiceAttack_QuickRef.md`
## Version History
### Version 1.0 (Current)
- Initial release
- 40+ voice commands
- Direct navigation (no step-by-step)
- No TTS feedback
- Supports RAlt or slash key for F10
- All non-admin functions included
- Comprehensive documentation
## Credits
- **CTLD System:** Moose_CTLD_Pure custom implementation
- **Voice Attack:** VoiceAttack by VoiceAttack.com
- **DCS World:** Eagle Dynamics
- **MOOSE Framework:** FlightControl-Master
---
**Ready to fly hands-free? Import the profile and start with "show status"!**
Questions? See `CTLD_VoiceAttack_Guide.md` for detailed help.

File diff suppressed because it is too large Load Diff