Page 2 of 2

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Tue May 26, 2026 11:02 pm
by GDError404
althyna wrote: Tue May 26, 2026 4:14 pm
GDError404 wrote: Tue May 26, 2026 8:58 am This is absolutely wonderful and works *so* well for a specific estim tease that has been broken on the EOS player for as long as I can remember. I would love it there was an option for a classic EOS/Flashtease style circle timer rather than the bar across the bottom, but it's such a small thing in the grand scheme of things
Done, this is now an option in settings. Check v0.4 update.
Thank you so much! This is perfect! <3

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Thu May 28, 2026 4:02 pm
by PlayfulGuy
althyna wrote: Mon May 25, 2026 7:25 pm
Spoiler: show
PlayfulGuy wrote: Mon May 25, 2026 4:30 pm
Markopolo wrote: Mon May 25, 2026 8:03 am I don't know what others use, but for me it's the one with MiloDownloader_0.97.exe from here viewtopic.php?f=26&t=24101. And if I load EOS teases into your tool, I get just a black screen and nothing happens. (Maybe some settings are different when downloading?)
Many EOS teases that use a lot of javascript don't work properly when downloaded with with the downloader.
If you're getting a black screen like that, the downloader probably broke something.

One thing I would recommend trying is to turn off the option "Adapt javascript for GuideMe" on the EOS tab and then download the tease again. When prompted, overwrite the xml file. It won't download images or audio files again as long as you download to the same location as last time.
If you want to keep both versions, rename the current one slightly, then download again as described above.
althyna wrote: Mon May 25, 2026 8:25 am Let me test what format it is exporting in.
See my other comments above. It downloads to XML, but by default does its best to modify javascript to work properly in GuideMe. That is likely not required for your tool. I had anticipated this possibility and included the option to turn that off.

I'm really excited to see where this goes. I've often thought it would be possible to implement a GuideMe replacement in this fashion, but it was beyond me to do it. Not enough time and energy, and not enough knowledge on the browser side.

Thanks for sharing, and if there's anything I can do to help let me know. I'm not on Milovana as much lately, but try to check in at least somewhat regularly. It's just by chance that happened to be today.

PG
Maybe I can take a look at your tool and see if I can make a quick downloader that can download without having to do the conversion considering that this tool doesn't need GuideMe and just uses it's format for backwards compatibility. This might help make sure downloads aren't broken. I have downloaded your source code to check this out.
For Flash and EOS my downloader pretty much does that already. It downloads the tease JSON file and saves it in the cache folder, then does the conversion to XML. It would be fairly easy to add a download JSON only option.

The downloader does add some extra data to the JSON file to track where it was downloaded to etc, but all of that is in the "info" property and can just be ignored.

I don't have the time and energy to do too much on the downloader right now, and haven't had a chance to try out LeadMe, but if there's anything I can do, or if you have questions let me know.

PG

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Thu May 28, 2026 8:08 pm
by althyna
PlayfulGuy wrote: Thu May 28, 2026 4:02 pm
althyna wrote: Mon May 25, 2026 7:25 pm
Spoiler: show
PlayfulGuy wrote: Mon May 25, 2026 4:30 pm

Many EOS teases that use a lot of javascript don't work properly when downloaded with with the downloader.
If you're getting a black screen like that, the downloader probably broke something.

One thing I would recommend trying is to turn off the option "Adapt javascript for GuideMe" on the EOS tab and then download the tease again. When prompted, overwrite the xml file. It won't download images or audio files again as long as you download to the same location as last time.
If you want to keep both versions, rename the current one slightly, then download again as described above.



See my other comments above. It downloads to XML, but by default does its best to modify javascript to work properly in GuideMe. That is likely not required for your tool. I had anticipated this possibility and included the option to turn that off.

I'm really excited to see where this goes. I've often thought it would be possible to implement a GuideMe replacement in this fashion, but it was beyond me to do it. Not enough time and energy, and not enough knowledge on the browser side.

