[Moko] Bratty Companion - FapHero - PMV Roulette

Hee~ look who wandered into my booth~

So I have a treat for you pathetic customers who think they can edge properly without supervision.

Slow teasing? Fast stroke? Deepthroat pressure? Edge-and-hold?
The roulette decides. I just smile and watch you squirm while the wheel dictates your fate.

Your only job is simple:
Don’t cum until the roulette decides you’re allowed.
Which, by the way, doesn’t happen very often.

What do you say, customer?

Version 1.23 is out now: https://www.patreon.com/BrattyCompanion/posts/brattycompanion-168243286

BrattyCompanion now has her own funscript library (scripts by falafel), see the zip in the game files.

What is it:

  • A VLC playlist randomizer. Flavored with a roulette spinning bratty companion to guide your session.
  • Customizable min-max round duration and stamina recovery breaks.
  • “Escape game” and “early ejaculation” punishments faithfully recreated.

Features

  • Animated roulette girl (repurposed from the original Moko game.)
  • Manage multiple playlists
  • Playlists get randomized and played in 65–75 second segments
  • Customizable min/max round duration
  • Customizable cooldown / stamina recovery breaks
  • Customizable target session length
More preview images:

Settings expanded:

Preview of playlist management:

Subtitles, we have them:

Requirements:

Download Link Updated 2026-09-01 v1.23:

https://www.patreon.com/BrattyCompanion/posts/brattycompanion-168243286

First run / Installation Guide
Guide: BrattyCompanion setup

BrattyCompanion first use:

  1. Make sure you downloaded the app.asar linked in requirements and have placed it next to the BrattyCompanion.exe
  2. Open BrattyCompanion.exe.
  3. Open Settings.
  4. Click “Import asar” - (this step extracts the videos that play inside the BrattyCompanion window.)

Connecting BrattyCompanion to VLC:

  • VLC Host `127.0.0.1` (this PC)
  • VLC Port `8080` (VLC default)
  • VLC HTTP Password: What you chose as “VLC:lua” passaword (explained in the VLC guide)
    If VLC is open, you can hit “Test Player” at the bottom of the settings and it should light up green.

Playlist management

Press “Close” to exit the settings, you are now ready to fill out your playlists.

  • You can add multiple videos to each category
  • You can leave a list empty and it will grab random videos from the available categories.
  • The “Filler” you see during the spin sections is a folder next to the executable, it will accept anything you put inside.

BrattyCompanion Optional:

Based on user feedback we added the option funscript support to sync to the bratty companion herself. The scriptplayer for this is in the Moko-Scriptplayer.zip

  • Setup your device settings in the appsettings.json
  • Have the included script Player running in the background
  • In the BrattyCompanion settings toggle on “Companion animation scripts” to enable
Guide: VLC Mediaplayer setup

VLC Mediaplayer:

Open VLC and on the toolbar select Tools > Preferences (or press CTRL+P)

  1. In the new menu in the bottom left select “show all settings”

Now we can change the following two settings:

  1. Interface\Main Interfaces - Toggle on “Web”
  2. Interfaces\Main Interfaces\Lua - Set a password (leave the rest of the settings empty/unchanged)
  3. Close VLC to validate the settings. (Make sure its not just minimizing to the system tray)
Guide: MultiFunPlayer setup

Example .funscriptplayer: MultiFunPlayer:

MultiFunPlayer is just an example .funscript player, Please use your own Preference!

  1. In the top right press on the + sign next to the sprocket to add a Mediaplayer: VLC
  2. Insert the same settings again: 127.0.0.1 Port 8080 with your “VLC:Lua” password
  3. Press the play/connect button in the top-left.
  4. Bottom right of the MFP screen is another + symbol for “Add Output”, that is going to depend on your specific device and setup. in general:
    Funsor = Serial
    Handy = The Handy
    Lovense Solace = Buttplug.io

The original game:

Available on DLSite: Moko Gamble - Gambling type ejaculation-management application
Scripted link 1: EDI
Scripted link 2: Scriptplayer

34 Likes

All replies are welcome,

