Skip to content

Godot 4.x GDExtension Change-Log

A history of all changes to the gdextension branch.

Version 4.8

  • Added: doc_classes back in for Godot 4.3 or higher
  • Added: Steam Matchmaking response handlers, thanks to jeremybeier
  • Added: all missing Messages and Sockets constants
  • Changed: Networking Messages, Sockets, and Utils now use Steam IDs instead of identity system
  • Changed: UserUGCListSortOrder enums for readability
  • Changed: UGCContentDescriptorID enums for readability
  • Changed: getResultStatus() now returns the integer / enum
  • Changed: cleaned up addItemPreviewFile(), check_file_signature, and showGamepadTextInput()
  • Changed: various bits and pieces
  • Changed: IP logic for all related functions
  • Changed: addFavoriteGame(), initiateGameConnection(), terminateGameConnection(), and removeFavoriteGame() now take strings for IP
  • Changed: getAuthSessionTicket() now defaults to 0 for Steam ID
  • Changed: IP address now accepted instead of IP references
  • Fixed: getFriendCount() has correct bit-wise value
  • Fixed: server browser functionality, thanks to jeremybeier
  • Fixed: wrong string IP conversions, thanks to jeremybeier
  • Fixed: server list request filters, thanks to jeremybeier
  • Fixed: typo with UGC_MATCHING_UGC_TYPE_ITEMS enum
  • Fixed: minor case issue with Workshop enums
  • Fixed: playerDetails(), requestFavoritesServerList(), requestInternetServerList(), requestSpectatorServerList(), requestFriendsServerList(), requestHistoryServerList(), and pingServer(), thanks to jeremybeier
  • Fixed: regressions caused by minor update
  • Fixed: typo with NETWORKING_CONFIG_TYPE_STRING enum
  • Fixed: in-editor docs
  • Removed: Networking Types identity system and related bits
  • Removed: P2P Networking constants as they are duplicates of the P2PSend enum
  • Removed: previous, non-functioning Matchmaking Server call results
  • Removed: getIdentity() as it is redundant now

Version 4.7

  • Changed: minor organization and readability changes
  • Fixed: htmlInit() not returning bool for success
  • Fixed: regression in receiveMessagesOnChannel()
  • Fixed: missing argument bind in getListenSocketAddress()
  • Removed: unused docs XML

Version 4.6.3

  • Changed: returned values for getFriendGamePlayed, thanks to SlejmUr
  • Changed: getItemPrice() now returns base price and price, thanks to SlejmUr
  • Changed: getFriendMessage() and callback connected_friend_chat_message now returns the type, thanks to SlejmUr
  • Changed: updated in-editor docs with changes
  • Changed: updated submodule to Godot-cpp 4.2.2
  • Fixed: missing info_flags key in getSessionConnectionInfo(), thanks to SlejmUr
  • Fixed: getServerDetails() not sending back needed struct, thanks to SlejmUr

Version 4.6.2

  • Added: internal notes about where enums are found
  • Added: minor extra helper functions from Steam's client header
  • Added: getSteamID32() function to convert SteamID64 to SteamID
  • Changed: replaced deprecated Controller struct with Inputs struct in getDigitalActionData()
  • Changed: leaderboard details max now set at highest instead of zero by default
  • Fixed: incorrect constant for PUBLISHED_FILE_UPDATE_HANDLE_INVALID
  • Fixed: getAllLobbyData() sending back all pairs, thanks to freehuntx

Version 4.6.1

  • Skipped to keep versioning the game with 4.x module

Version 4.6

  • Added: new Remote Storage enum to WorkshopFileType
  • Added: two new UGC enums to ItemState and ItemPreviewType
  • Added: two new Friends class constants
  • Added: new function dismissGamepadTextInput()
  • Added: new Remote Play enum, form factor for VR headset
  • Added: two new result enums; not supported and family size limit exceeded
  • Added: three new enums to NetworkingConfigValue
  • Added: new general constant ACCOUNT_ID_INVALID
  • Changed: FEATURE_KIOSK_MODE enum now deprecated
  • Changed: minor housekeeping by rearranging some functions
  • Changed: k_ESteamNetworkingConfig_SDRClient_DebugTicketAddress was replaced by k_ESteamNetworkingConfig_SDRClient_DevTicket, value is the same but reference changed
  • Changed: updated in-editor docs
  • Fixed: spelling error in getProfileItemPropertyInt() bind
  • Removed: App Lists class functions, callbacks, etc. due to SDK 1.59 changes
  • Removed: Remote Play enums mistakenly added as constants

Version 4.5.4

  • Added: missing k_nSteamNetworkingSend_AutoRestartBrokenSession to constants
  • Added: two missing Input constants: INPUT_HANDLE_ALL_CONTROLLERS and INPUT_MAX_ACTIVE_LAYERS
  • Changed: getInputTypeForHandle() now returns int / enum instead of string for device models
  • Changed: createBrowser now like module version
  • Changed: html_browser_ready now call result instead of callback
  • Changed: order of constants to be alphabetic
  • Changed: changed returned variable name to need_to_accept_tos in item_updated callback
  • Changed: Github Actions scripts, one for Vulkan and another for version numbers

