Fap Hero: JOURNEY v.0.7.5

Fap Hero Journey — Interactive Gamified Device Sync Player [Beta]

Hey everyone! I’ve been building a Fap Hero-style app that I think takes the format somewhere new, and I want to share it and get the community involved.

This started as a proof of concept and has grown into a full interactive player. I would really love opinions on whether or not the concept works and if there is room in the market for it. We have other apps that are similar but I think this is unique enough to stand on its own.

rant

I originally started this awhile ago but originally built it in Unity however the unity built-in media player is utter trash and doesn’t offer good enough support. There were numerous other problems with unity and I was losing my mind trying to get device sync right with Intiface on my serial device. It was awful.

I quit and walked away but decided at the beginning of this year to try again using godot. Their media player supports more video types and I’ve since realized I can just transcode videos if they aren’t compatible using ffmpeg. I still had a ton of issues with device playback through intiface but it turns out… Intiface is absolute garbage for serial devices… It just can’t handle the commands and has super weird behavior. I made the decision to write directly to the com port instead of using intiface as the middleware and viola it works super well.

The amount of hours I spent trying to get intiface to work was for nothing. So frustrating!

Anyways, after those two issues were resolved everything else kind of fell in place!

Screenshots

Journey Preview

Journey Builder (with complex configuration)



What is it?

Fap Hero Journey is a gamified interactive video player with real-time device synchronization.

Instead of just queuing up videos and scripts, you play through a Journey — a structured, branching experience made up of video rounds, story screens, shops, forks, boss battles, twist rounds, mystery encounters, checkpoints, and loops. (Think Polkamon series)

You earn coins by performing well, spend them at shops on modifiers that change how your device behaves, and navigate branching paths that make every playthrough feel different.

Think of it as Fap Hero meets a roguelite shop system meets a visual novel engine.

:hammer_and_wrench: This is beta software. Expect rough edges. Feedback, bug reports, and journey contributions are all very welcome.


Why?