This is my first time creating an application. I hope to polish it further with the help of your feedback.

Especially curious about how people experience the timings between the different phases. (Action vs recovery time).

  • Next to the .exe is a .ini file where you can experiment with custom timings.
3 Likes

Bratty Companion v104 — What’s new (2026-08-25)

New features:

  • Optional SFX sounds when the roulette phase starts and stops
  • Voiceline when starting a new game.
  • New sounds, New Filler
  • Improved game logic, companion will more strictly adhere to the target duration.
  • “Escape game” now has a pity system.
  • Separate volume sliders for Companion and SFX
  • Settings and playlist windows can now be dragged.
  • We have a “exit” button now but.. it’s hidden under options.

Easier on the ears and eyes:

  • Smoothed transitions between companion scenes.
  • Smoothed VLC Volume through fade in and out.
  • Placeholder assets updated

Bugfixes:

  • Fixed a bug that could reset the playlists.
  • Fixed excessive GUI redraw costing CPU performance.
  • Settings are now correctly saved when exiting the window.
  • Stability improvements.
  • “smarter” VLC volume handling.
  • VLC Connection test now shows its result within the settings menu.

Thank you to everyone that provided feedback <3

3 Likes

Nice idea with this one. Especially using the existing animations outside of the game and leveraging existing videos/funscript. I have thought about similar ways to either edit games or use the assets in a custom way.

For the application itself I haven’t connected it to the handy (my handy is broken) but if I get the flow:

  • setup VLC with web interface (add password)
  • setup the library (drag-n-dropping each video file)
  • use ScriptPlayer to listen to VLC so it syncs up

Some suggestions which I don’t know how viable they are:

  • Option 1: Instead of having to drop files individually, add support for dropping folders into it instead?
  • Option 2: If the idea is to store the videos in the same directory make a Library folder with subfolders as a template folder with some sample items there similar to the Filler folder

also any plans for MPC/MPV support?

1 Like

Very interesting concept!!!
Tried it, and Love it! :heart_on_fire::heart_on_fire::heart_on_fire:

Sometimes I think about which script to play, but here you can map the video (w/ script in same directory) to the type of stroke, e.g. slow/medium/fast/short/long/hardcore, and the randomized roulette results will play the video based on the outcome.
Played 2 sessions so far; 1st faced a medium-long stamina session, 2nd face quick back-to-back escape game & punishment… yeah :grin: this is fun!!

1 Like

Yes — that flow is right: Companion dictates to VLC what to play, which is then witnessed by the scriptplayer. I am hoping that @harusei 's Scriptplayerplus becomes available to talk to the future :grinning_face_with_smiling_eyes: needing three seperate apps is one too many.

Folders
The challenge we create with recursively scanning folders is that my next desire would be for it to intelligently scan if there is a accompanying .funscripts. If its grabbing every movie type it can, recursively i imagine people will spend more time micromanaging their playlists to remove the odd non-funscripted clip than we stand to gain. - technically possible, i fear it will end up impractical/harming the user experience.
Edit: Its currently already possible to Select all/multiple files inside a folder and drop them in one go.

Where files live
The companion folder should not be housing any of your media with the exception of the “Filler” folder, you can place a movie of any length here and it will be played during your recovery window, between playlist segments.
The suggestion here is slow clips, just enough to keep the erection going while letting you recover your stamina between rounds.

MPV / MPC

  • MPV — very doable (same features, different control API). On the wishlist.
  • MPC — not planned for now; VLC (and maybe MPV later) cover the script-player ecosystem better.
3 Likes

Thank you, having fun with it is the greatest compliment you could have given me :blush:

1 Like

Since the videos are just plain .mp4 files played through VLC, maybe you could look into adding subtitles?

1 Like

Thanks for such a great game.

Since we already have original game video playing in main window. Any plan for just using it and link the script, like a modified of original game?

Thank you.

1 Like

As a proof of concept I have a working version (full voice and subtitles) of the penalty/punishment game. Will probably include it in a future update.
But we are already *borrowing" assets, I want to avoid it becoming outright piracy with extra steps.