Thanks for sharing, and if there's anything I can do to help let me know. I'm not on Milovana as much lately, but try to check in at least somewhat regularly. It's just by chance that happened to be today.

PG
Maybe I can take a look at your tool and see if I can make a quick downloader that can download without having to do the conversion considering that this tool doesn't need GuideMe and just uses it's format for backwards compatibility. This might help make sure downloads aren't broken. I have downloaded your source code to check this out.
For Flash and EOS my downloader pretty much does that already. It downloads the tease JSON file and saves it in the cache folder, then does the conversion to XML. It would be fairly easy to add a download JSON only option.

The downloader does add some extra data to the JSON file to track where it was downloaded to etc, but all of that is in the "info" property and can just be ignored.

I don't have the time and energy to do too much on the downloader right now, and haven't had a chance to try out LeadMe, but if there's anything I can do, or if you have questions let me know.

PG
Yes, I actually took a look at your source code and wrapped it into a chrome extension. It now directly pulls in EOS teases in javascript format, alongside classic teases.

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Fri May 29, 2026 9:05 am
by wqaed
Input field missing when tease requests text input.

Hi althyna,

First of all, thanks for creating LeadMe! I encountered a bug while running a tease where the text input field does not appear when the script asks for a user response.

The prompt asks for text input (e.g., "Tell me your Slut Name:"), but there is no text box available to type into. Only the "Continue" button is visible at the bottom of the right panel.

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Fri May 29, 2026 4:06 pm
by PlayfulGuy
althyna wrote: Thu May 28, 2026 8:08 pm
PlayfulGuy wrote: Thu May 28, 2026 4:02 pm
For Flash and EOS my downloader pretty much does that already. It downloads the tease JSON file and saves it in the cache folder, then does the conversion to XML. It would be fairly easy to add a download JSON only option.

The downloader does add some extra data to the JSON file to track where it was downloaded to etc, but all of that is in the "info" property and can just be ignored.

I don't have the time and energy to do too much on the downloader right now, and haven't had a chance to try out LeadMe, but if there's anything I can do, or if you have questions let me know.

PG
Yes, I actually took a look at your source code and wrapped it into a chrome extension. It now directly pulls in EOS teases in javascript format, alongside classic teases.
Does it handle the Flash style teases as well? The json for those use different properties/actions.

PG

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Fri May 29, 2026 7:45 pm
by wqaed
PlayfulGuy wrote: Thu May 28, 2026 4:02 pm
Does it handle the Flash style teases as well? The json for those use different properties/actions.

PG
You can convert the flash tease to eos with this converter: viewtopic.php?t=24293

The converter uses js so it could be included with the EOS Downloader for LeadMe.

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Sat May 30, 2026 7:47 am
by althyna
wqaed wrote: Fri May 29, 2026 9:05 am Input field missing when tease requests text input.

Hi althyna,

First of all, thanks for creating LeadMe! I encountered a bug while running a tease where the text input field does not appear when the script asks for a user response.

The prompt asks for text input (e.g., "Tell me your Slut Name:"), but there is no text box available to type into. Only the "Continue" button is visible at the bottom of the right panel.
Fixed this and other issues in the latest build 0.6. Thanks for the report!

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Sat May 30, 2026 7:48 am
by althyna
PlayfulGuy wrote: Fri May 29, 2026 4:06 pm
althyna wrote: Thu May 28, 2026 8:08 pm
PlayfulGuy wrote: Thu May 28, 2026 4:02 pm
For Flash and EOS my downloader pretty much does that already. It downloads the tease JSON file and saves it in the cache folder, then does the conversion to XML. It would be fairly easy to add a download JSON only option.

The downloader does add some extra data to the JSON file to track where it was downloaded to etc, but all of that is in the "info" property and can just be ignored.

I don't have the time and energy to do too much on the downloader right now, and haven't had a chance to try out LeadMe, but if there's anything I can do, or if you have questions let me know.

PG
Yes, I actually took a look at your source code and wrapped it into a chrome extension. It now directly pulls in EOS teases in javascript format, alongside classic teases.
Does it handle the Flash style teases as well? The json for those use different properties/actions.