I was heavily inspired by @Tblo and their Polkamon series we’ve all come to love (check 'em out if you haven’t) and like many others would love to see more funscript exploration in the storyboarding adventures scene. Not everyone has the patience nor editing talent Tblo does so hence Fap Hero Journey was born!

I’ve created this as a way for people to get involved in their own narratives without having to do a crazy amount of work to bring it to life for others to enjoy. (It’s also a way for people to finally make good use of those short animated shorts that often get scripted!)

The best part is the direct integration to your device. It takes your journey deeper than anything that’s been provided. Modifiers directly manipulate the funscript live. We aren’t just loading and reading scripts. We are manipulating based on your items and bosses.

If you’re not into stories or story writing, you can just create challenge runs with various fap heroes and boss battles. No narrative required.


Features

:video_game: Gameplay

  • Structured Journey format — a branching graph of video rounds, story screens, shops, forks, boss battles and more, woven into one authored experience
  • Coin economy — earn coins by completing rounds, spend them at shops
  • Modifier items — a set of built-in modifiers plus author-defined custom items, with timed effects that manipulate the funscript live, mid-round
  • Inventory system — hold items and activate them whenever you choose during a round
  • Branching paths — fork nodes with four resolution styles (player choice, random, conditional, sacrifice) and full nested-fork support
  • Flags & counters — run-state that unlocks conditional paths, gates forks, and drives loop exits
  • Boss rounds — telegraphed harder rounds with forced modifiers and a last-30-second visual pressure pulse
  • Effect rounds — “twist” rounds that stack gameplay hindrances/boons plus optional sensory effects, with an optional pay-to-cleanse
  • Mystery encounters — a round that rolls a random clip (and maybe a random boss) from a weighted pool, revealed with an “:crossed_swords: ENCOUNTER!” card
  • Checkpoints & saves — save your place mid-journey and pick up later right where you left off
  • Loops — replay a stretch of a journey until a condition is met (a number of repeats, a flag, an item, or a counter value)
  • Per-round scoring — amplitude-based score tracked across your whole session
  • Journey map — an optional in-game map of your route, with fog-of-war
  • End screen summary — full play log of every round, the path you took, your route on the map, and your score
  • Beat Bar Visualizer — a color-coded stroke-grading bar you can overlay on any video

:control_knobs: Video & Device Sync

  • Smooth funscript playback locked to the video clock — no drift
  • Direct serial T-Code — writes straight to the COM port (no Intiface middleware), with 120 Hz interpolated stroke smoothing for OSR2/SR6
  • Multi-axis T-Code support (L0–L2, R0–R2) for SR6 and similar devices
  • Per-channel vibrator scripts (vib1/vib2) for dual-motor Buttplug devices
  • The Handy over WiFi — connect a Handy directly (no Intiface), streamed and time-synced to the video
  • E-stim via restim — drive a restim session over its WebSocket T-code link, running in parallel with a stroker (community-contributed)
  • Live funscript manipulation — items, bosses, and curses reshape the script in real time; we’re not just playing scripts back
  • Ease-in at round start and ease-to-neutral on pause/stop — no jarring snaps
  • Storyboard filler strokes — device keeps moving gently between rounds, configurable
  • Configurable latency offset, stroke range clamp, speed cap, and home position — adjustable live, no restart

:hammer_and_wrench: Journey Builder

  • Full in-app graph editor — no code or JSON editing; drag-and-drop videos, funscripts, and images
  • Every node type editable: video rounds, storyboards, forks, shops, boss rounds, effect rounds, mystery encounters, checkpoints, and loops
  • Visual-novel storyboards — per-line speaker, dialogue, and images; an on-screen cast with character portraits and positions; optional per-line audio and background music
  • Custom items — author your own modifier/key items that bundle tuned effects, scoped to your journey
  • Renditions — publish variant versions of a journey (different scripts, forks, or overlays) that compose onto a base at play time, without duplicating the whole thing
  • Map backdrops — layer location art behind your journey graph and the in-game map (stacked, each with opacity, scale, rotation, and z-order)
  • Segments / EDL, round templates, journey audit — trim clips into an edit list, save whole rounds as reusable templates, and get an advisory balance report
  • Sticky notes — pin notes to nodes; they travel with the node on copy/paste
  • Portable & shareable — export a whole journey as a single .fhj file (with an optional free-video / paid-script split), or share the folder directly

:gear: Technical

  • Built on Godot 4.6.2 Mono/.NET
  • Video playback via EIRTeam.FFmpeg GDExtension (broad codec support; auto-transcodes non-H.264 sources for you)
  • Device output via direct serial T-Code, Buttplug.io / Intiface Central, The Handy (WiFi), or restim (e-stim) — several can run at once
  • Background music with shuffled playlist and cross-session pause/resume
  • Settings persist across sessions; all device parameters adjustable without restarting

Demo / Download / Discord

| :package: Download |

| :laptop: Source (GitHub) |

| :globe_with_meridians: Discord |

| :star_struck: Support me! |

Notes for Linux

Ffmpeg will need installed separately. It is not bundled like the windows edition.


Tutorials

TBD… Once we hit 1.0 release I’ll be putting together a howto guide on all things this app.


Compatible Devices

Fap Hero Journey can drive your device several ways — and more than one at a time:

  • Direct Serial (T-Code) — OSR2, SR6, and other T-Code serial devices connect directly, no Intiface needed. Just select your COM port in Settings. Multi-axis is fully supported for SR6 (L0–L2, R0–R2 + vibrators), with high-rate stroke smoothing for belt-driven builds.
  • Buttplug.io / Intiface Central — any device supported by Intiface Central works out of the box (OSR2, SR6, and many others). Launch Intiface Central first, then connect from within the app. Multi-channel vibrators are supported (I’m looking at you Edge 2 :smiling_face_with_horns: ).
  • The Handy (WiFi) — connect a Handy directly over your network with your connection key. No Intiface middleware.
  • E-stim (restim) — stream to a running restim instance over its WebSocket T-code link, alongside your stroker. Requires restim with its WebSocket server enabled.

Keybinds


Requirements

  • OS: Windows 10/11 (64-bit) or Linux

  • Device: OSR2, SR6, The Handy, a restim rig, or any Buttplug.io-compatible device

  • Intiface Central if using Buttplug — download at intiface.com

  • restim if using e-stim — run it with its WebSocket server enabled

  • Videos and funscripts are not included — you supply your own!

  • .H264 videos only (app will transcode for you if need be)


:warning: Safety & Disclaimer

Fap Hero Journey controls physical hardware. Please read this before use.

  • Use within your limits. Configure the stroke range, speed cap, and home position in Settings before your first session. Start conservatively.

  • Stop if something hurts. The app includes an ease-in at round start and eases to neutral on pause/stop, but you are always in control. Hit pause or close the app at any time.

  • The developer assumes no liability. By using this software you agree that you are solely responsible for your own safety and the safe operation of any connected device. The developer is not responsible for any injury, damage, or harm — physical or otherwise — arising from the use or misuse of this application.

  • This software is provided as-is, with no warranty of any kind.


Get Involved

The best thing the community can do right now is make journeys and share them here.

Please do not share premium content via journeys. If you have paid content in your journey playlist please be responsible.

The format is flexible enough to support everything from a tight 3-round challenge to a multi-hour branching narrative. If you build something, drop it in this thread, I will showcase it as part of this post!

Bug reports and feature requests welcome — post here or open an issue on GitHub.


Contributors

A list of contributors who spent the time their personal time adding to the project.

User Contribution
1k1 Estim support via restim

Available Journeys

Has it’s own sub category now!

Journey Name Creator Tags Length
6 Days of HMVs (Christmas Special) SaekoM HMV 23:53
99DM’s Year of the Slime SaekoM MMD 38:02
I fckn love wezzam SaekoM PMV, Real 1:11:29
Minus8 Bonanza SaekoM 2D, Animated 27:30
RAWSOURCE RAMPAGE Anonymous444 3D, Animated, HMV 59:33
This Kitty … Is Evil? john 3D, Animated 4:00+
Essence Extraction: PMV Panic MythrilJay PMV, Real 3:01:35
Funky Quest Pluge 2D, 3D, Animated 59:18
133 Likes

I would like to be the first to say… wow

This looks like a heap of work went into it. I’ll bite and take a look to see how it functions, but even getting to this point must have been a colossal effort. Thank you!

3 Likes

Seems like a cool idea.

2 Likes

I’m having some troubles. First, the video tutorials are locked and require a request for access. Second, it doesn’t seem to be compatible with the Handy. My lovense vibes don’t have any problem, but my Handy (FW4+) isn’t receiving anything despite showing up as connected, even from the test button in the application (the test button in Intiface works fine).

2 Likes

I’ve swapped the tutorials over to pixeldrain instead of google drive.

Check them out and if you’re still having troubles let me know.

1 Like

No change in my troubles sadly. I got it to work with my Lovense Hush but my Handy refuses to do anything no matter what I try.

1 Like

I don’t own a handy but I’ll look into your issue. Thanks for letting me know

1 Like

I think I’ve identified the issue. I’ll spare you the gritty details. Try this:

Anyone who downloaded the previous version please use this one instead. I’ve updated the post above with the newest release.

1 Like

Wow, this is amazing and at a first glance exactly what I always wanted to add another level of interaction - basically creating a video based visual novel with gameplay elements.
I feel honored that my series has been the inspiration for this and can’t wait to try it!

I’m currently down with the flu but once I’ve shaken off my fever I’ll sink my teeth into this and will offer some feedback!

3 Likes

I’m looking forward to hearing your thoughts! Hope you feel better soon.

1 Like

Any thoughts regarding a save system? A checkpoint for the editor, or purchase option for the shop? Some of these may get quite long and it would be great to have options in that regard!

2 Likes

I’m pleased to report that it seems to be working now! Thanks!! I’ll appraise you late of any bugs I encounter. Great work!!!

2 Likes

Great ideas! Saves might be a little challenging to implement. I like the itemized checkpoint idea a lot!

Adding these to my development board.

In terms of suggestions, I have’t fuddled with the creator much admittedly but perhaps something that would allow easy difficulty selection where you could, just as an example, select “Easy” or “Hard” and it would change funscripts? I think you could achieve that now but you’d have to basically make two different copies of everything so far as I can tell

1 Like

I have encountered another bug! It works great… for the first round. After the first round it stops working again.

1 Like

Hmmm. I’ve thought about adding difficulties when a scripter has done multiple but not at the general level.

I’d have to define what determines a scripts difficulty without completely derailing the script.

Maybe applying speed limits and stroke length limiters to make it slower and lower? or just slower?

Something to think about!

Noted! I’ll take a look and see if I can replicate.

Follow up question:
When that happens, in the options, does the device still appear as paired and does the test button still work?

It did, yes! Weirdly, I tried it with my Lovense and it didn’t work either on Round 2 until it rolled over to round 3 then it started working, but when I swapped it to Handy it stopped working again and then swapping back to the Lovense that no longer worked either, so something about the Handy seems to be gumming it up.

So to summarize (and to make sure I understand the issue completely):
You start a journey with the handy connected, round 1 goes smoothly, app then transitions to round 2 and starts playing, the handy stops moving? Or are you transitioning devices during rounds?

I have a potential fix but additional clarification would be great :+1:

For instance is there a shop between round 1 and round 2?

This is actually incredible - holy. I can’t wait to try it out and will be watching the development closely!

2 Likes