Tldr: story routes are technically possible yes but I want this game to be a alternative, not a replacement of the original.

If someone is talented with AI video generation?

my biggest wish for this project would be to add alternative companions so users have options.

The companion has no direct communication to the stroker toy.
If you would like the toy movement to be synced to the brat her strokes, the modded original game does exactly that.

The core idea behind the app is adding novelty and replay value back into old/familiar scripts. Your chin-chin will never know what awaits him next.

Update: We now do have scriptplayer support for syncing to the brat.

Banger App mate! Thank you for your hard work! :blobcat_flower:
Had some QoL requests / feedback but other people already mentioned it, so nothing much else to add.

Subaru Natsuki Anime Thumbs Up

2 Likes

Upcoming user requested features:

  • Support for: MPV and Potplayer
  • Voiced and subtitled Ending and Penalty segments.
2 Likes

Preview build is up - Testing with Patreon for preview builds:
https://www.patreon.com/BrattyCompanion/posts/testing-1-2-167809319

Many changes but the big ones are:

  • MPV and Potplayer now supported.
  • Voiced and subtitled Ending and Penalty segments.
  • Added the Prologue route as proof of concept.
1 Like

Thanks you for your reply.

The idea is also what I wondering to know if there have a plain for the brat in main window. Because the original game have some “preset drama” make the voice can match the roulette result. Also the original game duration usually cannot match the estimated time precisely.

Just like you said, we want the “Unpredictable”. This original game can provide a bit, but not very well.

If this option isn’t that hard to do, maybe can add it as a preset?

Otherwise, I can do it by myself, using the add function you gave. BTW, do you have any idea to place the original mp4 into different parts, or just add it by file name?
Also, if i add the same video as the main window is playing, there will be two voices playing like echo. Can i mute the main window, or I can only mute the player one?

Thank you, any suggestion or response just reply me.
My English isn’t that well, hope you can realize what I want to present.
Thank you for your patience and understanding.

I am probably going to implement “Moko Classic”…with the option to use Companion scripts for movement. - Functionally I have halve of it working already.

Moko Classic:

  • Original story routes coded in.
  • Subtitle options in multiple languages (japanese, English, Korean)
  • The ability to use the companion as the stroker source. (Scriptplayer integration)
  • Some tweaks/changes to address valid user complaints (original games store reviews)
2 Likes

Finished translating the original game:

DLSite RJ01113293 Moko Gamble - Translation patch is ready:

  • Available languages: English, Korean, Japanese,
  • Press F8 to change language.
  • Press Escape to pause the game.
    paywalled at 6$ to atleast partially recover the costs of the transcription service.

This removes the main reason for a BrattyCompanion “Story mode” existing, but the feature is already complete so i’l toss it in as a patreon subscriber bonus

  • DLC Key and instructions for merging the two apps will be added as patreon supporter bonus

And in the same breath: BrattyCompanion is approaching completion:
Preview:


Will probably share the next (major) update tomorrow.
Thank you to everyone involved, both people testing and making feature requests :grinning_face_with_smiling_eyes:
Update: V1.18 is now live on patreon.

3 Likes

OP has been updated with version 1.21

  • BrattyCompanion can now import assets from the original game’s app.asar
  • Reworked the companion.ini, more intuitive finetuning of your companion experience.
  • Switched out the english subtitles

Apart from bug fixes and another pass at the subtitles you can consider this the final major build for now.

I will be working on a new companion project for the coming days, see you in a future update :3

1 Like

This is really cool but, is there any way that you add some sort of tutorial or something? Is my first time trying to do this with a game and I just find myself with a lot of folders and I dont really know what to do. Will try to look it up myself later but I think it would be awesome to have a guide and not just the requirements.

Good point. I will add a written tutorial.

Right now, when you press play - it will tell you that files are missing → to go to settings and use the import

Import will say exactly what it expects. The app.asar file of the original Moko game. Available on dlsite or you could use this older uplooad and simply overwrite/merge the two folders

I will also add how to enable vlc media player for http, it’s only 2 settings but they are pretty buried

2 Likes