This is my .map file for the CH Control Manager which I use with my CH USB Pro Throttle and my
CH Combatstick.
I am using this configuration together with my GlovePIE script below.
This is my current key bindings file for Elite: Dangerous. To use it, download it and put it into the following folder: "%APPDATA%\..\Local\Frontier Developments\Elite Dangerous\Options\Bindings".
Pro-Tip: If you have a nice config which you want to be sure to keep, copy the Custom.binds file and rename it to something you like (of course you have to keep the ".binds" part!). It will show up with that name in Elite: Dangerous as a new preset (like the "Keyboard and Mouse" or others) and you can simply change between different configurations, e.g. if you use different controllers from time to time! ;-)
I am using this configuration together with my GlovePIE script below.
This is my script for Elite: Dangerous for the
GlovePIE Programmable Input Emulator (which can be used for voice commands in games) for downloading: Elite_Dangerous.pie
If you want to see this script in action, have a look at my YouTube channel, which shows some example videos.
If you prefer to copy/paste, this is the whole file (be sure to paste it directly into the GlovePIE editor though, because the PIE files look like simple text files, but start with a three byte binary combination!):
// Please note: // Joystick1 is my CH Throttle // Joystick2 is my CH Combatstick // First start only if (starting) { var.reset=1 // reset all variables on start var.pause=1 // start in pause mode } // reset all variables if (var.reset=1) { var.reset=0 var.started=0 // to prevent activating the script by "push to talk" button var.zoomout=0 // used for loops var.zoomin=0 // used for loops release Key.RightShift // make sure the cargo scoop is retracted var.scoop=0 // reset flag for cargo scoop var.gear=1 // we assume that the gear is down (landed). If not, use the "landing gear is up" command var.panel=0 // selected panel = none var.headlook=0 // we start with headlook off (normally) var.hardpoints=0 // we start with undeployed hardpoints release Key.NUMPADDivide // make sure the scanner is disabled var.scanner=0 // disable scanner say "startup completed" } // Jarvis script management commands if ((said("Jarvis pause script",3) or said("Jarvis stop script") or said("Jarvis deactivate script", 5)) and (var.pause == 0)) { var.started=0 var.pause=1 say "Voice commands deactivated" } if ((said("Jarvis unpause script",3) or said("Jarvis start script") or said("Jarvis activate script", 5)) and (var.pause == 1)) { var.started=1 var.pause=0 say "Voice commands active" } if (said("Jarvis restart",5 ) or said("Jarvis reset script",3) or said("Jarvis reset all") or said("Jarvis reset variables", 5)) { var.reset=1 } // Teamspeak's "push to talk" deactivates voice commands - not used in the moment (Button3 is right now used for Boosters in my setup) //if (pressed(Joystick2.Button3) and (var.pause == 0) and (var.started == 1)) { // var.pause=1 //} //if (released(Joystick2.Button3) and (var.pause == 1) and (var.started == 1)) { // var.pause=0 //} //******************************* // the voice commands themselves //******************************* if !var.pause then{ // Fun stuff if (said("Jarvis I am lost", 5)) { playsound ("C:\Sounds\force2.wav") wait 2000 ms } if (said("Jarvis help", 5)) { playsound ("C:\Sounds\nopanic.wav") wait 2000 ms } if (said("Thank you Jarvis", 5)) { say "My pleasure!" wait 1000 ms } // Nothing for mouse control (yet) //-------------------------------- // Flight rotation //----------------- // yaw left -> ? // yaw right -> ? // yaw-roll button -> ? // roll left -> ? // roll right -> ? // pitch up -> ? // pitch down -> ? // Flight thrust //--------------- // Thrust left -> Key.Q // Thrust right -> Key.E // Thrust up -> Key.R // Thrust down -> Key.F // Thrust forward -> ? // Thrust backward -> ? // Flight throttle //----------------- // Throttle reverse -> Joystick1.Button3 // Increae throttle -> Key.W if (said("more speed", 5) or said ("faster jarvis", 5)) { press Key.W wait 50 ms release Key.W say "Aye sir, accelerating 0 point 1 2 5" } // Decrease throttle -> Key.S if (said("less speed", 5) or said("slower jarvis", 5)) { press Key.S wait 50 ms release Key.S say "Aye sir, decelerating O point 1 2 5" } // Set speed -100% -> Key.NUMPAD1 if (said("full speed astern", 5) or said("astern full speed", 5) or said("full astern", 5)) { press Key.NUMPAD1 wait 50 ms release Key.NUMPAD1 say "Aye sir, full speed backwards" } // Set speed -75% -> Key.NUMPAD2 if (said("point 7 5 astern", 5) or said("astern standard speed", 5) or said("standard astern", 5)) { press Key.NUMPAD2 wait 50 ms release Key.NUMPAD2 say "Aye sir, point 7 5 backwards" } // Set speed -50% -> Key.NUMPAD3 if (said("point 5 O astern", 5) or said("astern half speed", 5) or said("half astern", 5)) { press Key.NUMPAD3 wait 50 ms release Key.NUMPAD3 say "Aye sir, point 5 O backwards" } // Set speed -25% -> Key.NUMPAD4 if (said("point 2 5 astern", 5) or said ("astern slow speed", 5) or said("slow astern", 5)) { press Key.NUMPAD4 wait 50 ms release Key.NUMPAD4 say "Aye sir, point 2 5 backwards" } // Set speed 0% -> Key.NUMPAD5 if (said("full stop", 5) or said("engine power off",5)) { press Key.NUMPAD5 wait 50 ms release Key.NUMPAD5 say "All engines stopped" } // Set speed 25% -> Key.NUMPAD6 if (said("point 2 5 ahead", 5) or said("slow speed ahead", 5) or said("slow ahead")) { press Key.NUMPAD6 wait 50 ms release Key.NUMPAD6 say "Aye sir, Point 2 5 forwards" } // Set speed 50% -> Key.NUMPAD7 if (said("point 5 O ahead", 5) or said("half speed ahead", 5) or said("half ahead", 5)) { press Key.NUMPAD7 wait 50 ms release Key.NUMPAD7 say "Aye sir, Point 5 O forwards" } // Set speed 75% -> Key.NUMPAD8 if (said("point 7 5 ahead", 5) or said("standard speed ahead", 5) or said("standard ahead", 5)) { press Key.NUMPAD8 wait 50 ms release Key.NUMPAD8 say "Aye sir, Point 7 5 forwards" } // Set speed 100% -> Key.NUMPAD9 if (said("full speed ahead", 5) or said("full ahead", 5)) { press Key.NUMPAD9 wait 50 ms release Key.NUMPAD9 say "Aye sir, full speed ahead" } // Flight landing overrides //-------------------------- // NOT USED (yet) // Yaw left -> Joystick1.Button4 // Yaw right -> Joystick1.Button2 // Pitch up -> ? // Pitch down -> ? // Roll left -> ? // Roll right -> ? // Thrust left -> ? // Thrust right -> ? // Thrust up -> ? // Thrust down -> ? // Thrust forward -> Joystick1.Button5 // Thrust backward -> Joystick1.Button7 // Flight miscellaneous //---------------------- // Disable flight assist -> Joystick2.Button4 // Engine boost -> Key.NUMPADMultiply / Joystick2.Button3 if (said("flank speed", 5) or said("booster", 5) or said("max speed", 5) or said ("emergency speed", 5) or said("get me out of here", 5)) { press Key.NUMPADMultiply wait 50 ms release Key.NUMPADMultiply say "firing boosters" wait 1500 ms // playsound("C:\Sounds\yehaw.wav"); } // Enable frame shift drive -> Key.J / Joystick1.Button6 if (said("frame shift drive", 5) or said("FSD", 5)) { press Key.J wait 50 ms release Key.J say "drive mode changed" } // Enable FSD to super cruise -> Key.U / Joystick1.Button5 if (said("super cruise", 5) or said("subspace travel", 5)) { press Key.U wait 50 ms release Key.U say "Super cruise mode changed" } // Enable FSD to hyperspace jump -> Key.Y / Joystick1.Button7 if (said("hyperspace",5 ) or said("hyperjump", 5)) { press Key.Y wait 50 ms release Key.Y say "Charging jump drive" } // Rotational correction -> ? // Targetting //------------ // Select target ahead -> Key.T if (said("target forward", 5) or said("target front", 5) or said("target crosshair", 5) or said("target ahead", 5)) { press Key.T wait 50 ms release Key.T say "acquiring front target" } // Cycle next ship -> Key.Six if (said("target next ship", 5) or said("next target", 5) or said("cycle next ship", 5)) { press Key.Six wait 50 ms release Key.Six say "acquiring next target" } // Cycle previous ship -> Key.Five if (said("target previous ship", 5) or said("previous target", 5) or said("cycle previous ship", 5)) { press Key.Five wait 50 ms release Key.Five say "acquiring previous target" } // Select highest thread -> Key.H if (said("target thread", 5) or said("target attacker", 5) or said("target the bastard", 5)) { press Key.H wait 50 ms release Key.H say "acquiring threatening target" } // Cycle next hostile ship -> Key.Eight if (said("target next hostile", 5) or said("target next foe", 5)) { press Key.Eight wait 50 ms release Key.Eight say "acquiring next hostile target" } // Cycle previous hostile ship -> Key.Seven if (said("target previous hostile", 5) or said("target previous foe", 5)) { press Key.Seven wait 50 ms release Key.Seven say "acquiring previous hostile target" } // Target next sub system -> Key.Zero if (said("target next sub system", 5)) { press Key.Zero wait 50 ms release Key.Zero say "acquiring next subsystem target" } // Target previous sub system -> Key.Nine if (said("target previous sub system", 5)) { press Key.Nine wait 50 ms release Key.Nine say "acquiring previous subsystem target" } // Weapons //--------- // Primary fire -> Joystick2.Button1 // Secondary fire -> Joystick2.Button2 // Cycle next fire group - > Key.RightBracket if (said("next fire group", 5) or said("next weapon group", 5)) { press Key.RightBracket wait 50 ms release Key.RightBracket say "configuration changed" if (var.scanner == 1) { release Key.NUMPADDivide var.scanner=0 wait 1500 ms say "permanent scanner deactivated" } } // Cycle previous fire group -> Key.LeftBracket if (said("previous fire group", 5) or said("previous weapon group", 5)) { press Key.LeftBracket wait 50 ms release Key.LeftBracket say "configuration changed" if (var.scanner == 1) { release Key.NUMPADDivide var.scanner=0 wait 1500 ms say "permanent scanner deactivated" } } // Deploy hard points -> Key.NumpadMinus AND Joystick2.Button6 if ((said("combat mode", 5) or said("prepare for attack",5)) and (var.hardpoints == 0)) { var.hardpoints=2 press Key.NumpadMinus wait 50 ms release Key.NumpadMinus say "hardpoints deployed" wait 1500 ms playsound "C:\Sounds\warchant.wav" var.hardpoints=1 } if (said("deploy hardpoints", 5) and (var.hardpoints == 0)) { var.hardpoints=2 press Key.NumpadMinus wait 50 ms release Key.NumpadMinus say "hardpoints deployed" var.hardpoints=1 } if ((said("trader mode", 5) or said("retract hardpoints", 5) or said("prepare for fsd",5)) and (var.hardpoints == 1)) { press Key.NumpadMinus wait 50 ms release Key.NumpadMinus var.hardpoints=0 wait 1000 ms say "hardpoints retracted" } if ((pressed(Key.NumpadMinus) or pressed(Joystick2.Button6)) and (var.hardpoints != 2)) { if(var.hardpoints == 0) { var.hardpoints=1 wait 1000 ms say "hardpoints deployed" } else { var.hardpoints=0 wait 1000 ms say "hardpoints retracted" } } // We only have to press the key - the above function does the rest! if(said("toggle hardpoints", 5)) { press Key.NumpadMinus wait 50 ms release Key.NumpadMinus } if(said("reset hardpoints", 5)) { toggle(var.hardpoints) say "Understood" } // Cooling //--------- // Silent running -> Key.NumpadPlus (with switched variable!) if ((said("activate stealth mode",5) or said("run unseen", 5) or said("cool down", 5) or said("system shutdown", 5)) and (var.silent == 0)) { press Key.NumpadPlus wait 50 ms release Key.NumpadPlus var.silent=1 say "Stealth mode activated" playsound "C:\Sounds\jaws.wav" wait 1000 ms } if ((said("deactivate stealth mode", 5) or said("normal operation", 5) or said("run seen", 5) or said("heat up", 5) or said("system startup", 5)) and (var.silent == 1)) { press Key.NumpadPlus wait 50 ms release Key.NumpadPlus var.silent=0 // say "Stealth mode deactivated" playsound "C:\Sounds\startup.wav" } // Make sure we get keyboard activated/deactivated silent runnings as well if (pressed(Key.NumpadPlus) or pressed(Joystick1.Button13)) { if (var.silent == 0) { var.silent=1 say "Stealth mode activated" playsound "C:\Sounds\jaws.wav" } else { var.silent=0 // say "Stealth mode deactivated" playsound "C:\Sounds\startup.wav" } wait 1000 ms } // Deploy heat sink -> Key.V if (said("use heat sink", 5) or said("deep freeze", 5)) { press Key.V wait 50 ms release Key.V say "cooling down" } // Miscellaneous //--------------- // L - Ship lights if ((said("illumination") or said("toggle lights", 5)) and (var.light == 0)) { press Key.L wait 50 ms release Key.L say "headlamp on" var.light = 1 } if ((said("illumination") or said("toggle lights", 5)) and (var.light == 1)) { press Key.L wait 50 ms release Key.L say "headlamp off" var.light = 0 } if (pressed(Key.L)) { if (var.light == 0) { say "headlamp on" var.light = 1 } else { say "headlamp off" var.light = 0 } } // Increase sensor range -> Key.PageUp if (said("zoom out", 5) or said("increase range", 5)) { press Key.PageUp wait 50 ms release Key.PageUp say "zoomed out" } if ((said("max zoom out", 5) or said("max range", 5) or said("no zoom", 5)) or (var.zoomout > 0)) { if (var.zoomout < 8) { press Key.PageUp wait 25 ms release Key.PageUp wait 50 ms var.zoomout = var.zoomout + 1 } else { var.zoomout = 0 say "maximum scanner range" wait 1000 ms } } // Decrease sensor range -> Key.PageDown if (said("zoom in", 5) or said("decrease range", 5)) { press Key.PageDown wait 50 ms release Key.PageDown say "zoomed in" } if ((said("max zoom in", 5) or said("min range", 5) or said("full zoom", 5)) or (var.zoomin > 0)) { if (var.zoomin < 8) { press Key.PageDown wait 25 ms release Key.PageDown wait 50 ms var.zoomin = var.zoomin + 1 } else { var.zoomin = 0 say "minimum scanner range" wait 1000 ms } } // Power Engines -> Key.Up if (said("power thrusters", 5) or said("power engines", 5)) { press Key.Up wait 50 ms release Key.Up say "increased thruster power" } if (said("max power thrusters") or said("max power engines") or said("max thrusters") or said("max engines")) { press Key.Up wait 25 ms release Key.Up wait 50 ms press Key.Up wait 25 ms release Key.Up wait 50 ms press Key.Up wait 25 ms release Key.Up wait 50 ms press Key.Up wait 25 ms release Key.Up say "thruster power maximized" } // Power Weapons -> Key.Right if (said("power lasers", 5) or said("power weapons", 5)) { press Key.Right wait 50 ms release Key.Right say "increased weapons power" } if (said("max power lasers") or said("max power weapons") or said("max lasers") or said("max weapons")) { press Key.Right wait 25 ms release Key.Right wait 50 ms press Key.Right wait 25 ms release Key.Right wait 50 ms press Key.Right wait 25 ms release Key.Right wait 50 ms press Key.Right wait 25 ms release Key.Right say "weapons power maximized" } // Power systems -> Key.Left if (said("power systems", 5) or said("power shields", 5)) { press Key.Left wait 50 ms release Key.Left say "increased system power" } if (said("max power systems") or said("max power shields") or said("max systems") or said ("max shields")) { press Key.Left wait 25 ms release Key.Left wait 50 ms press Key.Left wait 25 ms release Key.Left wait 50 ms press Key.Left wait 25 ms release Key.Left wait 50 ms press Key.Left wait 25 ms release Key.Left say "system power maximized" } // Power Balance -> Key.Down if (said("equal power", 5) or said("balanced power", 5)) { press Key.Down wait 50 ms release Key.Down say "Power equalized" } // Reset oculus orientation -> ? // Cargo Scoop -> Key.RightShift (in HOLD mode) if ((said("open cargo scoop", 5) or said("start collecting", 5)) and (var.scoop == 0)) { press Key.RightShift say "opening cargo scoop" var.scoop=1 } if ((said("close cargo scoop", 5) or said("stop collecting", 5)) and (var.scoop == 1)) { release Key.RightShift say "closing cargo scoop" var.scoop=0 } // Jettison cargo -> Key.End if (said("jettison cargo now", 5)) { press Key.End wait 50 ms release Key.End say "There goes my profit." } // Landing gear -> Key.G if (said("landing gear down", 5) and (var.gear == 0)) { press Key.G wait 50 ms release Key.G say "deploying gear" wait 1000 ms var.gear=1 } if (said("landing gear up", 5) and (var.gear == 1)) { press Key.G wait 50 ms release Key.G say "retracting gear" wait 1000 ms var.gear=0 } // Make sure we get keyboard activated/deactivated gear toggle as well if (pressed(Key.G)) { if (var.gear == 0) { say "deploying gear" wait 1000 ms var.gear=1 } else { say "retracting gear" wait 1000 ms var.gear=0 } } // Make sure we can resert this if needed if (said("landing gear is up", 5)) { var.gear=0 say "Understood" wait 1000 ms } if (said("landing gear is down", 5)) { var.gear=1 say "Understood" wait 1000 ms } // Microphone mute -> Key.B (hold mode) // Use shield cell -> Key.C if (said("shield cell", 5) or said("use shield cell", 5) or said("full shields", 5)) { press Key.C wait 50 ms release Key.C say "Charging shields" } // Use chaff launcher -> Key.X if (said("use chaff launcher", 5) or said("deploy chaff", 5) or said ("countermeasures", 6)) { press Key.X wait 50 ms release Key.X say "activating countermeasure" } // Mode switches //--------------- // Open Galaxy map -> Key.M if (said("galaxy map", 5) or said("map mode", 5)) { press Key.M wait 50 ms release Key.M say "toggle map" } // UI panel focus -> Key.LeftShift if (said("show front", 5) or said("no panel", 5) or said("front view", 5) or said ("front panel", 5)) { press Key.LeftShift wait 75 ms release Key.LeftShift var.panel=0 // reset it only - we don't check this for standard view say "Standard view" } if (said("reset panels", 5) or pressed(Key.LeftShift)) { say "panels reset" var.panel=0 } // Pause -> Key.P // Target panel -> Key.One if ((said("show targets", 5) or said("show navigation", 5) or said("show contacts", 5) or said("left panel", 5) or said("left view", 5)) and (var.panel != 1)) { press Key.One wait 75 ms release Key.One var.panel=1 say "target panel" } // Systems panel -> Key.Four if ((said("show systems", 5) or said("show status", 5) or said("right panel", 5) or said("right view", 5)) and (var.panel != 4)) { press Key.Four wait 75 ms release Key.Four var.panel=4 say "systems panel" } // Sensors panel -> Key.Three if ((said("show screen", 5) or said("show scanner", 5) or said("lower panel", 5) or said("bottom view", 5) or said("show sensors", 5)) and (var.panel != 3)) { press Key.Three wait 75 ms release Key.Three var.panel = 3 say "sensors panel" } // Quick Comms -> Key.Enter // Comms panel -> Key.Two if ((said("show comms", 5) or said("show communications", 5) or said("upper panel", 5) or said("top view", 5)) and (var.panel != 2)){ press Key.Two wait 75 ms release Key.Two var.panel=2 say "communications panel" } // Interface mode //---------------- // UI panel up -> Key.W // UI panel down -> Key.S // UI panel left -> Key.A // UI Panel right -> Key.D // UI panel select -> Key.Space // Next panel tab -> Key.E if (said("panel right", 5) or said("right tab", 5) or said("next tab", 5)) { press Key.E wait 50 ms release Key.E } // Previous panel tab -> Key.Q if (said("panel left", 5) or said("left tab", 5) or said("previous tab", 5)) { press Key.Q wait 50 ms release Key.Q } // headlook mode //--------------- // Head look -> Key.NUMPAD0 if ((said("enable tracker",5) or said("dogfight mode on", 5) or said("enable dogfight mode", 5) or said("headlook mode", 5)) and (var.headlook == 0)) { press Key.NumPAD0 wait 50 ms release Key.NumPAD0 say "head tracker enabled" var.headlook=1 } if ((said("disable tracker",5) or said("dogfight mode off", 5) or said("headlook mode off", 5)) and (var.headlook == 1)){ press Key.NumPAD0 wait 50 ms release Key.NumPAD0 say "head tracker disabled" var.headlook=0 } if (pressed(Key.Numpad0)) { if(var.headlook == 0) { say "head tracker enabled" var.headlook=1 } else { say "head tracker disabled" var.headlook=0 } } if (said("toggle headlook", 5) or said("toggle tracker",5 ) or said("dogfight mode", 5) or said("toggle headlook mode", 5)) { press Key.NumPAD0 wait 50 ms release Key.NumPAD0 say "toggled headlook mode" } // Reset head look -> Key.NumPadDot if (said("jarvis reset headlook", 5) or said("jarvis reset tracker",5 ) or said("jarvis center view", 5) or said("center view", 5) or said("jarvis center tracker", 5)) { press Key.NumPadDot wait 50 ms release Key.NumPadDot say "tracker centered" } // Look up -> Joystick2.Pov1Up // Look down -> Joystick2.Pov1Down // Look left -> Joystick2.Pov1Left // Look right -> Joystick2.Pov1Right // Galaxy Map //------------ // Galaxy cam pitch up -> Key.T // Galaxy cam pitch down -> Key.G // Galaxy cam yaw left -> Key.Q // Galaxy cam yaw right -> Key.E // Galaxy cam translate forward -> Key.W // Galaxy cam translate backward -> Key.S // Galaxy cam translate left -> Key.A // Galaxy cam translate right -> Key.D // Galaxy cam translate up -> Key.R // Galaxy cam translate down -> Key.F // Galaxy cam zoom in -> Key.Z // Galaxy cam zoom out -> Key.X // Galaxy cam set Y axis to Z axis -> ? //================= // Command scripts //================= // Send Docking request if (said("request docking", 5) or said("docking request", 5) or said("let me in", 5)) { press Key.E wait 50 ms release Key.E wait 200 ms press Key.E wait 50 ms release Key.E wait 200 ms press Key.Space wait 50 ms release Key.Space wait 250 ms press Key.S wait 50 ms release Key.S wait 200 ms press Key.Space wait 50 ms release Key.Space wait 200 ms press Key.Q wait 50 ms release Key.Q wait 200 ms press Key.Q wait 50 ms release Key.Q say "docking request sent" } // Cancel docking request if (said("cancel docking", 5) or said("cancel docking request", 5) or said("abort docking", 5)) { press Key.E wait 50 ms release Key.E wait 200 ms press Key.E wait 50 ms release Key.E wait 200 ms press Key.Space wait 50 ms release Key.Space wait 250 ms press Key.S wait 50 ms release Key.S wait 200 ms press Key.Space wait 50 ms release Key.Space wait 200 ms press Key.Q wait 50 ms release Key.Q wait 200 ms press Key.Q wait 50 ms release Key.Q say "docking request cancelled" } // Battle stations if (said("under attack", 5) or said("battle stations", 5) or said("red alert", 5)) { playsound "C:\Sounds\aoogah.wav" if (var.hardpoints == 0) { var.hardpoints=2 press Key.NumpadMinus wait 50 ms release Key.NumpadMinus var.hardpoints=1 } // Equalize power press Key.Down wait 50 ms release Key.Down // divert power to shields press Key.Left wait 50 ms release Key.Left // divert power to weapons press Key.Right wait 50 ms release Key.Right // Acquire next target (works fine for interdictions) press Key.Six wait 50 ms release Key.Six wait 3500 ms say "ship ready for action" } // Keep scanner active all the time if (said("activate scanner", 5) and (var.scanner == 0)) { press Key.NUMPADDivide say "permanent scanner activated" var.scanner=1 } if (said("deactivate scanner", 5) and (var.scanner == 1)) { release Key.NUMPADDivide say "permanent scanner deactivated" var.scanner=0 } // deactivate permanent scanner if joystick button is pressed if (pressed(Joystick2.Button2) and (var.scanner == 1)) { release Key.NUMPADDivide say "permanent scanner deactivated" var.scanner=0 } }
Please note that you will have to change either the script or your keyboard configuration in Elite: Dangerous to be able to use this script.
©2000-2022 by Stefan Giesen aka Igor[Rock] - Impressum