Skip to content

Mapping

mojouto3 edited this page Aug 2, 2026 · 5 revisions

Mapping

The Mapping tab detects your physical controllers and forwards their input onto one or more vJoy virtual devices.


Detecting devices

MIM detects physical controllers through the browser's Gamepad API, the same mechanism your browser uses, so no extra drivers are needed just to see them. If a device doesn't show up right away after plugging it in, move a stick or press a button: many controllers only report themselves to Windows on their first input.

MIM's own vJoy virtual devices are automatically excluded from this list, so you can't accidentally map a device to itself.


A single mapping

Each mapping is its own card with a device list, a target, and a Start/Stop button.

  1. Click a device in the left-hand list to select it.
  2. Pick a target from Forward to (a vJoy virtual device you created in Virtual Devices).
  3. Click Start Mapping.

While mapping is active, the right-hand panel shows the selected device's axes and buttons updating live, and the same live values are what's being sent to the vJoy target.

Combining devices onto one target

Click more than one device in a mapping's list to select several at once. Their axes and buttons are concatenated in selection order and forwarded together to that one vJoy target, useful for a HOTAS split across two USB devices (stick + throttle) that you want to appear as a single virtual controller.

A vJoy device accepts up to 8 axes. If your combined selection exceeds that, MIM shows a warning and the extra axes are dropped rather than mapped incorrectly.

Tuning individual axes

Each axis row in the live preview has a small tune icon. Click it to open per-axis controls:

  • Invert: flips the axis direction.
  • Deadzone: ignores small movement near center, useful for a stick with a bit of drift so it reads a clean 0 at rest instead of a faint wobble.
  • Curve: makes the axis less sensitive near center and more sensitive toward the edges (below 1x), or the opposite (above 1x); 1x is linear, no change.

The preview bar and value reflect the shaped result, not the raw input, so you see exactly what's being sent to vJoy while you tune. A small dot on the tune icon marks axes with non-default settings; click Reset inside the panel to clear one back to defaults.

These settings follow the physical device and axis, not the mapping or target, so they stay put if you reassign that device to a different vJoy target or a different game profile.


Running more than one mapping at once

Click Add Mapping to create another mapping card, with its own device selection, target, and Start/Stop, independent of the others. This is different from combining devices onto one target: each mapping here keeps its own separate vJoy device and runs at the same time as the others.

This is what a HOTAS's throttle and stick (each feeding a different vJoy device) or a HOSAS pair (a left and right stick, each with its own target) need: two devices, two targets, both live simultaneously.

A device or vJoy target already used by one mapping is disabled in every other mapping's picker, so you can't accidentally feed the same physical device into two targets, or have two mappings fight over the same vJoy device.


Swapping targets

Some games occasionally scramble which device they think is which (Star Citizen's HOSAS bindings sometimes swap left/right after an update, treating your left stick's input as if it were the right one, even though Windows and vJoy still identify them correctly). Rather than digging into the game's own console or config, click the swap icon between two mappings to flip which vJoy target each one feeds, immediately, even while both are live. Whatever the game had backwards now lines back up, from MIM's side, without touching the game at all.


Game profiles

If you regularly switch between games that each want a different mapping setup (Star Citizen with two HOSAS sticks, Euro Truck Simulator with just a wheel, Farming Simulator with a different combination again), save the whole current arrangement as a named profile instead of rebuilding it every time.

  1. Set up your mappings (devices, targets) as usual.
  2. Click Save current as..., give it a name (for example the game's name), and save.
  3. Later, click that profile's pill to switch to it: it loads the saved devices and targets and starts them immediately. This is different from remembered mappings below, applying a profile is an explicit action, so unlike auto-restore on launch, it doesn't wait for you to click Start.

The active profile's pill stays highlighted, and un-highlights automatically if you change the setup by hand afterward (add or remove a mapping, change a device or target, swap targets), so it's clear when what's running no longer matches the saved profile.

Profiles live as individual JSON files in a profiles folder inside MIM's own data folder, not the install folder, so reinstalling or updating MIM never touches them. You can open that folder and back the files up yourself if you want, or use Settings' Export/Import for a single combined backup file instead.


Remembered mappings

MIM remembers which physical device (or combination) was mapped to which vJoy target. The next time you launch the app with the same device(s) connected, each saved mapping is restored as its own card with its selection and target filled in, no need to rebuild a multi-mapping setup by hand every time.

What's remembered is only the association between devices and target, mapping itself is never started automatically. You still need to click Start Mapping on each one, this is intentional: MIM doesn't assume you always want live input forwarding the moment it launches.

If you unplug a device from a remembered combination and reconnect a different set, MIM won't guess, it only auto-restores a combination if every device in it is currently connected. If a device disconnects while selected, it's dropped from its mapping rather than staying selected in the background.


Mapping keeps running in the background

Closing MIM's window (the X) sends it to the system tray instead of quitting, and minimizing it works the same way, mapping keeps feeding vJoy normally either way, so you can start mapping, put MIM aside, and switch to your game without interruption.

Stopping mapping

Click Stop on a mapping to release its vJoy device, or click the × to remove that mapping card entirely (stopping it first if it was live). Mapping also stops automatically if you navigate to a different tab (Mapping's live feed only runs while that tab is open) or fully quit MIM via the tray's Quit, so a vJoy device is never left claimed by a MIM process that's no longer running or visible.

Clone this wiki locally