Fapland Handy Edition

Added to the main post

1 Like

Had same problem where play button does not open VLC. Reinstalled to make sure it was 64

sorta worked, now I’m just having issues with the video not loading and then saying i completed like five secs after i start Idk :clapper_board: Showing hardcoded animated sprite for round 1
:bullseye: Showing ‘Coming Up Next’ for Round 1
removing countdown timer
countdown timer cleaned up
:clapper_board: PLAY PRESSED - Starting Round 1
:waving_hand: Hiding ‘Coming Up Next’ display
:floppy_disk: Saved pause config entry: { “timestamp”: “2025-06-05T02:47:50Z”, “max_pauses”: 1, “pause_duration”: 5, “writer”: “godot”, “reason”: “round_start” }
:rocket: Launching Python script: scripts/sync_handy.py with video: 1
:white_check_mark: All files found, launching Python script…
:snake: Trying Python command: python
:white_check_mark: Success with python
:white_check_mark: Python VLC+Handy script started with PID: 5924
:speech_balloon: :clapper_board: VLC Player launched in FULLSCREEN! Pauses: 1 (5s each)
:eyes: Starting video completion monitor…
:clapper_board: Video script finished! (Auto-detected)
:white_check_mark: Normal video completion
:magnifying_glass_tilted_left: DEBUG: Found 1 entries in pause config
:magnifying_glass_tilted_left: DEBUG: Latest entry: { “max_pauses”: 1.0, “pause_duration”: 5.0, “reason”: “round_start”, “timestamp”: “2025-06-05T02:47:50Z”, “writer”: “godot” }
:scroll: PAUSE CONFIG HISTORY:

  1. 2025-06-05T02:47:50Z | godot | pauses=1.0 | reason=round_start
    :memo: Pauses set to: 2 (1 + 1 bonus)
    :white_check_mark: Video completed for Round 1
    :speech_balloon: :clapper_board: Video finished! Roll the dice to continue.

@cozyblanket and @Fellowweeb are you sure you put your handy connection key in the first box and the Handy ApplicationID generated from the website in the second box in the Handy config settings. Almost everyone who was getting this error was due to this

so I did have them swapped, I fixed it but still the issue pursist
Round 1 ready - Pauses: 1/1
:speech_balloon: :video_game: Round 1 ready! You have 1 pause available.
:stopwatch: Session timer started
:white_check_mark: AAA Quality UI ready with session tracking!
WARNING: ‘res://sprites/tres_files/1.tres’: In external resource #0, invalid UID: ‘uid://cmecgfnfc4pvf’ - using text path instead: ‘res://sprite_sheets/1.png’.
at: open (core/io/resource_format_binary.cpp:1097)
:clapper_board: Showing hardcoded animated sprite for round 1
:bullseye: Showing ‘Coming Up Next’ for Round 1
removing countdown timer
countdown timer cleaned up
:clapper_board: PLAY PRESSED - Starting Round 1
:waving_hand: Hiding ‘Coming Up Next’ display
:floppy_disk: Saved pause config entry: { “timestamp”: “2025-06-05T03:04:17Z”, “max_pauses”: 1, “pause_duration”: 5, “writer”: “godot”, “reason”: “round_start” }
:rocket: Launching Python script: scripts/sync_handy.py with video: 1
:white_check_mark: All files found, launching Python script…
:snake: Trying Python command: python
:white_check_mark: Success with python
:white_check_mark: Python VLC+Handy script started with PID: 13396
:speech_balloon: :clapper_board: VLC Player launched in FULLSCREEN! Pauses: 1 (5s each)
:eyes: Starting video completion monitor…
:clapper_board: Video script finished! (Auto-detected)
:white_check_mark: Normal video completion
:magnifying_glass_tilted_left: DEBUG: Found 1 entries in pause config
:magnifying_glass_tilted_left: DEBUG: Latest entry: { “max_pauses”: 1.0, “pause_duration”: 5.0, “reason”: “round_start”, “timestamp”: “2025-06-05T03:04:17Z”, “writer”: “godot” }
:scroll: PAUSE CONFIG HISTORY:

  1. 2025-06-05T03:04:17Z | godot | pauses=1.0 | reason=round_start
    :memo: Pauses set to: 2 (1 + 1 bonus)
    :white_check_mark: Video completed for Round 1
    :speech_balloon: :clapper_board: Video finished! Roll the dice to continue.

I also generated a new ID code too just to double check to see if that would work

