Can't reach your connector — your browser blocks this page from your PC. Open the local app to skip it (no setup).
✕
Appearance
Accent colour
Units
Weight
Distance
Fuel volume
What's new · v{{ appVersion }}
First Officer voice
Choose a voice
Pick the engine, then a voice · ▶ to hear a sample. Your pick is saved instantly.
Engine
{{ en.label }}
{{ en.num }}{{ en.label }}
{{ crew.localEngineNote }}
{{ g.label }}{{ g.count }}
{{ v.name }}
{{ v.desc }}
The cloud voice runs at a fixed pace — the speed slider applies to the offline (Local) voice.
{{ crew.previewErr }}
{{ gc.label }}
{{ crew.inworld.steerLabel }}
{{ crew.inworld.favLabel }}
Clear
{{ crew.inworld.note }}
Voices{{ crew.inworld.countLabel }}
{{ crew.inworld.emptyText }}
{{ v.name }}
{{ v.meta }}{{ v.desc }}
The Studio cloud voice runs through your Co-Buddy account — nothing to configure. It runs at a fixed pace.
{{ g.label }}{{ g.count }}{{ g.hint }}
{{ v.name }}
{{ crew.voiceMismatchTxt }}
{{ crew.ttsStatusText }} · {{ crew.voiceMeta }}
PTT voice speed{{ crew.foSpeedLabel }}
SlowerFaster
Cabin PA
Passenger announcements
Assign an announcement to a slot, then play it — it airs over the cabin and ducks your First Officer.
The connector is offline. Start it to manage and play announcements.
ON AIR{{ pa.playingName }}
On your Stream Deck{{ pa.loadCount }}
The dial on your Stream Deck scrolls these ten, in order. Play one here to send it over the cabin — it ducks your First Officer.
Tap a slot below for {{ pa.assignName }}
{{ s.num }}
{{ s.name }}
{{ s.srcLabel }}{{ s.cat }}Add one from the library below
No announcements yet — Create one or Record your own.
{{ g.label }}{{ g.count }}
{{ c.name }}
{{ c.srcLabel }}{{ c.cat }}
EQ · {{ c.filterLabel }}
{{ pa.addedTitle }}
{{ pa.addedSub }}
Studio (cloud)
Offline
Loading more voices — you can generate now with the default.
Add cabin chime before it plays
{{ pa.genError }}
{{ pa.addedTitle }}
{{ pa.addedSub }}
{{ pa.recStatus }}
Add cabin chime before it plays
Recorded on this device, then sent to the connector, which adds the chime and stores it. Up to 30 seconds.
{{ pa.notice }}
Speech-to-text
Transcription settings
{{ crew.sttModalHint }}
Cloud engine
{{ en.label }}
Standard is the default. Studio runs through your Co-Buddy account — nothing to configure.
On-device model
Model
Run on
Cleanup
{{ crew.sttStatusLine }}
Mission briefing{{ confirmStart.diffLabel }}
{{ confirmStart.title }}
{{ confirmStart.hook }}
{{ f.k }}{{ f.v }}
Weight & balance{{ confirmStart.wb.withinLabel }}
PAYLOAD{{ confirmStart.wb.payloadUsedLabel }}
Fuel
{{ confirmStart.wbFuelLabel }}
Gross
{{ confirmStart.wb.grossLabel }}
Headroom
{{ confirmStart.wb.headroomLabel }}
CG
{{ confirmStart.wb.cgLabel }}
Indicative — pilot + recommended fuel for the leg. The connector confirms the final weight & balance at spawn.
This will reposition your aircraft in the simulator to the mission start ({{ confirmStart.depLine }}) and load the scenario cold & dark. Don't start it mid-flight unless you mean to.
This loads the {{ confirmOpStart.aircraft }}cold & dark at {{ confirmOpStart.dep }} and ends your current flight. The route pre-loads on spawn — switch to MSFS once it starts.
Restart operation
{{ confirmOpRestart.title }}
This tears down your current run (no pay, no fee) and starts it over — the {{ confirmOpRestart.aircraft }} reloads cold & dark at the gate at {{ confirmOpRestart.dep }} with the route pre-loaded. Switch to MSFS once it starts.
Cancel operation
{{ confirmOpCancel.title }}
This tears down the run you're flying so you can pick another. No pay and no fee — it's simply cancelled. Your aircraft stays where it is; starting a new operation will reposition it.
This returns the contract to the board and charges a small cancellation fee that grows the longer you hold the booking — about €10 just after booking, up to about €40 near departure. The exact amount is debited when you confirm.
This drops the contract you're flying so you can pick another. No pay and no fee — it's simply abandoned. Your aircraft stays where it is; starting a new contract will reposition it.
A two-position switch shows up as two buttons. Set this one, then pair the other so the switch follows the sim both ways — no desync.
Partner switch position — the button that SETs the OFF value
{{ p.label }}
{{ picker.stage.advLabel }}
ON value — this button
OFF value — partner
This is an H:var — fire-only. It has no value to set; the button just fires it on press.
{{ picker.lvarNote }}
No commands match. Clear the search or pick a different source.
{{ g.cat }}
{{ it.label }}
{{ it.type }}
{{ it.id }}
{{ it.desc }}
Scan hardware
✕
Loaded aircraft
{{ hwCap.acName }}
{{ hwCap.target }}
Toggle a control on your controller
Press a button or switch, or move a lever — Co-Buddy detects exactly which one, then you pick what it does.
Assign a function · this aircraft
{{ s.label }}
{{ cc.label }}
No functions match. Clear the search.
{{ g.cat }}
{{ it.label }}
{{ it.type }}
{{ hwCap.fnLabel }}
{{ hwCap.fnId }}
This button sends · {{ hwCap.value.plain }}
{{ s.label }}
{{ s.sub }}
Fire-only — the button just triggers it on press.
{{ hwCap.savedTarget }} → {{ hwCap.savedFn }}
Saved to this profile. Nothing else changed.
Not the control you meant? Skip it.
Scan simulator
✕
Loaded aircraft
{{ simCap.acName }}
Operate a control in the cockpit
Flip a switch or turn a knob in the sim — Co-Buddy names it and reads its real value, then you put it on your hardware.
{{ simCap.label }}
{{ simCap.id }}
{{ simCap.stateLabel }} · {{ simCap.plain }}
{{ s.label }}
{{ s.sub }}
{{ simCap.obsNote }}
Fire-only — the button just triggers it on press.
Put it on · {{ simCap.chosenBtn }}
{{ b.label }}
{{ simCap.savedLabel }} → {{ simCap.savedBtn }}
Saved to this profile. Nothing else changed.
Version history
Co-Buddy Web · v{{ appVersion }}
v{{ rel.v }}{{ rel.date }}
·{{ n }}
How this works
{{ help.title }}
{{ help.lead }}
›{{ t }}
Remove controller
Remove {{ confirmRemove.name }}?
This forgets the controller's WebHID permission and drops it from Co-Buddy. Your saved mappings stay — re-add it any time with + Add device (you'll re-grant access once).
Connect a controller
Your browser will ask which device to share
A small browser prompt lists your USB devices. Pick your controller and hit Connect — Co-Buddy then reads its axes, buttons and lights automatically. You only do this once per device.
The connector is running, but your browser is blocking this page from reaching it on your own computer. In Chrome: click the site-info icon left of the address bar → allow Local network access, then reload. (It links automatically once allowed.)
Pick one or more profiles to bundle into a single code. Your friend pastes it into Import — each profile applies when they fly the matching aircraft.
{{ p.tick }}
{{ p.name }}
{{ p.sub }}
{{ shareImgsTick }}
Include aircraft photos
Bigger code — leave off unless you want the cover art too
Send code
{{ shareCode }}
Your friend types this short code into Import. It works for 30 days.
Cloud unavailable — send this offline code instead (works on any Co-Buddy, no account):
{{ shareOffline }}
Import profiles
Add a shared profile
Paste the code a friend sent you — a short send-code or a long SM1: code. Imported profiles are tagged with who shared them and stay dormant until you fly the matching aircraft.
{{ importPrevHead }}
{{ pp.name }}
{{ pp.sub }}
{{ pp.devTxt }}
Nothing is applied yet — press Apply below, or edit the code to start over.
{{ importReplaceTick }}
Replace matching profiles
If a profile matches an aircraft you already have — overwrite it (off = keep both)
Works with any USB controller — a few it greets by name
{{ hc.name }}+ anything else that plugs in
{{ cat.cat }}
{{ d.name }}
{{ d.specs }}
{{ d.statusTxt }} · {{ d.mapped }} mapped
✕
{{ benchDevName }}
{{ benchDevSpecs }}
Axes
{{ lv.hw }} ⠿
{{ lv.vtext }}
DET
{{ lv.fname }}
34%
Axis mapping
{{ insp.hw }}
Function name
hardware axis stays {{ insp.hw }} — your label rides on top
Printed label (shown vertical)
Assign command
{{ insp.cmd }}▾
Response & feel{{ insp.curveName }}
Drag the dots to shape it · double-click to add a point · double-click a dot to remove
Centre dead-zone{{ insp.deadCenterPct }}%
Invert axis
Axis zones · range-blocksdrag a band to move · drag its edges to resize
Divide the travel into bands. Each band fires its command while the lever sits in it — or mark it a dead-zone to block the axis there. Bands never overlap; drag one toward a neighbour and it clips at the boundary.
Band {{ z.n }}–%
{{ z.cmd }}▾
No bands yet — add one to react to part of the travel.
Bottom detent
Drive a 2nd function past full travel
main range→DET→{{ insp.detLabel }}
Past the detent, this axis drives
{{ insp.detDriveTarget }}▾
{{ insp.detDriveEvent }}
Detent button
{{ insp.detBtnText }}
Invert detent axis
Handle & motion
Handle shape
Handle width
Axis-motion colour
Select an axis
Click a lever on the left to open its full editor — mapping, feel curve, detent and range-blocks.
Buttons{{ btnStat.used }} mapped/seen · {{ btnStat.total }} on this controller
btn {{ bt.btnNo }}i
{{ bt.name }}
{{ bt.cmdLabel }}
Press a button on your controller — it lights up here. Click any button to load its mapping on the right, or drag it onto a custom-module slot below.
▾
{{ mod.colLabel }}
Button mapping
Ready
Name this button
Trigger
{{ insp.trigLabel }} — command
{{ insp.cmd }}▾
{{ insp.detText }} — set this on the Axes tab (its lever's Bottom Detent), not here.
Command
{{ insp.cmd }}
Drag a function from the tray straight onto this button.
Button colour
Icon
Pick a button to edit
Press a button on your controller, or click one in the grid, to load its mapping here and assign a command.
Landing gear lever
UP
DN
{{ gearStateLabel }}
UP → GEAR_UP
DN → GEAR_DOWN
click the handle to raise / lower the gear
Flap lever
SIM {{ flapPosLabel }}
Encoders{{ encCount }}
{{ en.name }}
CW ↻ / CCW ↺
{{ en.status }}
A value knob is two outputs (CW / CCW). Click it, then bind a command to each turn — or capture its two buttons.
Gear lever
Landing gear
Lever UP — command
GEAR_UP
Lever DOWN — command
GEAR_DOWN
A two-position lever — raising it sends GEAR_UP, lowering it sends GEAR_DOWN. Click the handle to drive it and read the live position back from the sim.
Encoder · CW / CCW pair
{{ inspEnc.name }}
Turn CW ↻ — command
{{ inspEnc.cw }}▾
{{ inspEnc.cwBtnLabel }}
Turn CCW ↺ — command
{{ inspEnc.ccw }}▾
{{ inspEnc.ccwBtnLabel }}
This knob isn't a true encoder — it emits two outputs, one per turn direction. Bind a command to each, or press Capture button and turn the knob that way to learn which physical button it is. Captured buttons fire their command through the connector automatically.
Flap lever
{{ flapPosLabel }}
{{ flapProfileName }}
Aircraft profile
Detents — tap to drive the lever
Map a function to each position
{{ d.label }}{{ d.assignedText }}
Drag a function from the tray below straight onto a position — here or on the lever itself — to map it. Tap a position to drive the lever there.
Axis / command
AXIS_FLAPS_SET
The lever travels through each detent and reads its position back from the sim — {{ flapDetCount }} positions on this airframe. Switch the profile to match your aircraft and the gates change with it.
Choose a lever or dial
Click the landing-gear lever, the flap lever or an encoder on the left to edit how it maps.
Output & LEDs{{ ann.countTxt }}
click to select · drag to rearrange
No indicator lights on this controller
This device reports no LED outputs. Plug in a controller with indicator lights and they appear here automatically.
ROWS{{ m.rowsTxt }}
COLS{{ m.colsTxt }}
⊞ Dividers
+ Light
▏ Vertical
{{ ch.label }}
▔ Horizontal
{{ ch.label }}
Tap a number to add or remove a divider at that gap — or click any divider line to remove it. Mix vertical & horizontal, as many as you like.
Add a light · {{ m.picker.count }} on this controller
Done
Tap Test to flash that bulb on the controller so you know which one it is — then Add it.
{{ p.l1 }}
{{ p.testLabel }}
{{ p.addLabel }}
{{ c.l1 }}
{{ c.l2 }}
divider
+ Add module
LED mapping
Name this light
Lens colour · auto by convention
BehaviourSingleMulti-state
+ Add state
The light shows whichever state's condition is active in the sim — colour & text change live. Each state drives its own physical LED. Click a dot to preview.
Sim condition
Bulb test
{{ ann.insp.testLabel }}
All off
Live
Clear mapping
Remove from panel
Pick a light to edit
Click any tile to rename it, set its lens colour, map the sim condition it follows, and test that one bulb on the controller.
Displays{{ dispCountTxt }}
{{ d.label }}{{ d.badge }}
{{ d.ghost }}{{ d.preview }}
{{ d.sub }}
Pick a display on the left to choose what it shows and to test-drive its segments.
Display mapping
{{ dispInsp.hw }}
Display name
Data source
{{ dispInsp.digitsTxt }} · pick any sim value; the segments + the preview update live
Live preview{{ dispInsp.liveTxt }}
{{ dispInsp.ghost }}{{ dispInsp.preview }}
{{ dispInsp.previewHint }}
Test-drive
Push a value to the real segments so you can confirm the hardware lights up — even with no sim running.{{ dispInsp.testNote }}
Mapping profiles
Every aircraft you fly gets its own saved mapping.
Engine
Count
{{ profModel.emptyTxt }}
Now flying{{ profModel.current.label }}{{ profModel.current.classTxt }}
{{ p.name }}ACTIVEDORMANT
{{ p.metaTxt }}
{{ p.acLabel }}{{ p.acClass }}
{{ p.name }}ACTIVEDORMANT
{{ p.metaTxt }}
In the cockpit with {{ crewName }}
{{ d.label }}
{{ d.value }}{{ d.unit }}
{{ foTeleNote }}
Aircraft{{ foAircraft }}
{{ foStatus.txt }}
{{ crewInitial }}
{{ crewName }}
{{ crewRoleLabel }}
Copied{{ foStatus.txt }}
{{ icView.note }}
{{ g.label }}
{{ m.who }}{{ m.time }}
{{ m.text }}
{{ m.who }}
{{ m.text }}
Loading the conversation log…
No conversation yet.
{{ crewInitial }}
{{ crewName }}
{{ crewRoleLabel }}
{{ crewDesc }}
Focus on flight topics
Training mode
ⓘFocus filter is off — the First Officer responds to anything, including non-flight chatter, which uses your included First Officer time faster.
Toggles Live headless — any aircraft, browser closed.
Deterministic commands, prompt and tools stay the same for both — the choice only changes who answers open questions, and applies on the next Live start.
Live pause override
{{ crew.liveSilenceLabel }}
Live voice speed
{{ crew.liveSpeedLabel }}
Standby acknowledgement
Saved — applies on next Live start
Voice
Speech-to-text
Cloud
Local
{{ crew.sttSettingsLabel }}
{{ crew.sttSettingsSub }}
Settings
Text-to-speech
Cloud
Local
{{ crew.selVoiceName }}
{{ crew.selVoiceGroup }}
Change
Audio
Volume
Microphone
Speakers
Radio & extras
Radio voice effect
Speak command confirmations
Notification sounds
Pressure units (QNH)
Units (engine & fuel)
Effect
ATIS
Cloud
Local
{{ atis.lvText }}
Radio filter
Auto-tune
Off
COM1
COM2
Search range
20 nm
50 nm
100 nm
Nearby frequencies
{{ atis.note }}
{{ atis.emptyText }}
{{ atis.nowName }}
{{ atis.nowInfo }}
{{ atis.text }}
Cabin PA
Passenger announcements — welcome, seatbelt, delays, brace. Fire a preset or your own line into 10 slots; it plays over the cabin and quietly ducks your First Officer.
Start the connector to manage and play announcements.
Add the pilots you fly with by email — accepted friends show up live on the map.
{{ friendMsg }}
Requests
{{ r.ini }}
{{ r.name }}
wants to be friends
Your pilots
{{ f.ini }}
{{ f.name }}
{{ f.statusTxt }}
×
No friends yet — add one above to see them fly.
{{ community.metricLabel }}
No standings yet
When pilots start completing operations, the top of the table fills in here.
{{ r.medal }}{{ r.rank }}
{{ r.name }}
{{ r.sub }}
{{ r.valueTxt }}
{{ community.youRank }}
{{ community.youName }} · you
{{ community.youVal }}
{{ community.activeTxt }}
{{ community.totalEarnedTxt }}
paid out · {{ community.totalOpsTxt }} ops
{{ community.friendsTxt }}
Quiet skies right now
Completed operations and payouts from across the community will scroll through here as they happen.
{{ e.name }}{{ e.line }}DEMO
{{ e.ago }}
{{ e.amountTxt }}
Admin · operations
Live Ops generator
Create a community operation — route, schedule, goal & bonus — then generate its cinematic key art and storyline. Pilots fly it cold-and-dark with the route pre-loaded; completion pays the Career wallet.
Rough notes are fine — AI fills the empty fields and keeps whatever you typed.{{ liveops.form.autosaveTxt }}
{{ liveops.form.autofillErr }}
Operation
Route & altitudes
Route preview: {{ liveops.form.routePreview }}
Schedule (your local time)
Starts
Ends
Goal & reward
Community bonus € — paid to every contributor when the shared goal is met (e.g. 2000–5000)
Completion:
Target zone
Drop the exact arrival/parking spot — an airport gate (zoom in on Streets), or anywhere for a bush strip. A circle of your chosen radius is the “arrived” zone.
Every contract needs an airframe that can carry it. Buy your first aircraft on the Market — it appears here with live condition, value and maintenance.
{{ f.status }}{{ f.alert.label }}
{{ f.name }}
{{ f.reg }}{{ f.yearTxt }}
{{ f.type }} · {{ f.loc }}
Condition{{ f.worst.pct }}
Value{{ f.value }}
Lifetime earned{{ f.lifetime }}
{{ f.condNote }}Details →
No listings right now
The aircraft market loads with your career. Pull it again — new airframes rotate onto the market as you fly.
{{ a.sim }}
{{ a.name }}
{{ a.role }}
{{ a.specLine }}
{{ a.power }}
{{ a.price }}
Crew
Your pilots · switch any time
{{ p.name }}ActiveEXAMPLE
{{ p.role }} · based {{ p.base }}
{{ c.t }}
{{ p.desc }}
Hours
{{ p.hours }}
Missions
{{ p.missions }}
Earned
{{ p.earned }}
Balance
—
Spendable in your wallet
Net worth
{{ netWorthTxt }}
Cash + fleet − debt
Total debt
{{ fin.debtTxt }}
{{ fin.debtSub }}
Monthly commitments
{{ fin.monthlyTxt }}
{{ fin.monthlySub }}
Credit rating
{{ fin.creditScore }}{{ fin.tierLabel }}
{{ fin.creditSub }}
—
Builds from on-time loan payments — it prices your rate and opens the stricter banks.
Commitments
Active loans
{{ fin.loansNote }}
You're flying debt-free
Need capital for the next airframe? The lender market on the right prices five banks against your rating and what you own.
{{ l.name }}
{{ l.sub }}
{{ l.amount }}
of {{ l.original }}
{{ l.paidLabel }}{{ l.nextTxt }}
{{ l.earlyNote }}
Extra payment
The lender market
{{ banks.headline }}
{{ banks.note }}
{{ b.stampTxt }}
{{ b.name }}
{{ b.tagline }}
{{ b.aprTxt }}{{ b.aprSub }}
{{ c.t }}
{{ b.bandTxt }}
Amount
Term
Secured on
Loan amount{{ b.amtTxt }}
Arrangement fee−{{ b.feeTxt }}
Paid out to you{{ b.netTxt }}
Monthly payment{{ b.monthlyTxt }}
{{ b.termTxt }}Total interest {{ b.interestTxt }}
{{ b.declineTxt }}
{{ b.reasonTxt }}
{{ b.feeLine }}
Payments post monthly from your wallet — on-time payments raise your score and open the stricter banks; a payment without cash cover overdrafts the account, triggers the bank's late fee and hurts your rating.
{{ o.lender }}
Secured
{{ o.name }}
{{ o.aprTxt }}your rate · list {{ o.aprBaseTxt }}
{{ o.bandTxt }}
Amount
Term
Collateral
Borrow{{ o.amtTxt }}
Monthly{{ o.monthlyTxt }}
{{ o.termTxt }}Total interest {{ o.interestTxt }}
{{ o.reasonTxt }}
{{ banks.emptyMsg }}
Collateral
Your aircraft as security
{{ collat.note }}
AircraftStatusValue · equity
{{ collat.emptyTitle }}
{{ collat.emptyMsg }}
{{ c.title }} {{ c.tail }}
{{ c.sub }}
{{ c.stTxt }}Hangared
{{ c.valueTxt }}
equity {{ c.equityTxt }}
Owed {{ c.owedTxt }}Value {{ c.valueTxt }}
{{ l.name }}
{{ l.sub }}
A forced sale clears {{ c.fsTxt }} (74% repo haircut) — after the debt settles you'd keep {{ c.fsNetTxt }}.
Tracked live — your AI crew shows on the Live Ops map with its own marker.
{{ p.dutyTxt }}
{{ p.stTxt }}
Staff
Pilots & technicians
The company desk runs on your connector
Start the connector to hire crew, rent hangars and read your statement.
Your people · {{ staffV.rosterNote }}
No one on the payroll yet
Hire from the candidate board — technicians cut every maintenance bill now; payroll pilots stand by for crew scheduling (not live yet). To send a pilot flying today, use the Dispatch crew above.
{{ p.ini }}
{{ p.name }} {{ p.roleTxt }}
{{ c.t }}
{{ p.note }}
{{ p.salaryTxt }}
{{ p.subPay }}
Hiring
Candidate board
The company desk runs on your connector
Start the connector to hire crew, rent hangars and read your statement.
Hiring board · {{ staffV.boardNote }}
No candidates right now
The board rerolls with fresh pilots and technicians — refresh it above.
{{ p.ini }}
{{ p.name }} {{ p.roleTxt }}
{{ c.t }}
{{ p.salaryTxt }}
{{ p.subPay }}
Crew scheduling for payroll pilots isn't live yet — they hold a standby slot for now. Technician discounts apply to every repair bill already. To fly a contract today, hire from the Dispatch crew above.
Hangars
Under cover
{{ hangarV.note }}
Hangars run on your connector
Rent or buy hangar space per airport once the connector is up — covered aircraft skip the daily ramp fee, get cheaper maintenance and wear slower.