Multi-axis funscripts for OSR2 / SR6
FunGen plays stroke and auxiliary funscript tracks to compatible OSR2, SR6 and SSR1 controllers over T-Code. Start with the stroke channel, confirm the controller mapping, then enable the additional axes your hardware supports.
Updated 11 September 2026 · FunGen 2.6.3
1. Connect through T-Code
Open Devices and choose the T-Code / OSR family. Select a connection supported by your controller and firmware: USB serial, a network bridge, or supported Bluetooth. FunGen 2.6.2 added the documented Bluetooth and local-network discovery paths; use a current official build.
For USB, select the board's serial port and the settings required by its firmware. If a plugged-in board has no serial port, check the driver for its bridge chip, such as CH340, CP210x or FTDI. For network playback, use the bridge address and port or WebSocket URL shown by your controller's setup.
A successful connection establishes transport. It does not prove that every channel is mapped correctly. Device families, controller firmware and physical builds vary.
2. Match script axes to device channels
FunGen's standard axis identifiers are listed below. Confirm your controller's mapping before enabling a channel; an SR6 configuration need not match a smaller or customized build.
| Script axis | Standard identifier | Motion |
|---|---|---|
| Stroke | L0 | Main linear stroke |
| Surge | L1 | Forward / backward translation |
| Sway | L2 | Side-to-side translation |
| Twist | R0 | Rotation around the main axis |
| Roll | R1 | Roll rotation |
| Pitch | R2 | Pitch rotation |
Load a known script, enable only stroke output, and start at a modest range. Confirm the direction and timing. Add one auxiliary axis at a time, checking its source track and destination channel. Keep unsupported channels disabled.
3. Choose how to create the extra tracks
The video AI generates the primary stroke track. Pro's optional Extra axes feature can add roll, pitch, twist, surge and sway for eligible whole-video VR runs. It synthesizes auxiliary motion with the character of VR scripts; it does not detect those body-pose values from the footage.
This differs from tracking the stroke and from manually authoring a specific extra movement. Use the multi-axis editor when you want to set those movements yourself. Extra axes is optional and does not run for every video type or generation scope.
Review all resulting tracks. A motion that looks reasonable on one channel can interact differently with another channel on physical hardware. Use per-axis range, interpolation and timing settings as appropriate for your controller.
4. Save and test the complete script
Save your project for further editing. Use Export multi-axis funscript for playback files; Preferences → Export selects separate companion files or a combined format. Choose a format supported by your player and keep all companion files together.
Open the result again and confirm that the intended axes appear. Run the Doctor to locate potential speed or timing problems, then test a short section with the device before a longer session.
When a channel does not behave as expected
- No movement on any axis: check connection status, loaded script, playback position and whether output is enabled.
- Stroke works but other axes do not: verify that those tracks contain points, the export includes them, and the routing matrix sends them to supported channels.
- The wrong motion responds: inspect channel mapping and controller configuration before changing the script.
- USB connection is missing: check the serial bridge driver and close other software using the port.
- Network discovery finds nothing: check the same local network, controller address, port and firewall rules for that connection.
For a useful support report, include the app version, operating system, controller firmware, connection method and the affected channel. Continue with generation, VR playback, or the full device list.