:video_game: Creating Premium FapLand Start Menu…
Checking for highscores.json…
Checking for highscores.json…
:white_check_mark: Premium Start Menu ready!
:rocket: Start Game pressed - transitioning to main game…
:video_game: Creating AAA Quality FapLand UI with Session Timer…
:broom: Cleared pause config file on startup
:sparkles: Perk System initialized
:video_game: Connecting to existing scene UI elements…
:link: Connected to scene UI elements
:white_check_mark: Connected to scene UI elements with premium styling!
:link: Connecting AAA UI signals…
:white_check_mark: Play button connected
:white_check_mark: Roll button connected
:bar_chart: UI Updated with premium animations - Round:1Pauses:1
:bullseye: Round 1 ready - Pauses: 1/1
:speech_balloon: :video_game: Round 1 ready! You have 1 pause available.
:stopwatch: Session timer started
:white_check_mark: AAA Quality UI ready with session tracking!
WARNING: ‘res://sprites/tres_files/1.tres’: In external resource #0, invalid UID: ‘uid://cmecgfnfc4pvf’ - using text path instead: ‘res://sprite_sheets/1.png’.
at: open (core/io/resource_format_binary.cpp:1097)
:clapper_board: Showing hardcoded animated sprite for round 1
:bullseye: Showing ‘Coming Up Next’ for Round 1
removing countdown timer
countdown timer cleaned up
:clapper_board: PLAY PRESSED - Starting Round 1
:waving_hand: Hiding ‘Coming Up Next’ display
:floppy_disk: Saved pause config entry: { “timestamp”: “2025-06-05T04:53:39Z”, “max_pauses”: 1, “pause_duration”: 5, “writer”: “godot”, “reason”: “round_start” }
:rocket: Launching Python script: scripts/sync_handy.py with video: 1
:white_check_mark: All files found, launching Python script…
:snake: Trying Python command: python
:white_check_mark: Success with python
:white_check_mark: Python VLC+Handy script started with PID: 25532
:speech_balloon: :clapper_board: VLC Player launched in FULLSCREEN! Pauses: 1 (5s each)
:eyes: Starting video completion monitor…
:clapper_board: Video script finished! (Auto-detected)
:white_check_mark: Normal video completion
:magnifying_glass_tilted_left: DEBUG: Found 1 entries in pause config
:magnifying_glass_tilted_left: DEBUG: Latest entry: { “max_pauses”: 1.0, “pause_duration”: 5.0, “reason”: “round_start”, “timestamp”: “2025-06-05T04:53:39Z”, “writer”: “godot” }
:scroll: PAUSE CONFIG HISTORY:

  1. 2025-06-05T04:53:39Z | godot | pauses=1.0 | reason=round_start
    :memo: Pauses set to: 2 (1 + 1 bonus)
    :white_check_mark: Video completed for Round 1
    :speech_balloon: :clapper_board: Video finished! Roll the dice to continue.

I have the same issue. I have vlc player 64 bits and it does not load videos.

Do you have a VideoLAN folder in C:Program Files?

Yes i do

Hello guys I pushed another update to support firmware 3 as well as add round randomization option (within the same difficulty). Also some bug fixes so everyone who was getting an error with vlc not showing up should try again. You need to click the install deps button again on the title screen

Thanks @New_MG and @Fellowweeb for helping out with it

2 Likes

Guys, I found the Problem about VideoLAN not opening, you probably used the Access Token as the App ID like I did.

What you need to do is log in at https://user.handyfeeling.com/ with the Access Token.

And create an Application ID and use the ID not the Access token.

@tomper You properly should explain how to get the Application ID in the topic, most people only need the Connection Key for stuff.

4 Likes

Currently investigating a method to directly import gifs into Godot without needing to run an external script.
Benefit: it looks great in game, and the file structure ends up cleaner.
Problem: it takes 7 seconds to load ONE gif
Solution 1: Use smaller files (lower framerate, likely)
Solution 2: Asynchronously load them while videos are playing
Problem with solution 2: The game doesn’t always know what round is next, as the player can use a perk to force a certain round
Potential solution: Just always load the gif 7 rounds later as well (seems a little hacky)

1 Like

Nice. Yeah making the animated sprite/gif work in godot was headache. Feel free to send your build and we can add it to the post for linux compatibility :slight_smile: (or you can create your own post too)
(Btw I pushed some stuff ago which loads sprite from the sprite sheet png directly so you can get rid of the sprites/ folder entirely)

How were the gif / spritesheet png files generated from the mp4s? Is there an external tool you could point me to?

Yes use scriptplayer. In File > Add folder to playlist and add the video folder. Then show playlist should have all the videos in that there is a generate option use that to generate preview/GIF etc. As for the sprite sheet from gif use the python script in scripts/ giftoresconverter.py. It also generates tres files but you can ignore that just use the sprite sheet pngs.

1 Like

Would it be possible to add an intensity slider either ingame or with a config? It would be nice for more accessibility.

Do you mean the range of the handy strokes? If so you can change it using up/down buttons on handy itself

Ah I didn’t realize it was able to be changed like that. Been so used to EDI stuff as I just recently became an owner haha.

how long it takes to play it all :smiley:

Q: is the the Fapland Remastered (game) is the it the same as the Fapland Handy Edition or is it different the handy edition is just videos with no game ? can someone explain this to me im going in to this first time

The vlc does not open and just skips any fix ?

2 Likes