PG
I haven't tried out older flash teases. Will do a few today and update if it doesn't work.

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Sat May 30, 2026 10:06 pm
by FrozenWolf
This is fantastic, nice job!

I made the small addition of a "Full Screen" button so that I can use it on a mobile device with the Brave browser.
...
    <div id="skipBar">
      <div id="hiddenCountdown" title="Time remaining until auto-advance">0s</div>
      <button id="skipBtn" title="Skip remaining time">⏭ Skip</button>
    </div>
    <button id="fullBtn" title="Full screen">[ ] Full</button>
    <button id="pauseBtn" title="Pause / resume" style="display:none;">⏸ Pause</button>
    <button id="saveBtn" title="Save now">πŸ’Ύ Save</button>
...
// Full screen button in topbar
document.getElementById("fullBtn").addEventListener("click", () => document.getElementById("stage").requestFullscreen());
// Save button in topbar
document.getElementById("saveBtn").addEventListener("click", () => ui.saveNow());
...


The Brave browser on Android is the only one that I could get the script to run on successfully, but the Brave browser doesn't have a full-screen option. Firefox on Android doesn't open local HTML files for safety reasons, and both Opera and Chrome load the file but the teases get stuck in a perpetual "needs re-pick" state.

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Sun May 31, 2026 3:01 pm
by wqaed
Hi, I found a few more bugs and wanted to try fixing them. My programming experience is mostly limited to Python and Arduino/C++, so I asked ChatGPT for help (well ChatGPT did most of the work). I did test the results and compared the behavior against the original EOS player.

I understand if you do not want to include all changes. To make reviewing easier, I added an annotated diff that links each part of the patch to the relevant changelog item. That should make it easier to pick which changes you want to keep, adjust, or ignore.

leadme-v0.6-community-patch.zip
(105.2 KiB) Downloaded 25 times
changelog:
Spoiler: show
LeadMe v0.6 community patch

Base: upstream LeadMe v0.6, 30 May 2026.

CH01 β€” EOS notification area

Adds support for EOS-style notification.create / notification.remove as persistent overlay buttons in the media area, separate from normal choice/Continue buttons.

Behavior:
  • notifications persist across page changes until clicked, expired, or removed;
  • clicking a notification removes it and runs buttonCommands;
  • duplicate notification ids replace the previous notification;
  • timerDuration renders as a small progress bar only, matching the original EOS intent;
  • timer expiry removes the notification and runs timerCommands.

CH02 β€” EOS Notification eval API

Adds the original-style eval API:
  • Notification.get(id).remove();
  • Notification.get(id).setTitle(title).

CH03 β€” EOS audio semantics

Aligns audio.play with original EOS/Howler semantics:
  • omitted loops means play once;
  • loops: 0 means loop forever;
  • positive loops means total play count;
  • volume is 0..1, not 0..100;
  • page navigation stops page-scoped audio, but keeps background audio playing.

CH04 β€” EOS duration parsing

Extends duration parsing for broader EOS compatibility:
  • random ranges such as 10s-20s;
  • expression durations such as $expr, interpreted as milliseconds like EOS;
  • ms, d, and w units.

CH05 β€” EOS page targeting and enable/disable

Adds/extends:
  • $target expression support in gotos;
  • wildcard page targets;
  • page enable / disable actions;
  • correct glob matching against all pages when re-enabling disabled pages.

CH06 β€” EOS choice metadata

Adds/keeps:
  • choice.option.visible support, including $expr;
  • choice.option.color rendering with readable contrast text.

CH07 β€” UI: compact action buttons and font-size consistency

Compact action buttons:
  • buttons size to their label instead of filling the full button bar;
  • buttons remain centered and wrap when needed;
  • the existing β€œText font size” setting now also applies to normal buttons and notification buttons.

CH08 β€” UI: EOS-like say bubbles and alignment

