13.28
Patch Notes - Version 13.28:
Bugfixes:
- Changed GTc Virtual Xbox Controller will now show up as Controller (XBOX For Windows) instead to prevent it also setting other devices globally.
- *** This will require to uninstall_driver and re - install_driver them from the app folder ***
- ** Alternatively you can completely uninstall and re-install the server and driver package **
- * choose to not remove the appdata during uninstall and it won't affect any profiles or assets you have*
13.27
Patch Notes - Version 13.27:
Bugfixes:
- Fixed find and replace color function not updating the correct widget attributes (_up and _down color variants now properly included)
13.26 - Server Patch
Patch Notes - Version 13.26:
Bugfixes:
- Fixed important notices parser capturing JavaScript code from website by removing <script> and <style> tags before parsing
13.24
Patch Notes - Version 13.24:
Twitch Integration:
- Added full Twitch EventSub integration for real-time chat monitoring
- Implemented Twitch EventSub Bot with WebSocket connection support
- Added transparent, click-through chat overlay window for streamers
- Chat overlay features lock/unlock mode for gaming (click-through when locked)
- Overlay displays chat with unique colors per user and per channel
- Chat messages formatted as: [timestamp] #channel username: message
- Added text borders and bold font for readability on transparent background
- Overlay settings persist (position, size, lock state) across sessions
- Added "Toggle Chat Overlay" and "Unlock Overlay" buttons to Twitch Manager
- Implemented chat keyword monitoring with sound trigger support
- Added chat command system with bits/points integration
- Support for multiple Twitch channels simultaneously (up to 3)
- Twitch chat logging with options for all messages or monitored only
- Command builder with visual interface for creating complex macros
- Saved commands library for reusable Twitch command sets
- OAuth token authentication with secure storage
Update Management:
- Added "Periodic Update Checks" setting to control hourly update checks
- Added "Receive Important Notices" setting to control notice popups
- Update checks always run on startup regardless of periodic setting
- Duplicate popup prevention for both update notifications and important notices
- Settings are saved and persist across server restarts
- Both settings default to enabled for new installations
Features:
- Added font preview feature to font selector dropdowns - each font now displays in its own typeface
- Added image preview panel to image file pickers - shows 200x200 thumbnail of selected image
- Image preview supports PNG, JPG, JPEG, GIF, BMP formats
- Animated ZIP files show first frame preview with "(Animated)" label
- Preview updates in real-time as you browse through files
- Added subfolder support for all asset directories (profiles, presets, fonts, images, sounds)
- Profiles can now be organized in subdirectories (e.g., Game1/profile1.profile)
- Presets can now be organized in subdirectories (e.g., SpaceSims/shield_preset.json)
- Fonts can now be organized in subdirectories (e.g., SciFi/custom_font.ttf)
- Profile import/export now properly handles subdirectory structures
- Added get_files_recursively() helper function for recursive directory scanning
Improvements:
- Created FontPreviewSpinnerOption class for font dropdown previews
- SafeSpinner now automatically detects font dropdowns and applies preview styling
- Image file picker layout enhanced with side-by-side preview panel
- Twitch overlay uses tkinter for native transparency (Kivy can't do transparency)
- Chat overlay runs in separate daemon thread to avoid blocking Kivy
- Overlay properly cleans up on close to allow restart without errors
- Win32 API used for click-through functionality (WS_EX_TRANSPARENT flag)
- Settings saved to user_data_dir for proper multi-user support
Bugfixes:
- Fixed file progress bar showing incorrect totals when syncing with multiple clients
- Progress bar now correctly aggregates files sent/total across all clients (was showing "66/33" for 2 clients with 33 files each)
- Implemented per-client file tracking instead of global counter to prevent interference during multi-client sync
- Progress calculation now shows aggregate totals: total_files_sent / total_files_to_send across all active syncs
- Fixed overlay toggle causing server freeze by scheduling window close on tkinter thread
- Fixed settings path error by using user_data_dir instead of non-existent settings_dir
- Fixed overlay window restart error by properly destroying window and clearing references
- Fixed syntax errors in overlay close window method indentation
- Fixed virtual joystick driver for windows 10 (may require uninstall and re-install of the driver)
13.21
Patch Notes - Version 13.21:
Bugfixes:
- Fixed sync failing with "Could not find client writer" error
- Server now properly tracks pending client manifests and matches them to unique connection IDs
- Resolved manifest-to-connection matching issues when multiple clients have similar names
- Fixed CustomImage/CustomLabel color pickers not working (border_color, label_color, label_outline_color)
- Color pickers now correctly identify CustomImage/CustomLabel widgets vs CustomButton widgets
- Added property dispatch calls to force canvas updates when colors change on CustomImage widgets
13.19
Patch Notes - Version 13.19:
Major Improvements:
- Fixed sync failing when client connects from outside LAN (internet/mobile network)
- Files now transfer over existing connection instead of requiring new port for NAT traversal
- Significantly improved file transfer speed by batching network writes (5-10x faster on high-latency connections)
- Removed unused port assignment system for cleaner, more reliable sync process
- Enhanced logging for sync operations to help diagnose connection issues
Bugfixes:
- Fixed OSError [WinError 121] "semaphore timeout" when syncing with NAT'd clients
- Fixed UTF-8 decode errors when receiving files over main connection
- Resolved issues with clients behind routers/mobile networks unable to receive sync files
13.18
Patch Notes - Version 13.18:
Bugfixes:
- Fixed custom sounds not loading from correct AppData path
- Custom sounds now properly load from AppData\Roaming\GameTouch2_Server\custom_assets\custom_sounds
- Sound selector handlers now use correct path resolution matching image handlers
13.17
Patch Notes - Version 13.17:
New Features:
- **Button Label State Colors**: Added support for separate label and outline colors for button up/down states
- Labels now change color when buttons are pressed, matching icon color behavior
- New color pickers: Label Up Color, Label Down Color, Outline Up Color, Outline Down Color, Button up, Button down, Border up, Border down
- Label colors automatically swap between up/down variants based on button state
- Works for both toggle and normal buttons
Other:
- Added semaphore limiting server to max 10 concurrent sound threads (prevents hundreds of threads piling up)
- Sound caching now done directly from background threads
- Fixes freezing issue for users with slow disk I/O, network drives, or problematic audio drivers
- Applied to server received sounds, client button sounds, slider sounds, and preset sounds
13.14
Patch Notes - Version 13.14:
Performance Optimizations:
- **MAJOR: Eliminated 10-12ms asyncio scheduling delay by implementing direct socket write for command sending**
- Client now writes commands directly to socket buffer instead of waiting for asyncio event loop (100x faster)
- Commands are sent in <1ms instead of 10-15ms, dramatically improving button responsiveness
- Server asyncio event loop interval reduced from 10ms to 2ms for lower latency with multiple clients
- Client asyncio event loop interval reduced from 10ms to 1ms for ultra-low latency
- Toggle state broadcasting now non-blocking - doesn't delay command execution
- Fixed command execution lag by deferring command log processing to prevent blocking async command handler
- **Removed 1,469 logger.debug/info/warning calls across all files to eliminate f-string evaluation overhead**
- Removed expensive logger serialization calls from client button press/release handlers
- Removed logger overhead from client-side sound playback path
- Removed logger.debug calls from server command reception that serialized large JSON strings
- Added _play_cached_sound helper method to replace lambda closures in sound playback
- Optimized command processing flow to maintain zero-lag command execution
- **Removed artificial delays in profile loading - profiles now load at native device speed**
- Profile loading no longer throttled by 50ms per widget + 100ms per panel delays
- 400-widget profiles load ~20 seconds faster on capable devices
13.13
Patch Notes - Version 13.13:
Performance Optimizations:
- Fixed command execution lag by deferring command log processing to prevent blocking async command handler
- Removed expensive logger serialization calls from client button press/release handlers
- Added _play_cached_sound helper method to replace lambda closures in sound playback
- Optimized command processing flow to maintain zero-lag command execution
13.12
Patch Notes - Version 13.12:
Bug Fixes:
- Fixed memory leak causing server to freeze with repeated button presses - sounds are now cached and reused instead of reloading from disk
- Fixed virtual Xbox controller enabling on client connect when disabled in settings - gamepad reset now checks configuration before execution
- Fixed missing sounds on rapid button presses - sound caching provides faster playback and prevents memory buildup
- Fixed button icon color not updating immediately when changed in color picker - icon now displays new color instantly without requiring button press
- Fixed find/replace color operation not changing icon_up_color and icon_down_color - both properties now included in color replacement
13.11
Patch Notes - Version 13.11:
Bug Fixes:
- Fixed server freezing when processing commands with sound playback enabled - sound loading now non-blocking via async scheduling
- Fixed virtual Xbox controller auto-enabling when client connects despite setting being disabled - now respects server configuration
- Fixed virtual Xbox controller not responding to enable/disable checkbox - connection now properly managed by user setting
13.10
Patch Notes - Version 13.10:
Bug Fixes:
- Fixed ColorPicker crash when typing invalid hex values (e.g., "rt", "s") - now validates input before parsing
- Fixed ColorPicker hex input not updating when typing or pasting - now correctly identifies and binds to hex input field
- Fixed ColorPicker not accepting pasted hex values - now handles both 6-character (RGB) and 8-character (RGBA) formats - (should fix the find replace color bug)
- Fixed ColorPicker automatically changing pasted hex values - color now applies instantly without recursive updates
- Fixed popout widget deletion not resetting layout target - new widgets now correctly add to panel layout after popout is removed
- Fixed panel background/overlay color reverting to white when selecting images - colors now preserve user settings
- Fixed profile rename bug where panel names were incorrectly duplicating suffix (e.g., "Space Sim_v2_v2_Main")
- Fixed profile dropdown and editor title not updating after profile rename
- Fixed Client window positioning and sizing with DPI scaling - window now properly centers and scales at all DPI levels (100%, 125%, 150%, 200%, 300%, etc.) with title bar remaining visible
13.09
Patch Notes - Version 13.09:
Bug Fixes:
- Fixed ColorPicker crash when typing invalid hex values (e.g., "rt", "s") - now validates input before parsing
- Fixed ColorPicker hex input not updating when typing or pasting - now correctly identifies and binds to hex input field
- Fixed ColorPicker not accepting pasted hex values - now handles both 6-character (RGB) and 8-character (RGBA) formats
- Fixed panel background/overlay color reverting to white when selecting images - colors now preserve user settings
- Fixed profile rename bug where panel names were incorrectly duplicating suffix (e.g., "Space Sim_v2_v2_Main")
- Fixed profile dropdown and editor title not updating after profile rename
- Fixed Client window positioning and sizing with DPI scaling - window now properly centers and scales at all DPI levels (100%, 125%, 150%, 200%, 300%, etc.) with title bar remaining visible
13.08
Patch Notes - Version 13.08:
Bug Fixes:
- Fixed memory leak in gif_converter causing crashes during extensive editing sessions (temp directories not being cleaned up)
- Fixed duplicate code in SaveScheduler trigger_delayed_save method
- Fixed fullscreen toggle on Windows Client - window now properly restores to original size and position
- Applied DPI scaling adjustments to window positioning for high-DPI displays
13.05
Patch Notes - Version 13.05:
Performance Improvements:
Fixed UI freezing during connection - server and client connection processes now fully non-blocking
Eliminated console windows appearing during network detection (8-9 PowerShell windows)
Replaced subprocess-based firewall checks with Windows COM API for better performance
Moved network interface detection to background thread to prevent UI blocking
All firewall operations now use CREATE_NO_WINDOW flag to prevent console window flashing
Better windows Route detection for server addressing
Bug Fixes:
Fixed Space Sim profile not showing some sliders
Fixed accidental firewall Block rules preventing connections - now automatically removes Block rules when creating Allow rules
Fixed firewall rule display showing all programs - now filters to only show rules for current executable
Fixed popout touch handling blocking interactions with widgets inside popouts - now properly allows child widgets to handle touches
Other:
Changed both windows server and client to detect monitor resolution and start just smaller than the window if < = 1920x1080 else 1920x1080
13.01
Patch Notes - Version 13.01:
Bug Fixes:
- Fixed custom popouts allowing on_touch_up events to pass through to widgets behind them
- Fixed widget bounds checking in popouts for buttons, clocks, and sliders to correctly use parent.parent.ids
- Fixed multi-line important notices not displaying correctly (now properly handles newlines from website)
- Fixed version information parsing failing when website HTML structure changes
- Fixed gamepad axis reset error - updated to use correct gtc_xinput methods (set_left_stick, set_right_stick, set_left_trigger, set_right_trigger)
- Fixed discovery response to dynamically determine correct IP address for dual network interface systems
- Fixed slider recreation error where alias properties were being set before slider object was created
- Fixed PersistentEchoClient missing should_reconnect attribute initialization
- Fixed sync overlay getting stuck when sync fails - server now sends _SYNC_FAILED_ message to clear client overlay
Previous Version (13.00):
- Completely overhauled everything, check out the latest video on the website www.gametouchcontroller.com
13.00
Patch Notes - Version 13.00:
Please watch the latest Video.