Interactive JOI Game - Handy Supported - Cock Hero V0.03 Out Now!

Cock Hero v0.03 — Free Public Build




What it is: Beat-synced JOI you actually play. Keep tempo, spend items, don’t cum without permission—or your rewards get halved.

v0.03 highlights

  • :framed_picture: 488+ new CG (full visual refresh)
  • :musical_notes: 55+ beat patterns (tighter flow)
  • :studio_microphone: Brat voice pack (2k+ reactive lines)
  • :smiling_face_with_horns: Succubus Taunt + Punishment events
  • :brain: Brain Melter Mode (media pulses/flips to the beat)
  • :shopping_cart: Store rework (spend points; shopkeeper gets… friendly)

Core loop

  • :stopwatch: Beat meter keeps you stroking in time
  • :joker: Cards drop with changing speeds and stroke counts to test rhythm, stamina, and focus
  • :fire: Unlock items to slow down, reduce sensitivity, or grab a breather — mismanage heat and it bites
  • :cross_mark: Climax without permission and your rewards are cut in half

Play the public build on Itch: Cock Hero by Cock Hero Dev

51 Likes

Beat banger but non-furry?
I’ll take 8 copies

12 Likes

Its just still images. :confused:

Just full of Ai voice and Ai images, not worth installing IMO

U can disable the AI packs & Import your own content.
U can also make your own Packs with the chpack_builder.exe

2 Likes

Have to pay for toys to work…

7 Likes

Had to try this out when i saw Handy compatibility and for someone that personally does not really like hentai content i actually loved it!

The Fullscreen/windowed handy sync issue is an annoying bug but for an early build i thought it was excellently done.

I think it deserved a better name than just “Cock Hero” as searching for this later will be a pain but I can’t wait to see more from this!

More beat patterns…more images hentai/real… more events…more items… I look forward to seeing this develop!

1 Like

I’ve even bought it to get access to toys, but my handy doesn’t work at all. I see status “connected”, but neither test pulses nor the game beats do anything.
Found some log with:

[2025.09.27-15.45.15:713][683]LogTemp: Warning: [AdultToyManager] ✅ Handy connected successfully!
[2025.09.27-15.45.15:713][683]LogTemp: Warning:   - Firmware: 3.2.3+c1ddbc7e (Status: 0)
[2025.09.27-15.45.15:713][683]LogTemp: Warning:   - Hardware: 0
[2025.09.27-15.45.15:713][683]LogTemp: Warning:   - Model: H01
[2025.09.27-15.45.15:713][683]LogTemp: Warning: [AdultToyManager] 📊 Beat Stats: 0 API calls/sec, 0 beats processed, Handy=✅ Lovense=0
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA01D10BE0: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA01D111B0: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA51E128F0: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA0190C5E0: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA01D11780: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA0190CBB0: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA01CAB470: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA01D10610: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA01D10040: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA01D1FA30: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: 000001DA01D1F460: Starting GET request to URL='https://www.handyfeeling.com/api/handy/v2/status'
[2025.09.27-15.45.15:747][745]LogHttp: Warning: Reached threaded request limit (11)
[2025.09.27-15.45.15:872][955]LogJson: Warning: Field state was not found.
[2025.09.27-15.45.15:872][955]LogJson: Error: Json Value of type 'Null' used as a 'Number'.

Not sure if it’s relevant or not.

Another log in crashes/ directory:

[2025.09.27-15.46.34:610][215]LogOutputDevice: Error: Ensure condition failed: InState.GetWriterThreadId() == CurrentThreadId  [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Misc\MTAccessDetector.h] [Line: 359] 
[2025.09.27-15.46.34:610][215]LogOutputDevice: Error: Data race detected! Acquiring read access on thread 1968 concurrently with 3549 writers on thread 3722304988:
[2025.09.27-15.46.34:610][215]LogOutputDevice: Error: Current thread 1968 callstack:
[2025.09.27-15.46.34:610][215]LogOutputDevice: Error: [Callstack] 0x00007ff6bbc69e7b CockHero.exe!FMRSWRecursiveAccessDetector::GetCurrentThreadCallstack() []
[2025.09.27-15.46.34:610][215]LogOutputDevice: Error: [Callstack] 0x00007ff6c6a74898 CockHero.exe!DispatchCheckVerify<bool,`FMRSWRecursiveAccessDetector::CheckOtherThreadWriters'::`5'::<lambda_1> >() []
[2025.09.27-15.46.34:610][215]LogOutputDevice: Error: [Callstack] 0x00007ff6bbcd690a CockHero.exe!TDelegateAccessHandlerBase<FNotThreadSafeDelegateMode>::FReadAccessScope::FReadAccessScope() []
[2025.09.27-15.46.34:610][215]LogOutputDevice: Error: [Callstack] 0x00007ff6bc84107a CockHero.exe!TMulticastScriptDelegate<FNotThreadSafeDelegateMode>::IsBound() []
[2025.09.27-15.46.34:610][215]LogOutputDevice: Error: [Callstack] 0x00007ff6c30fb514 CockHero.exe!FLovenseManager::StopLovense() [C:\CockHero\Plugins\LovenseIntegration\Source\LovenseIntegration\Private\LovenseManager.cpp:117]

Seems like something related to device management just crashes.

The handy need to be on the Firmware V4 sadly, I don’t tried it but the dev told me to.

Edit: Tried it, the V4 works fine.

1 Like

Any chance that this will work with intiface?

working on intiface support for v0.04 next month < 3

2 Likes

I’ll take a look and get this fixed soon, thank you for posting your log < 3

amazing! I played around with it and i love the concept! will definetely buy the toy version with intiface support!
Thanks for sharing this here!

It would be great if you could make this compatible with MultiFunPlayer. I use an OSR2+ and MFP allows you to randomize the other axis, which would be great with a game like this.

At that point its just beat banger but worse is it not?

it doesn’t play like beat banger at all < 3 - two totally different games

Where do I go to connect my toy or link my patreon? The toys section is locked for me.

you need to download the game from patreon

Does this work on SteamDeck?