A tiny free reWASD alternative for a two-PC Star Citizen setup. MouseToPad turns keystrokes that your mouse software emits (F13–F24 from Corsair iCUE, for example) into virtual Xbox 360 controller input — which Moonlight streams to a second PC where your alt account has those buttons bound. It can also keep that remote session from idling out with randomized, human-looking anti-AFK input.
Scimitar thumb button
│ iCUE macro
▼
F13–F24 keystroke ──► low-level keyboard hook (MouseToPad, swallows the key)
│
▼
virtual Xbox 360 pad (ViGEmBus)
│
▼
Moonlight ──── stream ────► second PC ──► Star Citizen (alt account)
- Your own machine never reacts to the pad — your local game simply has no gamepad bindings, so the virtual controller exists purely to be streamed.
- F13–F24 are ideal trigger keys: no physical keyboard has them, so nothing else on your system will ever react to them. Any macro software that can send them works, not just iCUE.
- System tray app — Enable / Disable, mapping editor, exit; green/grey icon shows state
- Mapping editor — map any key to any Xbox 360 control (including full-press LT/RT): edit rows in place, pick trigger keys from a dropdown that includes F13–F24, or capture any key with one press
- Keep player active (anti-AFK) — periodic stick nudges or button taps with randomized timing, direction, strength, and eased motion so the input stream looks human, not scripted — with a Test button to fire one on demand
- Persistent settings —
%APPDATA%\MouseToPad\mappings.json, human-readable - Installer — per-user (no admin needed), optional start-with-Windows and desktop shortcut
Two Windows 10/11 PCs on the same network. In this guide they are:
| Name | What it is | What gets installed on it |
|---|---|---|
| YOUR PC | the one you sit at and play your main account on | MouseToPad, Moonlight, ViGEmBus, iCUE |
| ALT PC | the one running the alt account's Star Citizen | Sunshine |
Everything below is free.
Do the parts in order. Each part ends with a ✅ check — don't continue until the check passes.
- On the ALT PC, open a web browser and go to the Sunshine releases page.
- Under Assets, download the file ending in
-windows-installer.exeand run it.- If Windows shows a blue "Windows protected your PC" box, click More info, then Run anyway.
- Click through the installer with the default options.
- When it finishes, open a browser on the ALT PC and go to
https://localhost:47990- The browser will warn "Your connection is not private" — that's normal (Sunshine uses a self-signed certificate). Click Advanced, then Continue / Proceed to localhost.
- Sunshine asks you to create a username and password. Pick anything — write it down — and log in with it.
🖥️ No monitor on the ALT PC? Sunshine can only stream a screen that exists. If the ALT PC runs headless, buy a cheap HDMI dummy plug (a few dollars) and leave it in a video port — otherwise the stream will be black.
✅ Check: you are looking at the Sunshine web page on the ALT PC and you are logged in.
- On YOUR PC, press the Windows key, type
powershell, press Enter, and run:(Or download it from moonlight-stream.org.)winget install -e --id MoonlightGameStreamingProject.Moonlight
- Start Moonlight (Start menu → type "Moonlight").
- Moonlight automatically finds the ALT PC and shows it as a computer tile.
Click the tile. Moonlight now shows a 4-digit PIN. Leave this on screen.
- If no tile appears, make sure both PCs are on the same network and that Sunshine is running on the ALT PC, then click the ↻ refresh button.
- On the ALT PC, go back to the Sunshine web page and open the PIN tab
(or browse to
https://localhost:47990/pin). Type in the 4-digit PIN from Moonlight, give the device any name, and click Send. - Back on YOUR PC, the tile unlocks. Click it, then click Desktop.
You should now see the ALT PC's screen inside a window on YOUR PC.
- To leave the stream at any time press Ctrl+Alt+Shift+Q.
- One required setting: in Moonlight click the ⚙ Settings gear, open the Input section, and turn ON “Process gamepad input when the app is in the background.” Without this, the controller only works while the Moonlight window is focused — and the whole point is using it while you play your own game.
✅ Check: you can see and control the ALT PC's desktop from YOUR PC, and the background-gamepad setting is ON.
This driver is what lets MouseToPad create a fake Xbox 360 controller.
- On YOUR PC, go to the
ViGEmBus releases page
and download
ViGEmBus_Setup_x64.exefrom the newest release's Assets. - Run it and click through with the defaults (this one does ask for admin — say Yes).
✅ Check: the installer finished without errors. (MouseToPad will tell you loudly in Part 4 if the driver is missing.)
- On YOUR PC, download
MouseToPadSetup.exefrom the latest release (it's under Assets). - Run it. If Windows shows "Windows protected your PC", click More info → Run anyway (the app is unsigned, that's all).
- Leave both checkboxes ticked (desktop shortcut and start automatically when you sign in) and finish the installer.
- MouseToPad starts and lives in the system tray — the row of little icons next to the clock, bottom-right of your screen. If you don't see a green gamepad icon, click the ^ arrow next to the clock; it's hiding in there. (Tip: drag it onto the taskbar so it's always visible.)
✅ Check: a green gamepad icon is in your tray. If instead you got an error about a missing virtual controller, redo Part 3.
The goal: each thumb button you want to use must send a keystroke. F13–F24 are perfect because no real keyboard has them.
- Open iCUE, click your Scimitar, and open Key Assignments.
- Create a new assignment for a thumb button of type Macro / Keystroke and set it to a key in the F13–F24 range. Repeat for each thumb button you want, using a different key for each (F13, F14, F15, …).
- Can't get iCUE to record F13 (you can't press a key that doesn't exist)?
Two options:
- Some iCUE versions let you type/select the key instead of recording it — look for an edit option on the recorded keystroke.
- Or just use ordinary keys you never use (F9, Pause, etc.). MouseToPad swallows trigger keys system-wide, so nothing else will see them anyway.
✅ Check (the fun one): right-click the green tray icon → Button mappings… → click the Capture key… button → press a thumb button on your mouse. The box should select the key it sent (e.g. F13). If nothing happens, iCUE isn't sending the key — check the right profile is active.
- Right-click the green tray icon → Button mappings…
- For each thumb button: pick its key in the dropdown (or use Capture key… and press the thumb button), pick the Xbox button it should press (A, B, LB, RT, …), and click Add.
- Click Save.
- Prove it works: press Win+R, type
joy.cpl, press Enter. Double-click Xbox 360 Controller for Windows. Now press your thumb buttons — the matching buttons light up in that window.
✅ Check: thumb buttons light up buttons in joy.cpl.
- On YOUR PC, open the Moonlight stream of the ALT PC and start Star Citizen on it (your alt account).
- In the streamed Star Citizen: Options → Keybindings, choose the action you want, select the gamepad column, and when it says "press a key", press the thumb button on your mouse. Because the Moonlight window is focused, the virtual pad press travels down the stream and SC binds it.
- Repeat for each action/button.
✅ Check: with the Moonlight window focused, pressing a thumb button makes the alt do the thing. Then click back into your own game and try again — thanks to the background-gamepad setting from Part 2, it should still work.
- Right-click the green tray icon and tick Keep player active.
- Fine-tune it in Button mappings… under Keep player active: how often (roughly — actual timing is randomized), and what input to send (a tiny stick nudge is the default and the least intrusive).
- Click Test to fire one pulse right now — watch the streamed Star Citizen camera twitch.
It automatically holds off while you are actively flying the alt (Moonlight focused + recent input), and does nothing if Moonlight isn't running.
| Symptom | Fix |
|---|---|
| "Windows protected your PC" when running an installer | More info → Run anyway |
| No green icon in the tray | Click the ^ arrow next to the clock — it's hidden there |
| MouseToPad error: could not create the virtual controller | Install ViGEmBus (Part 3) |
| Capture key… sees nothing when pressing a thumb button | iCUE isn't sending the key — check the assignment and active profile (Part 5) |
Buttons work in joy.cpl but not in the stream |
Moonlight's background gamepad setting is off (Part 2, step 6) |
| Buttons work only while the Moonlight window is focused | Same fix — background gamepad setting (Part 2, step 6) |
| The Moonlight stream is a black screen | The ALT PC has no display — use an HDMI dummy plug (Part 1) |
| Trigger keys stop working when an admin program has focus | Right-click MouseToPad → run as Administrator |
| The alt still gets logged out | Make sure Keep player active is ticked in the tray menu and Moonlight is running; click Test to confirm the pulse arrives |
git clone https://github.com/VasicEve/AltHelper.git
cd AltHelper
dotnet build MouseToPad.slnx -c Release # needs .NET SDK 9.0.2xx+ for .slnx (app targets net8.0-windows)Open MouseToPad.slnx in Visual Studio 2022/2026 for the full experience — the
run-target dropdown includes a “Build installer (Inno Setup)” profile.
To produce the installer from a terminal (needs Inno Setup 6,
winget install -e --id JRSoftware.InnoSetup --scope user):
.\scripts\build-installer.ps1 -NoLaunch # → installer\MouseToPadSetup.exe| Path | Purpose |
|---|---|
HookEngine.cs |
keyboard hook, virtual pad, key capture, anti-AFK pulses |
TrayController.cs |
tray icon, menu, pulse timer and its gates |
MappingsWindow.xaml(.cs) |
mapping editor + keep-awake settings UI |
Mappings.cs |
settings model + JSON persistence |
FocusWatch.cs |
foreground-window and idle detection |
App.xaml(.cs) |
startup, single-instance guard, setup notes |
installer.iss |
Inno Setup script (startup entry, desktop shortcut) |
scripts/ |
build-installer.ps1, make-icon.ps1 (regenerates app.ico) |