15.22
Patch Notes - Version 15.22: - Server Only
Improvements:
- added permission for Run file Commands.
• There is a Allow Run Program Commands [] on the config page (off by default).
• If checked, when a command is called to run, you will be prompted to allow, deny, always allow
• If always allow is chosen, that run command is added to a list of allowed commands and won't prompt again
15.21
Patch Notes - Version 15.21: - Server Only
Improvements:
- Presets now exist for panels.
• Create panel presets that can be imported in to any profile.
Features:
- There is now a 'Presence' option for all widgets allowing you to make templated changes apply
to All panels with easy, without a need for an actual template panel.
• Allows you to make a widget linked to all panels and edited on any panel.
• You can unlink them to edit individually
• You cannot re-link an unlinked widget, but you can go to a panel and recheck the
linked widget there to re-add it to a panel it was unlinked from
• Denoted by a pink selection icon instead of green to show they have a linked widget
• Duplicating a panel re-creates existing links to widgets in the new panel
15.20
Patch Notes - Version 15.20: - Server
Bugfixes:
- Fixed crash when moving or resizing a widget in the editor
• Position/size input handlers (X, Y, width, height) now sanitise the incoming
value before float conversion, handling embedded newlines that could arrive
when two rapid drag events were concatenated in the text input field
Improvements:
- Logging now reports the correct calling function name in every log entry
- Profile loading now repairs truncated/corrupt profile files automatically
• A corrupt profile caused by a mid-write crash is detected on load and the
JSON is recovered by walking back to the last clean boundary and closing
all open structures; the incomplete last widget is dropped
• The corrupt original is preserved as a .corrupt sidecar for reference
• Missing top-level keys (assets, metadata) are filled with safe defaults so
partially-written files always pass validation
• Saves now use an atomic write (write to .tmp then os.replace) so a crash
mid-save can never truncate the live .profile file again
• The previous good save is backed up as .bak before each new save
15.19
Patch Notes - Version 15.19: - Server
Features:
- Added Run Program to the command types
• Enter the path in the input eg. D:\test.exe D:\New Folder\video.mkv etc
• Works with existing command list elements and commands eg run program, delay, press button.
15.11
Patch Notes - Version 15.11:
Bugfixes:
- Fixed an issue where auto connection was never forgetting last known good config
• this would cause auto connect to fail if you had a network changes.
- Fixed duplicating/pasting popouts to respect the order of widgets inside them.
Improvements:
- Enhanced the network connection type fallback routines for auto, should be far more robust now
- Acknowledging the server has not checked version information once will prevent the message from
appearing on future connects that session.
- Updated default space sim profile to orientate weapons/shields correctly
• [ Weapons Engines Shields ]
Features:
- Added the ability to Undo/Redo in the editor
- Added the following shortcuts to the Editor
• Ctrl + C - copies selected widget
• Ctrl + V - pastes selected widget (works across panels)
• Ctrl + Z - Undo last change
• Ctrl + Y - Redo last change
• Delete - Remove selected widget
Experimental:
- Added the ability to use a touch screen connected to the same PC for windows client
• Still has some issues with low level mouse interactions in windows.
• If mouse clicks/mouse movement is disabled, it should work as intended
(i.e. if mouse flight and firing are set to none, touch screen on same PC works normally).
14.26
Patch Notes - Version 14.26:
Bugfixes:
- Fixed WidgetException crash when opening dropdowns
• Resolved "Cannot add dropdown to window, it already has a parent" error
• Improved dropdown dismissal and reopening logic
• Added proper cleanup and state verification before dropdown operations
14.25
Patch Notes - Version 14.25:
New Features:
- Added "Start Connected and Minimized" option in Config screen
• When enabled, server automatically starts and minimizes to system tray on app launch
• Perfect for running the server in the background
• Bypasses firewall check prompt on automatic startup
• Twitch integration implemented
14.23
Patch Notes - Version 14.23:
Bugfixes:
- Fixed GraphicException crash caused by invalid Line width values in joystick widget during initialization
- Joystick border line widths now properly bounded to prevent zero or negative values
- Fixed support for old intel based Chromebooks
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.