Hardware
Multi-Axis Funscripts: Roll, Pitch, Twist and More
A multi-axis funscript is a set of script files for one video. The main file drives the stroke. Extra files drive other motions, such as roll, pitch and twist, on stroker robots like the OSR2 and SR6.
By the Funscripted team. Updated .
The six motions
Multi-axis scripts use the axis names from T-Code, the protocol these robots speak. L means linear, a straight move. R means rotate, a turn around one of the linear axes.
| Axis | Name | Motion |
|---|---|---|
| L0 | Stroke | Up and down |
| L1 | Surge | Forward and back, away from you and toward you |
| L2 | Sway | Left and right |
| R0 | Twist | Turn around the stroke axis |
| R1 | Roll | Tilt to the left and right |
| R2 | Pitch | Tilt forward and back |
The file name for each axis
Every axis has its own file. All files share the video name and sit in the same folder as the video. The part before .funscript tells the player which axis the file drives.
| File | Axis | Motion |
|---|---|---|
video.funscript | L0 | Stroke |
video.surge.funscript | L1 | Surge |
video.sway.funscript | L2 | Sway |
video.twist.funscript | R0 | Twist |
video.roll.funscript | R1 | Roll |
video.pitch.funscript | R2 | Pitch |
video.vib.funscript | V0 | Vibration |
video.valve.funscript | A0 | Suction valve |
video.suck.funscript | A1 | Suction pattern |
video.lube.funscript | A2 | Lube pump |
These are the default names in MultiFunPlayer for T-Code v0.3. You can change them in its device settings if a script uses other names.
Which devices play which axes
| Device | Axes it can play |
|---|---|
| The Handy, Kiiroo Keon, SSR1 and other single-axis strokers | Stroke only (L0) |
| OSR2 | Stroke and roll (L0, R1) |
| OSR2+ | Adds pitch (R2) |
| OSR2 with T-wist | Adds twist (R0) |
| SR6 | Stroke, surge, sway, roll and pitch (L0, L1, L2, R1, R2), plus twist with the twist receiver |
A single-axis device reads only video.funscript and ignores the other files. So a multi-axis script still plays on The Handy or the Keon. You just feel the stroke.
How to play a multi-axis script
- 1Put the video and all of its script files in one folder, with the same base name.
- 2Open MultiFunPlayer. It finds the files by the video name, in the video folder and in any script library folders you add.
- 3Connect MultiFunPlayer to your video player, such as VLC, MPV, DeoVR or HereSphere, or use its own player.
- 4Add an output for your robot. Use Serial for a USB cable. ESP32 boards with TCodeESP32 can also use UDP or WebSocket over Wi-Fi.
- 5Set a speed limit and range for each axis, then press play.
The robot only moves the axes that have a file. Most multi-axis scripts ship the stroke plus a few extra axes, not all six.
Why Intiface Central is not enough
Intiface Central supports T-Code devices, but only as a single linear axis. It plays the stroke and nothing else. For roll, pitch, twist, surge and sway, use MultiFunPlayer or XTPlayer, a free T-Code player for Windows, Linux and Mac.
Find your next script
Every script on Funscripted is a standard .funscript file that works with the players and devices in our guides.
Frequently asked questions
What is a multi-axis funscript?
It is a group of funscript files for the same video. video.funscript drives the stroke, and files such as video.roll.funscript and video.pitch.funscript drive extra motions on robots like the OSR2 and SR6.
Which file is the main stroke?
The file named exactly like the video, such as video.funscript. It drives the L0 stroke axis.
Can The Handy play multi-axis funscripts?
It plays the main stroke from video.funscript and ignores the other files. The Handy has one axis, so roll, pitch and twist do not apply to it.
What player do I need for multi-axis scripts?
MultiFunPlayer is the main choice. It is free and open source, and it drives every T-Code axis. XTPlayer is another free option.
What do L0, R1 and R2 mean?
They are T-Code axis names. L0 is the stroke, R1 is roll and R2 is pitch. L1 is surge, L2 is sway and R0 is twist.