Changes v0.6's separator-only say blocks into compact EOS-like dark text bubbles:
  • each say is visually grouped in its own bubble;
  • default alignment is centered;
  • say.align supports left/center/right;
  • extra bottom padding prevents the latest bubble from sitting flush against the bottom edge.

CH09 β€” UI: dynamic prompt input width

Adjusts EOS prompt fields to behave more like original EOS:
  • starts around 10 characters wide;
  • grows as the user types;

CH10 β€” EOS say before goto

Fixes EOS pages where visible say text is immediately followed by a goto.

Behavior:
  • the visible text is shown first;
  • the user gets a normal Continue step before the goto runs;
  • this prevents pages from instantly jumping away before the text can be read;
  • this also avoids the impression that a choice button did nothing.

CH11 β€” EOS default-say pacing

Restores step-by-step pacing for default EOS say actions:
  • a following say is treated as a new visible step instead of being appended immediately;
  • a following goto still waits for Continue first, so information/menu pages remain readable before returning;
  • choice, prompt, timer, and invisible control-flow actions still avoid an unnecessary extra Continue.

CH12 β€” EOS choice transcript echo and default button contrast

Aligns choice-button presentation more closely with original EOS behavior:
  • when the user clicks a choice, the selected answer is appended to the transcript as its own say-style bubble, prefixed with >;
  • default choice/Continue and notification buttons use dark grey buttons with white text;
  • script-provided choice.option.color values are still respected with readable contrast text.

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Sun May 31, 2026 8:10 pm
by althyna
FrozenWolf wrote: Sat May 30, 2026 10:06 pm This is fantastic, nice job!

I made the small addition of a "Full Screen" button so that I can use it on a mobile device with the Brave browser.
...
    <div id="skipBar">
      <div id="hiddenCountdown" title="Time remaining until auto-advance">0s</div>
      <button id="skipBtn" title="Skip remaining time">⏭ Skip</button>
    </div>
    <button id="fullBtn" title="Full screen">[ ] Full</button>
    <button id="pauseBtn" title="Pause / resume" style="display:none;">⏸ Pause</button>
    <button id="saveBtn" title="Save now">πŸ’Ύ Save</button>
...
// Full screen button in topbar
document.getElementById("fullBtn").addEventListener("click", () => document.getElementById("stage").requestFullscreen());
// Save button in topbar
document.getElementById("saveBtn").addEventListener("click", () => ui.saveNow());
...


The Brave browser on Android is the only one that I could get the script to run on successfully, but the Brave browser doesn't have a full-screen option. Firefox on Android doesn't open local HTML files for safety reasons, and both Opera and Chrome load the file but the teases get stuck in a perpetual "needs re-pick" state.
This is pretty cool! I didn't personally have a use case for an offline mobile experience so never got around testing this. Nice to know that this works!

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Sun May 31, 2026 8:10 pm
by althyna
wqaed wrote: Sun May 31, 2026 3:01 pm Hi, I found a few more bugs and wanted to try fixing them. My programming experience is mostly limited to Python and Arduino/C++, so I asked ChatGPT for help (well ChatGPT did most of the work). I did test the results and compared the behavior against the original EOS player.

I understand if you do not want to include all changes. To make reviewing easier, I added an annotated diff that links each part of the patch to the relevant changelog item. That should make it easier to pick which changes you want to keep, adjust, or ignore.


leadme-v0.6-community-patch.zip

changelog:
Spoiler: show
LeadMe v0.6 community patch

Base: upstream LeadMe v0.6, 30 May 2026.

CH01 β€” EOS notification area

Adds support for EOS-style notification.create / notification.remove as persistent overlay buttons in the media area, separate from normal choice/Continue buttons.

Behavior:
  • notifications persist across page changes until clicked, expired, or removed;
  • clicking a notification removes it and runs buttonCommands;
  • duplicate notification ids replace the previous notification;
  • timerDuration renders as a small progress bar only, matching the original EOS intent;
  • timer expiry removes the notification and runs timerCommands.

CH02 β€” EOS Notification eval API

