diff --git a/Moose_CTLD_Pure/LOGGING_EXAMPLE.lua b/Moose_CTLD_Pure/LOGGING_EXAMPLE.lua deleted file mode 100644 index 2d1487f..0000000 --- a/Moose_CTLD_Pure/LOGGING_EXAMPLE.lua +++ /dev/null @@ -1,82 +0,0 @@ --- Example: Using Moose_CTLD with Logging Control --- This example shows how to configure logging levels for different environments - --- ========================= --- Production Server (Minimal Logging) --- ========================= --- Only logs errors - keeps DCS.log clean -local ctld_blue_prod = CTLD:New({ - CoalitionSide = coalition.side.BLUE, - LogLevel = 1, -- 1 = ERROR only - RootMenuName = 'CTLD', - -- ... rest of your config -}) - --- ========================= --- Development Server (Full Logging) --- ========================= --- Logs everything for debugging -local ctld_blue_dev = CTLD:New({ - CoalitionSide = coalition.side.BLUE, - LogLevel = 4, -- 4 = DEBUG (everything) - RootMenuName = 'CTLD', - -- ... rest of your config -}) - --- ========================= --- Typical Production (Recommended) --- ========================= --- Logs important events but not verbose details -local ctld_blue = CTLD:New({ - CoalitionSide = coalition.side.BLUE, - LogLevel = 2, -- 2 = INFO (recommended default) - RootMenuName = 'CTLD', - UseGroupMenus = true, - -- ... rest of your config -}) - --- ========================= --- Log Level Reference --- ========================= --- 0 = NONE - No logging at all (maximum performance) --- 1 = ERROR - Only errors and warnings (production minimum) --- 2 = INFO - Important events: init, cleanup, salvage (RECOMMENDED for production) --- 3 = VERBOSE - Operational details: zone changes, MEDEVAC, builds --- 4 = DEBUG - Everything: spawns, pickups, hover checks (debugging only) - --- ========================= --- Changing Log Level In-Game --- ========================= --- Players can change logging via F10 menus: --- F10 → CTLD → Admin/Help → Debug → [Select Level] --- --- Options in-game: --- - Enable Verbose (Level 4) --- - Normal INFO (Level 2) --- - Errors Only (Level 1) --- - Disable All (Level 0) - --- ========================= --- Troubleshooting --- ========================= --- Problem: Too much spam in DCS.log --- Solution: Set LogLevel = 1 or LogLevel = 2 - --- Problem: Need to debug MEDEVAC issues --- Solution: Temporarily set LogLevel = 4, reproduce issue, then set back to 2 - --- Problem: Want zero logging overhead --- Solution: Set LogLevel = 0 - --- ========================= --- Migration from Old Debug Flag --- ========================= --- OLD (deprecated): --- Debug = true -- logged everything --- Debug = false -- logged some things - --- NEW (LogLevel): --- LogLevel = 4 -- equivalent to Debug = true (everything) --- LogLevel = 2 -- equivalent to Debug = false (important only) --- LogLevel = 1 -- errors only --- LogLevel = 0 -- nothing diff --git a/Moose_CTLD_Pure/LOGGING_GUIDE.md b/Moose_CTLD_Pure/LOGGING_GUIDE.md deleted file mode 100644 index 0aef556..0000000 --- a/Moose_CTLD_Pure/LOGGING_GUIDE.md +++ /dev/null @@ -1,176 +0,0 @@ -# Moose_CTLD Logging System - -## Overview -A comprehensive logging system has been implemented to control the verbosity of log output in production environments. - -## LogLevel Configuration - -Add to your CTLD configuration: - -```lua -local ctld = CTLD:New({ - LogLevel = 2, -- Set desired logging level (0-4) - -- ... other config -}) -``` - -## Log Levels - -| Level | Name | Description | Use Case | -|-------|---------|-------------|----------| -| 0 | NONE | No logging at all | Production servers where logging causes performance issues | -| 1 | ERROR | Only critical errors and warnings | Production - only see problems | -| 2 | INFO | Important state changes, initialization, cleanup | **Default for production** | -| 3 | VERBOSE | Detailed operational info (zone validation, builds, MEDEVAC events) | Debugging missions | -| 4 | DEBUG | Everything including hover checks, detailed spawns | Deep troubleshooting | - -## Default Setting - -**LogLevel = 2 (INFO)** - Recommended for production servers -- Shows initialization, catalog loading, cleanup -- Shows errors and warnings -- Hides verbose MEDEVAC details, zone validation, debug info - -## Changing Log Level In-Mission - -Players with access to F10 menus can change logging on-the-fly: - -**Group Menus (per-player):** -- F10 → CTLD → Admin/Help → Debug → [Select Level] - -**Coalition Menus:** -- F10 → CTLD → Debug Logging → [Select Level] - -Options: -- Enable Verbose (LogLevel 4) - Full debug output -- Normal INFO (LogLevel 2) - Default production level -- Errors Only (LogLevel 1) - Minimal logging -- Disable All (LogLevel 0) - No logging - -## What Gets Logged at Each Level - -### Level 0 (NONE) -- Nothing - -### Level 1 (ERROR) -- Missing Moose library -- Catalog loading failures -- Missing configured zones -- Menu errors -- MEDEVAC spawn failures -- Critical system errors - -### Level 2 (INFO) - **RECOMMENDED** -- All ERROR level messages -- System initialization -- Catalog merging -- Troop type loading -- MEDEVAC system init -- Cleanup/shutdown messages -- Salvage system operations -- Mobile MASH deployment - -### Level 3 (VERBOSE) -- All INFO level messages -- Zone state changes (activation/deactivation) -- Zone validation summary -- MEDEVAC crew spawning -- MEDEVAC crew pickup/delivery -- Vehicle respawn -- MASH zone registration -- Smoke pop events - -### Level 4 (DEBUG) -- All VERBOSE level messages -- Config merge details -- MASH zone existence checks -- Crate cleanup -- Troop group cleanup -- Troop spawn details -- Detailed MEDEVAC event processing -- Catalog search operations -- Position extraction attempts -- Crew composition details -- Immortality/invisibility toggles -- Crew movement AI -- Hover detection (if implemented) - -## Examples - -### Production Server (Minimal Logging) -```lua -local ctld_blue = CTLD:New({ - CoalitionSide = coalition.side.BLUE, - LogLevel = 1, -- Errors only - -- ... rest of config -}) -``` - -### Development/Testing (Full Logging) -```lua -local ctld_blue = CTLD:New({ - CoalitionSide = coalition.side.BLUE, - LogLevel = 4, -- Everything - -- ... rest of config -}) -``` - -### Typical Production Setup -```lua -local ctld_blue = CTLD:New({ - CoalitionSide = coalition.side.BLUE, - LogLevel = 2, -- INFO - good balance - -- ... rest of config -}) -``` - -## Migration from Old Debug Flag - -The old `Debug = true/false` flag is now replaced by `LogLevel`: - -**Old way:** -```lua -Debug = false -- or true -``` - -**New way:** -```lua -LogLevel = 2 -- 0=NONE, 1=ERROR, 2=INFO, 3=VERBOSE, 4=DEBUG -``` - -## Performance Notes - -- LogLevel 0 (NONE) has zero overhead - no string formatting occurs -- LogLevel 1-2 have minimal overhead - only critical/important messages -- LogLevel 3-4 can generate significant log output - use for debugging only -- All logging goes to DCS.log file (not in-game messages) - -## Remaining Manual Replacements - -Due to the large number of logging statements (150+), the following categories still use `env.info()` directly and should be replaced when needed: - -1. **MEDEVAC System** (~80 statements) - Most verbose part - - Event processing, crew spawning, pickup/delivery - - Recommend: ERROR for failures, VERBOSE for operations, DEBUG for detailed state - -2. **Salvage/Build System** (~10 statements) - - Recommend: VERBOSE level - -3. **Cleanup System** (~5 statements) - - Recommend: INFO level - -4. **Troop System** (~10 statements) - - Recommend: VERBOSE for spawns, DEBUG for details - -5. **MASH Zones** (~15 statements) - - Recommend: VERBOSE for registration/operations, DEBUG for checks - -To complete the migration, search for remaining `env.info` calls and replace with: -- `_logError()` for failures -- `_logInfo()` for important state changes -- `_logVerbose()` for operational details -- `_logDebug()` for troubleshooting info - -## Summary - -The logging system is now in place with core functions defined. The most critical parts (initialization, zone validation, menu errors) have been updated. The remaining ~150 log statements (primarily MEDEVAC system) can be migrated incrementally as needed. For production use, simply set `LogLevel = 1` or `LogLevel = 2` to dramatically reduce log output. diff --git a/Moose_CTLD_Pure/LOGGING_IMPLEMENTATION_SUMMARY.md b/Moose_CTLD_Pure/LOGGING_IMPLEMENTATION_SUMMARY.md deleted file mode 100644 index 9939c2f..0000000 --- a/Moose_CTLD_Pure/LOGGING_IMPLEMENTATION_SUMMARY.md +++ /dev/null @@ -1,159 +0,0 @@ -# Logging System Implementation - Summary - -## What Was Done - -### 1. Added LogLevel Configuration -- New config option: `LogLevel` (0-4) -- Default: `LogLevel = 2` (INFO level) -- Replaces old `Debug = true/false` flag - -### 2. Created Logging Helper Functions -```lua -_log(level, msg) -- Core logging function -_logError(msg) -- Level 1: Errors/warnings -_logInfo(msg) -- Level 2: Important events -_logVerbose(msg) -- Level 3: Operational details -_logDebug(msg) -- Level 4: Everything -``` - -### 3. Updated Key Logging Points -The following critical sections have been migrated to use the new logging system: - -#### Fully Migrated (use new logging functions): -- ✅ Initialization (config merge, catalog loading) -- ✅ Zone validation -- ✅ Menu error handling -- ✅ Debug toggle commands (now log level controls) -- ✅ Crate cleanup -- ✅ Troop type resolution -- ✅ Zone state changes - -#### Still Using env.info() - Lower Priority: -- MEDEVAC system (~80 statements) - most verbose -- Salvage operations -- Cleanup/shutdown messages -- Troop spawning details -- MASH zone operations -- Mobile MASH deployment - -### 4. Enhanced F10 Menus -- Group menus: Admin/Help → Debug → 4 logging level options -- Coalition menus: Debug Logging → 4 logging level options -- In-mission dynamic control of logging verbosity - -### 5. Documentation Created -- `LOGGING_GUIDE.md` - Complete reference guide -- `LOGGING_EXAMPLE.lua` - Usage examples -- Header comments in main file - -## Immediate Benefits - -### For Production Servers -```lua -LogLevel = 1 -- Errors only, minimal log spam -``` -- Dramatically reduces DCS.log size -- Shows only problems that need attention -- Better server performance - -### For Development/Testing -```lua -LogLevel = 4 -- Full debug output -``` -- Complete visibility into script operations -- Detailed troubleshooting information -- Can be toggled in-mission - -## Log Level Breakdown - -| Level | Output Volume | Use Case | -|-------|--------------|----------| -| 0 | 0% (nothing) | Max performance, no logging | -| 1 | ~5% (errors only) | Production - errors/warnings | -| 2 | ~15% (important events) | **Recommended production default** | -| 3 | ~40% (operational details) | Development, mission testing | -| 4 | 100% (everything) | Deep debugging only | - -## Configuration Examples - -### Minimal Logging (Production) -```lua -local ctld = CTLD:New({ - LogLevel = 1, - -- ... -}) -``` - -### Recommended Production -```lua -local ctld = CTLD:New({ - LogLevel = 2, -- INFO level - -- ... -}) -``` - -### Full Debug -```lua -local ctld = CTLD:New({ - LogLevel = 4, - -- ... -}) -``` - -## What's Left To Do (Optional) - -The remaining ~150 env.info() calls (primarily in MEDEVAC system) can be migrated when needed: - -1. Search for: `env.info\(` -2. Replace with appropriate log function: - - Failures → `_logError()` - - Important state → `_logVerbose()` - - Details → `_logDebug()` - -Example pattern: -```lua --- OLD: -env.info('[Moose_CTLD][MEDEVAC] Crew spawned: '..name) - --- NEW: -_logVerbose('[MEDEVAC] Crew spawned: '..name) -``` - -## Testing Recommendations - -1. **Test with LogLevel = 0**: Verify no logging occurs -2. **Test with LogLevel = 1**: Check only errors appear -3. **Test with LogLevel = 2**: Verify reasonable production output -4. **Test with LogLevel = 4**: Confirm verbose details present -5. **Test in-mission toggle**: Change levels via F10 menu - -## File Changes - -- ✅ `Moose_CTLD.lua` - Core implementation -- ✅ `LOGGING_GUIDE.md` - Complete documentation -- ✅ `LOGGING_EXAMPLE.lua` - Usage examples -- ✅ Header comments added - -## Backwards Compatibility - -The old `Debug = true/false` flag is no longer used. Users should migrate to: -- `Debug = false` → `LogLevel = 2` -- `Debug = true` → `LogLevel = 4` - -## Performance Impact - -- **LogLevel = 0**: Zero overhead (no string concatenation) -- **LogLevel = 1-2**: Negligible overhead (~0.1ms per event) -- **LogLevel = 3-4**: Minor overhead during heavy operations - -## Summary - -A comprehensive, production-ready logging system has been implemented with: -- ✅ Configurable verbosity levels (0-4) -- ✅ Runtime control via F10 menus -- ✅ Core systems migrated to new logging -- ✅ Complete documentation -- ✅ Usage examples -- ✅ No syntax errors - -**Recommended action for production servers**: Set `LogLevel = 2` (INFO) for balanced logging, or `LogLevel = 1` (ERROR) for minimal output. diff --git a/Moose_CTLD_Pure/Voice Attack/CTLD_VoiceAttack_Guide.md b/Moose_CTLD_Pure/Voice Attack/CTLD_VoiceAttack_Guide.md new file mode 100644 index 0000000..eedbd9c --- /dev/null +++ b/Moose_CTLD_Pure/Voice Attack/CTLD_VoiceAttack_Guide.md @@ -0,0 +1,266 @@ +# 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"
"deploy hold"
"deploy defend" | Deploy troops in defensive posture | Operations → Troop Transport → Deploy [Hold Position] | +| "deploy attack"
"troops attack" | Deploy troops with attack orders | Operations → Troop Transport → Deploy [Attack] | + +### OPERATIONS: Build + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "build here"
"build at position" | Build collected crates at location | Operations → Build → Build Here | +| "refresh buildable list"
"refresh build list" | Update list of buildable items | Operations → Build → Refresh Buildable List | + +### OPERATIONS: MEDEVAC (if enabled) + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "list medevac"
"active medevac requests" | Show all active MEDEVAC missions | Operations → MEDEVAC → List Active MEDEVAC Requests | +| "nearest medevac location"
"medevac location" | Show nearest MEDEVAC crew location | Operations → MEDEVAC → Nearest MEDEVAC Location | +| "salvage points"
"check salvage" | Display coalition salvage points | Operations → MEDEVAC → Coalition Salvage Points | +| "vectors to medevac"
"medevac vectors" | Get bearing/range to nearest crew | Operations → MEDEVAC → Vectors to Nearest MEDEVAC | +| "mash locations"
"show mash" | List all MASH zones | Operations → MEDEVAC → MASH Locations | +| "smoke crew locations"
"mark crews" | Pop smoke at MEDEVAC crew positions | Operations → MEDEVAC → Pop Smoke at Crew Locations | +| "smoke mash zones"
"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"
"drop crate" | Drop single loaded crate | Logistics → Crate Management → Drop One Loaded Crate | +| "drop all crates"
"drop cargo" | Drop all loaded crates | Logistics → Crate Management → Drop All Loaded Crates | +| "mark nearest crate"
"smoke crate"
"remark crate" | Re-mark closest crate with smoke | Logistics → Crate Management → Re-mark Nearest Crate | +| "show inventory"
"check inventory"
"zone inventory" | Display zone inventory | Logistics → Show Inventory at Nearest Zone | + +### FIELD TOOLS + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "create drop zone"
"mark drop zone" | Create new drop zone at position | Field Tools → Create Drop Zone (AO) | +| "smoke green"
"green smoke" | Pop green smoke at location | Field Tools → Smoke My Location → Green | +| "smoke red"
"red smoke" | Pop red smoke at location | Field Tools → Smoke My Location → Red | +| "smoke white"
"white smoke" | Pop white smoke at location | Field Tools → Smoke My Location → White | +| "smoke orange"
"orange smoke" | Pop orange smoke at location | Field Tools → Smoke My Location → Orange | +| "smoke blue"
"blue smoke" | Pop blue smoke at location | Field Tools → Smoke My Location → Blue | + +### NAVIGATION + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "vectors to crate"
"find crate"
"nearest crate" | Get bearing/range to nearest crate | Navigation → Request Vectors to Nearest Crate | +| "vectors to pickup"
"find pickup zone"
"nearest pickup" | Get bearing/range to pickup zone | Navigation → Vectors to Nearest Pickup Zone | +| "smoke nearest zone"
"mark nearest zone" | Smoke closest zone (any type) | Navigation → Smoke Nearest Zone | +| "smoke all zones"
"mark all zones"
"smoke nearby zones" | Smoke all zones within 5km | Navigation → Smoke All Nearby Zones (5km) | +| "vectors to mash"
"find mash"
"nearest mash" | Get bearing/range to MASH | Navigation → Vectors to Nearest MASH | +| "enable hover coach"
"hover coach on" | Enable hover pickup guidance | Navigation → Hover Coach: Enable | +| "disable hover coach"
"hover coach off" | Disable hover pickup guidance | Navigation → Hover Coach: Disable | + +### STATUS & ADMIN + +| Voice Command | Action | Menu Path | +|--------------|--------|-----------| +| "show status"
"ctld status"
"check status" | Display CTLD system status | Admin/Help → Show CTLD Status | +| "draw zones on map"
"show zones"
"mark zones on map" | Draw all zones on F10 map | Admin/Help → Draw CTLD Zones on Map | +| "clear map drawings"
"clear map marks"
"remove zone marks" | Remove zone drawings from map | Admin/Help → Clear CTLD Map Drawings | +| "medevac statistics"
"medevac stats"
"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"
"pickup mode" | "load troops" | +| "quick deploy"
"fast deploy" | "deploy troops" | +| "quick build"
"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! 🚁** diff --git a/Moose_CTLD_Pure/Voice Attack/CTLD_VoiceAttack_Profile.xml b/Moose_CTLD_Pure/Voice Attack/CTLD_VoiceAttack_Profile.xml new file mode 100644 index 0000000..7c78040 --- /dev/null +++ b/Moose_CTLD_Pure/Voice Attack/CTLD_VoiceAttack_Profile.xml @@ -0,0 +1,378 @@ + + + + + + + + + + + load troops + + + Send keys to active window + {RALT}\\{F2}{F1}{F1} + + + + + + deploy troops;deploy hold;deploy defend + + + Send keys to active window + {RALT}\\{F2}{F1}{F3} + + + + + + deploy attack;troops attack + + + Send keys to active window + {RALT}\\{F2}{F1}{F4} + + + + + + + build here;build at position + + + Send keys to active window + {RALT}\\{F2}{F2}{F1} + + + + + + refresh buildable list;refresh build list + + + Send keys to active window + {RALT}\\{F2}{F2}{F4} + + + + + + + list medevac;active medevac requests + + + Send keys to active window + {RALT}\\{F2}{F3}{F1} + + + + + + nearest medevac location;medevac location + + + Send keys to active window + {RALT}\\{F2}{F3}{F2} + + + + + + salvage points;check salvage + + + Send keys to active window + {RALT}\\{F2}{F3}{F3} + + + + + + vectors to medevac;medevac vectors + + + Send keys to active window + {RALT}\\{F2}{F3}{F4} + + + + + + mash locations;show mash + + + Send keys to active window + {RALT}\\{F2}{F3}{F5} + + + + + + smoke crew locations;mark crews + + + Send keys to active window + {RALT}\\{F2}{F3}{F6} + + + + + + smoke mash zones;mark mash + + + Send keys to active window + {RALT}\\{F2}{F3}{F7} + + + + + + + drop one crate;drop crate + + + Send keys to active window + {RALT}\\{F2}{F3}{F1} + + + + + + drop all crates;drop cargo + + + Send keys to active window + {RALT}\\{F2}{F3}{F2} + + + + + + mark nearest crate;smoke crate;remark crate + + + Send keys to active window + {RALT}\\{F2}{F3}{F3} + + + + + + show inventory;check inventory;zone inventory + + + Send keys to active window + {RALT}\\{F2}{F4} + + + + + + + create drop zone;mark drop zone + + + Send keys to active window + {RALT}\\{F3}{F1} + + + + + + smoke green;green smoke + + + Send keys to active window + {RALT}\\{F3}{F2}{F1} + + + + + + smoke red;red smoke + + + Send keys to active window + {RALT}\\{F3}{F2}{F2} + + + + + + smoke white;white smoke + + + Send keys to active window + {RALT}\\{F3}{F2}{F3} + + + + + + smoke orange;orange smoke + + + Send keys to active window + {RALT}\\{F3}{F2}{F4} + + + + + + smoke blue;blue smoke + + + Send keys to active window + {RALT}\\{F3}{F2}{F5} + + + + + + + vectors to crate;find crate;nearest crate + + + Send keys to active window + {RALT}\\{F4}{F1} + + + + + + vectors to pickup;find pickup zone;nearest pickup + + + Send keys to active window + {RALT}\\{F4}{F2} + + + + + + smoke nearest zone;mark nearest zone + + + Send keys to active window + {RALT}\\{F4}{F3} + + + + + + smoke all zones;mark all zones;smoke nearby zones + + + Send keys to active window + {RALT}\\{F4}{F4} + + + + + + vectors to mash;find mash;nearest mash + + + Send keys to active window + {RALT}\\{F4}{F6} + + + + + + enable hover coach;hover coach on + + + Send keys to active window + {RALT}\\{F4}{F7} + + + + + + disable hover coach;hover coach off + + + Send keys to active window + {RALT}\\{F4}{F8} + + + + + + + show status;ctld status;check status + + + Send keys to active window + {RALT}\\{F5}{F2} + + + + + + draw zones on map;show zones;mark zones on map + + + Send keys to active window + {RALT}\\{F5}{F3} + + + + + + clear map drawings;clear map marks;remove zone marks + + + Send keys to active window + {RALT}\\{F5}{F4} + + + + + + medevac statistics;medevac stats;show medevac stats + + + Send keys to active window + {RALT}\\{F5}{F5} + + + + + + + quick pickup;pickup mode + + + Send keys to active window + {RALT}\\{F2}{F1}{F1} + + + + + + quick deploy;fast deploy + + + Send keys to active window + {RALT}\\{F2}{F1}{F3} + + + + + + quick build;fast build + + + Send keys to active window + {RALT}\\{F2}{F2}{F1} + + + + + + diff --git a/Moose_CTLD_Pure/Voice Attack/CTLD_VoiceAttack_QuickRef.md b/Moose_CTLD_Pure/Voice Attack/CTLD_VoiceAttack_QuickRef.md new file mode 100644 index 0000000..22777f7 --- /dev/null +++ b/Moose_CTLD_Pure/Voice Attack/CTLD_VoiceAttack_QuickRef.md @@ -0,0 +1,174 @@ +# 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 diff --git a/Moose_CTLD_Pure/Voice Attack/README_VoiceAttack.md b/Moose_CTLD_Pure/Voice Attack/README_VoiceAttack.md new file mode 100644 index 0000000..bfa835c --- /dev/null +++ b/Moose_CTLD_Pure/Voice Attack/README_VoiceAttack.md @@ -0,0 +1,283 @@ +# 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.