Added to the main post
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 Showing hardcoded animated sprite for round 1
Showing âComing Up Nextâ for Round 1
removing countdown timer
countdown timer cleaned up
PLAY PRESSED - Starting Round 1
Hiding âComing Up Nextâ display
Saved pause config entry: { âtimestampâ: â2025-06-05T02:47:50Zâ, âmax_pausesâ: 1, âpause_durationâ: 5, âwriterâ: âgodotâ, âreasonâ: âround_startâ }
Launching Python script: scripts/sync_handy.py with video: 1
All files found, launching Python scriptâŚ
Trying Python command: python
Success with python
Python VLC+Handy script started with PID: 5924
VLC Player launched in FULLSCREEN! Pauses: 1 (5s each)
Starting video completion monitorâŚ
Video script finished! (Auto-detected)
Normal video completion
DEBUG: Found 1 entries in pause config
DEBUG: Latest entry: { âmax_pausesâ: 1.0, âpause_durationâ: 5.0, âreasonâ: âround_startâ, âtimestampâ: â2025-06-05T02:47:50Zâ, âwriterâ: âgodotâ }
PAUSE CONFIG HISTORY:
- 2025-06-05T02:47:50Z | godot | pauses=1.0 | reason=round_start
Pauses set to: 2 (1 + 1 bonus)
Video completed for Round 1
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
Round 1 ready! You have 1 pause available.
Session timer started
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)
Showing hardcoded animated sprite for round 1
Showing âComing Up Nextâ for Round 1
removing countdown timer
countdown timer cleaned up
PLAY PRESSED - Starting Round 1
Hiding âComing Up Nextâ display
Saved pause config entry: { âtimestampâ: â2025-06-05T03:04:17Zâ, âmax_pausesâ: 1, âpause_durationâ: 5, âwriterâ: âgodotâ, âreasonâ: âround_startâ }
Launching Python script: scripts/sync_handy.py with video: 1
All files found, launching Python scriptâŚ
Trying Python command: python
Success with python
Python VLC+Handy script started with PID: 13396
VLC Player launched in FULLSCREEN! Pauses: 1 (5s each)
Starting video completion monitorâŚ
Video script finished! (Auto-detected)
Normal video completion
DEBUG: Found 1 entries in pause config
DEBUG: Latest entry: { âmax_pausesâ: 1.0, âpause_durationâ: 5.0, âreasonâ: âround_startâ, âtimestampâ: â2025-06-05T03:04:17Zâ, âwriterâ: âgodotâ }
PAUSE CONFIG HISTORY:
- 2025-06-05T03:04:17Z | godot | pauses=1.0 | reason=round_start
Pauses set to: 2 (1 + 1 bonus)
Video completed for Round 1
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
Creating Premium FapLand Start MenuâŚ
Checking for highscores.jsonâŚ
Checking for highscores.jsonâŚ
Premium Start Menu ready!
Start Game pressed - transitioning to main gameâŚ
Creating AAA Quality FapLand UI with Session TimerâŚ
Cleared pause config file on startup
Perk System initialized
Connecting to existing scene UI elementsâŚ
Connected to scene UI elements
Connected to scene UI elements with premium styling!
Connecting AAA UI signalsâŚ
Play button connected
Roll button connected
UI Updated with premium animations - Round:1Pauses:1
Round 1 ready - Pauses: 1/1
Round 1 ready! You have 1 pause available.
Session timer started
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)
Showing hardcoded animated sprite for round 1
Showing âComing Up Nextâ for Round 1
removing countdown timer
countdown timer cleaned up
PLAY PRESSED - Starting Round 1
Hiding âComing Up Nextâ display
Saved pause config entry: { âtimestampâ: â2025-06-05T04:53:39Zâ, âmax_pausesâ: 1, âpause_durationâ: 5, âwriterâ: âgodotâ, âreasonâ: âround_startâ }
Launching Python script: scripts/sync_handy.py with video: 1
All files found, launching Python scriptâŚ
Trying Python command: python
Success with python
Python VLC+Handy script started with PID: 25532
VLC Player launched in FULLSCREEN! Pauses: 1 (5s each)
Starting video completion monitorâŚ
Video script finished! (Auto-detected)
Normal video completion
DEBUG: Found 1 entries in pause config
DEBUG: Latest entry: { âmax_pausesâ: 1.0, âpause_durationâ: 5.0, âreasonâ: âround_startâ, âtimestampâ: â2025-06-05T04:53:39Zâ, âwriterâ: âgodotâ }
PAUSE CONFIG HISTORY:
- 2025-06-05T04:53:39Z | godot | pauses=1.0 | reason=round_start
Pauses set to: 2 (1 + 1 bonus)
Video completed for Round 1
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
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.
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)
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 (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.
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
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 ?