Adds the original-style eval API:
  • Notification.get(id).remove();
  • Notification.get(id).setTitle(title).

CH03 β€” EOS audio semantics

Aligns audio.play with original EOS/Howler semantics:
  • omitted loops means play once;
  • loops: 0 means loop forever;
  • positive loops means total play count;
  • volume is 0..1, not 0..100;
  • page navigation stops page-scoped audio, but keeps background audio playing.

CH04 β€” EOS duration parsing

Extends duration parsing for broader EOS compatibility:
  • random ranges such as 10s-20s;
  • expression durations such as $expr, interpreted as milliseconds like EOS;
  • ms, d, and w units.

CH05 β€” EOS page targeting and enable/disable

Adds/extends:
  • $target expression support in gotos;
  • wildcard page targets;
  • page enable / disable actions;
  • correct glob matching against all pages when re-enabling disabled pages.

CH06 β€” EOS choice metadata

Adds/keeps:
  • choice.option.visible support, including $expr;
  • choice.option.color rendering with readable contrast text.

CH07 β€” UI: compact action buttons and font-size consistency

Compact action buttons:
  • buttons size to their label instead of filling the full button bar;
  • buttons remain centered and wrap when needed;
  • the existing β€œText font size” setting now also applies to normal buttons and notification buttons.

CH08 β€” UI: EOS-like say bubbles and alignment

Changes v0.6's separator-only say blocks into compact EOS-like dark text bubbles:
  • each say is visually grouped in its own bubble;
  • default alignment is centered;
  • say.align supports left/center/right;
  • extra bottom padding prevents the latest bubble from sitting flush against the bottom edge.

CH09 β€” UI: dynamic prompt input width

Adjusts EOS prompt fields to behave more like original EOS:
  • starts around 10 characters wide;
  • grows as the user types;

CH10 β€” EOS say before goto

Fixes EOS pages where visible say text is immediately followed by a goto.

Behavior:
  • the visible text is shown first;
  • the user gets a normal Continue step before the goto runs;
  • this prevents pages from instantly jumping away before the text can be read;
  • this also avoids the impression that a choice button did nothing.

CH11 β€” EOS default-say pacing

Restores step-by-step pacing for default EOS say actions:
  • a following say is treated as a new visible step instead of being appended immediately;
  • a following goto still waits for Continue first, so information/menu pages remain readable before returning;
  • choice, prompt, timer, and invisible control-flow actions still avoid an unnecessary extra Continue.

CH12 β€” EOS choice transcript echo and default button contrast

Aligns choice-button presentation more closely with original EOS behavior:
  • when the user clicks a choice, the selected answer is appended to the transcript as its own say-style bubble, prefixed with >;
  • default choice/Continue and notification buttons use dark grey buttons with white text;
  • script-provided choice.option.color values are still respected with readable contrast text.
This is nice stuff!

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Mon Jun 01, 2026 2:15 pm
by marvelousmonster
GDError404 wrote: Tue May 26, 2026 8:58 am This is absolutely wonderful and works *so* well for a specific estim tease that has been broken on the EOS player for as long as I can remember. I would love it there was an option for a classic EOS/Flashtease style circle timer rather than the bar across the bottom, but it's such a small thing in the grand scheme of things
You got me curious. What estim tease was broken and is now working?

Re: LeadMe - A single HTML lightweight TeaseMe/GuideMe alternative

Posted: Tue Jun 02, 2026 2:34 am
by GDError404
marvelousmonster wrote: Mon Jun 01, 2026 2:15 pm
GDError404 wrote: Tue May 26, 2026 8:58 am This is absolutely wonderful and works *so* well for a specific estim tease that has been broken on the EOS player for as long as I can remember. I would love it there was an option for a classic EOS/Flashtease style circle timer rather than the bar across the bottom, but it's such a small thing in the grand scheme of things
You got me curious. What estim tease was broken and is now working?
Estim Clinic kept freezing after the first couple pages. it looks like one of the audio files somehow went missing