Version 4.5.3

  • Fixed: requestClanOfficerList() using wrong internal function, thanks to sepTN

Version 4.5.2

  • Fixed: crashes on generateItems(), startPurchase(), and exchangeItems(), thanks to sepTN

Version 4.5.1

  • Fixed: app ID automatically being set to 480, now default is 0 which makes GodotSteam ignore auto-setting app ID

Version 4.5

  • Added: two new arguments to steamInit() and steamInitEx() to set your app ID and run_callbacks interally, thanks to GreenFox
  • Added: two Music class callbacks
  • Changed: generateItems(), exchangeItems(), getItemsByID(), and startPurchase() all list-based arguments are now PoolIntArrays
  • Changed: getItemsByID() now takes one argument, counts the elements in the passed array instead
  • Changed: getItemsWithPrices() no longer requires any arguments passed to it
  • Changed: in-editor docs have been updated
  • Fixed: getResultItems() now returns all item data
  • Fixed: missing DEFVAL for steamInitEx()
  • Fixed: Joy Con name in getInputTypeForHandle()
  • Removed: getNumItemsWithPrices() as it was unnecessary

Version 4.4.3

  • Fixed: requestEquippedProfileItems() was missing method bind, thanks to BOTLANNER
  • Fixed: get_ticket_for_web_api callback for getting actual ticket buffer, thanks to dicarne
  • Fixed: compiler complaining about comparison between Steam enum and GodotSteam enum for steamInitEx()
  • Fixed: getListenSocketAddress() fixed to provide the actual address and optional port
  • Changed: different defaults in Github Actions files
  • Changed: createBrowser() now sends proper NULL when empty string passed
  • Changed: html_browser_ready from callback to proper call result
  • Changed: cast handle in setSize() as Steam HHTMLBrowser
  • Removed: unnecessary steam_appid.txt from zips in Github Actions

Version 4.4.2

  • Changed: bump for Godot 4.1.2

Version 4.4.1

  • Fixed: missing descriptions for some in-editor functions/signals
  • Fixed: receiveMessagesOnChannel(), receiveMessagesOnPollGroup(), and receiveMessagesOnConnection() had overwriting dictionary keys

Version 4.4

  • Added: new enums and constant related to new Steam initialization function
  • Added: new enums for NetworkingConfigValue
  • Added: new intialization function steamInitEx() that is more verbose
  • Added: new UGC function getUserContentDescriptorPreferences()
  • Added: new Remote Play function startRemotePlayTogether()
  • Changed: UGC functionsetItemTags() to have new argument for admin tags
  • Changed: compatible with Steamworks SDK 1.58

Version 4.3.1

  • Fixed: wrong variant type for join_requested

Version 4.3

  • Added: full GodotSteam documentation into the editor
  • Added: steamShutdown() to allow Steamworks to be manually shutdown
  • Added: requestEquippedProfileItems() function and equipped_profile_items callback
  • Added: Steam Deck as Steam Input type
  • Changed: all enums are now directly linked to their SDK counterparts
  • Changed: getDigitalActionData() returned keys are now state and active
  • Changed: names of some Steam enums to be cleaner and leaner
  • Changed: getAppInstallDir() now returns dictionary with absolute path and install size
  • Fixed: some missing enum binds
  • Fixed: missing function argument binds
  • Fixed: get_ticket_for_web_api sending back strings
  • Removed: enums that are not in the SDK but Valve's docs

Version 4.2.5

  • Changed: updated submodule for Godot 4.1.1
  • Fixed: more stuff in godotsteam.gdextension file

Version 4.2.4

  • Added: new Input callback input_gamepad_slot_change
  • Added: new User callback get_ticket_for_web_api
  • Added: new User function getAuthTicketForWebApi()
  • Changed: getAuthSessionTicket() argument is now optional, defaults to NULL

Version 4.2.3

  • Added: new return values for overlay_toggled; this will break compatibility with this
  • Added: new Input and Parental Settings enums
  • Added: new UGC Content Descriptor ID enums
  • Added: new UGC functions removeContentDescriptor(), addContentDescriptor(), and getQueryUGCContentDescriptors()
  • Added: new signal filter_text_dictionary_changed
  • Changed: getAuthSessionTicket() now uses networking identities
  • Changed: gamepad_text_input_dismissed now passes back the app ID
  • Changed: Steam Input max analog and digital actions values
  • Removed: ERegisterActivationCodeResult due to removal in SDK

Version 4.2.2

  • Changed: names of all godotsteam dll/so/dylib files to be less verbose

Version 4.2.1

  • Added: compiled dylib files for OSX, thanks to definitelyokay
  • Fixed: names of OSX files in the godotsteam.gdextension file

Version 4.2

  • Changed: brought the plug-in version up to speed with the module version