Godot 3.x
A history of all changes to the godot3 branch.
Version 3.30.1
- Fixed: character support in
getAllLobbyData() - Fixed: code related to checking for manual
run_callbacks()and embedded callbacks - Fixed: misspelled signal call in
friend_rich_presence_update
Version 3.30
- Added: missing Friends function
activateGameOverlayRemotePlayTogetherInviteDialog()andgetNumChatsWithUnreadPriorityMessages() - Added: missing User function
getMarketEligibility()and related call resultmarket_eligibility_response - Added: missing UGC functions
setAllowLegacyUpload(),removeAllItemKeyValueTags() - Added: missing Networking Sockets function
setConnectionUserData() - Added: missing Networking Utils functions
setDebugOutputFunction(),getIPv4FakeIPType(),getRealIdentityForFakeIP(),setGlobalCallbackSteamNetConnectionStatusChanged(),setGlobalCallbackSteamNetAuthenticationStatusChanged(),setGlobalCallbackSteamRelayNetworkStatusChanged(),setGlobalCallbackFakeIPResult(),setGlobalCallbackMessagesSessionRequest(),setGlobalCallbackMessagesSessionFailed(),iterateGenericEditableConfigValues() - Added: missing Remote Storage call results
published_file_subscribed,published_file_unsubscribed - Added: missing Remote Play callback
remote_play_guest_invite - Added: Steam ID constants for game servers
- Added: some missing constants
- Added: default values to
getQueryUGCContentDdescriptors()andgetUserContentDescriptorPreferences()for max_entries as there are only five values currently - Added: missing
releaseCurrentThreadMemory()function - Added: patch file for MinGW compatibility
- Changed: included file ID in returned callback
item_updated - Changed: included next cursor in returned callback
ugc_query_completed - Changed:
MarketNotAllowedReasonFlagsenums corrected to bitwise - Changed: added missing result response to
steam_server_disconnectedcallback - Changed: minor swaps from integers to enums where needed
- Changed: corrected STEAM_PARTY_BEACON_LOCATION_DATA to STEAM_PARTY_BEACON_LOCATION_DATA_INVALID
- Changed: some argument or variable names for clarity
- Changed:
advertiseGame()now has defaults to clear game advertisement is nothing is passed - Changed:
connected_clan_chat_messageandconnected_friend_chat_messageto no longer send dictionaries - Changed:
getLeaderboardDisplayType()now returns the direct enum value instead of a dictionary - Changed:
getLeaderboardSortMethod()now returns the direct enum value instead of a dictionary - Changed:
getMostAchievedAchievementInfo()andgetNextMostAchievedAchievementInfo()first key to iterator from rank to be more clear - Changed:
global_achievement_percentages_readynow returns the enum / int instead of string for result - Changed:
global_stats_receivednow returns the enum / int instead of string for result - Changed:
leaderboard_ugc_setnow returns the enum /int instead of string for result - Changed:
getAppInstallDir()now just returns the string location of the app - Changed:
getSyncPlatforms()now returns the direct enum value instead of a dictionary - Changed:
enumerate_following_listcallback to better fit the actual Steam callback - Changed:
request_clan_officer_listcallback now returns bool instead of message for success - Changed:
retrieveConnectionDetails()now returns a dictionary instead of the connection details string - Changed: base_prices to base_price in
getItemsWithPrices() - Changed: internal callbacks system
- Fixed: added missing "app_ids" hint to
get_app_dependencies_resultcallback - Fixed: published file ID not being uint64_t in some Remote Storage signals
- Fixed: various types
- Fixed: using direct values instead of constants when the names could not be found
- Fixed: missing store_flag argument for
activateGameOverlayToStore() - Fixed:
downloadClanActivity()now takes multiple clans are intended - Fixed: constant name from LEADERBOARD_DETAIL_MAX to LEADERBOARD_DETAILS_MAX
- Fixed:
setOverlayNotificationPosition()not using given argument - Fixed: set limit to
requestGlobalStats(), values over 60 defaults to 60 now - Fixed: some incorrect variable names
- Fixed:
getAchievementProgressLimitsInt()andgetAchievementProgressLimitsFloat()using wrong variable name and removing unncessary name key from returned dictionary - Fixed: incorrect spelling in enum name
- Removed:
getClanChatMessage()as it can only be used in response toconnected_clan_chat_messagewhich it is called in anyway - Removed:
getFriendMessage()as it can only be used in response toconnected_friend_chat_messagewhich it is called in anyway - Removed:
getAvailableVoice()as it did nothing useful; was already incorporated into related functions - Removed: branch_size key from returned dictionary in getSupportedGameVersionData() as it was misleading and useless
- Removed: sender_user_data key from returned dictionaries in
receiveMessageOnChannel() - Removed: temporarily removed
setDualSenseTriggerEffect()until it can be overhauled - Removed: buffer from returned dictionary in
getConfigValue()as it was just the size - Removed: unnecessary keys in certain Networking Socket functions where messages are received or sent
- Removed:
createHostedDedicatedServerListenSocket()as it should only be in the GodotSteam Server version
Version 3.29
- Added: new functions and enums to SteamRemotePlay
- Added: Steam icon to the class
- Added: Project Settings for Steam, optional app ID, can set embedded callbacks, thanks to TriMay
- Added: missing HTML Surface functions
openDeveloperToolsandsetDPIScalingFactor - Added: missing Video class callbacks
broadcast_upload_startandbroadcast_upload_stop - Added: new functions to UGC
- Changed: replaced previous
MouseCursorenum with newHTMLMouseCursorenum - Changed: updated docs
- Changed: updated to Steamworks SDK 1.62
- Changed:
getNumSubscribedItemsandgetSubscribedItemsnow take include_locally_disabled argument - Changed:
steamInitnow return intended boolean and first argument removed since client syncs stats/achieves at boot - Changed: added missing is_system_key argument to
key_downfunction - Fixed: various bits in the in-editor docs
- Fixed:
network_messages_session_failedmissing returned properties in bind - Fixed:
connected_friend_chat_messagehaving the wrong signal name - Fixed: wrong signal name for
get_opf_settings_result - Removed:
UserRestrictionsenum - Removed:
SetPersonaNamefunction and related callbackname_changed - Removed:
GetUserRestrictionsfunction
Version 3.28
- Added: new Timeline functions, call results, and enums
- Added: new Inputs enums for Horipad;
INPUT_ACTION_ORIGIN - Added: new Networking config enum
NETWORKING_CONFIG_SEND_TIME_SINCE_PREVIOUS_PACKET - Added: new Networking config enums for fake packet jitter;
NETWORKING_CONFIG_FAKE_JITTER_ - Changed:
equipped_profile_itemscallback now sendsfrom_cachebool - Changed: first argument for
steamInitandsteamInitExno longer calls for stats as they are synced by client; left to prevent compatibility breakage - Changed: various small bits to match Godot 4 branch
- Fixed: getAchievement and related achievement functions breaking under rare conditions
- Fixed:
getAchievementand related achievement functions breaking under rare conditions - Fixed: incorrect type for
set_inventory_update_handle - Removed:
setTimelineGameModefunction which was removed in 1.61 - Removed:
current_stats_receivedcallback removed for redundancy - Removed: Google Stadia, Nintendo, Epic Games, and WeGame Networking identity types fully removed, from 1.61
- Removed: unncessary commenting
- Removed:
sendMessagesuntil it can be fixed in Windows
Version 3.27
- Added: buffer_size argument to
decompressVoicewith default of original value - Added: missing
user_achievement_icon_fetchedsignal bind - Changed: now using Steam Flat API, should allow compiling with MinGW
- Changed: updated in-editor docs
- Changed:
steamworksErrortosteamworks_signal_errorinternally, now prints to editor - Changed: deprecated
getAvailableVoice, merged functionality intogetVoice - Fixed: proper type for
network_connection_status_changed, thanks to stickyShift - Fixed:
getResultItemPropertynow takes empty string to send all property list, thanks to Stralor - Fixed: missing return value hints from
lobby_data_update - Fixed: fixed typo in RESULT_ADMINISTRATOR_OK, thanks to sepTN
- Fixed: fixed a variety of types and code corrections, thanks to bobsayhilol
- Fixed: issue with
setItemTags - Fixed:
get_app_dependencies_resultnow passed back app_ids array - Fixed: both global stat history functions -
getGlobalStatIntHistoryandgetGlobalStatFloatHistory
Version 3.26
- Added: missing
user_achievement_icon_fetchedcallback - Added: new functions and enums to Apps class
- Added: new Steam Timeline class functions, enums, and constants
- Added: new functions to UGC class
- Added: new enum BetaBranchFlags
- Added: new value NETWORKING_CONFIG_IP_LOCAL_HOST_ALLOW_WITHOUT_AUTH for NetworkingConfigValue enum
- Changed: updated for Steamworks SDK 1.60
- Changed:
network_messages_session_failedcallback now returns the Steam ID associated with the user whose session failed - Changed:
global_stats_receivedhad call result name change under-the-hood, does not affect anything - Changed:
sendMessages()now returns the message result - Changed:
getQueryUGCResult()now passes back additional value total_files_size - Changed: enum RemoteStoragePlatform now cast as uint32_t, fixes Rust compatibility, thanks to GreenFox
- Changed:
item_installedsignal now returns additional data - legacy_content and manifest_id - Fixed: incorrect signal name for
inventory_definition_update, thanks to Foxushka
Version 3.25
- 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, andshowGamepadTextInput() - Changed: various bits and pieces
- Changed: IP logic for all related functions
- Changed:
addFavoriteGame(),initiateGameConnection(),terminateGameConnection(), andremoveFavoriteGame()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(), andpingServer(), thanks to jeremybeier - Fixed: regressions caused by minor update
- Fixed: typo with NETWORKING_CONFIG_TYPE_STRING enum
- Fixed: typo with LOBBY_COMPARISON_EQUAL_TO_GREATER_THAN
- 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 3.24
- Changed: internal argument for
executeJavascript()to match godot4 - Changed: returned values for
getFriendGamePlayed(), thanks to SlejmUr - Changed:
getItemPrice()now returns base price and price, thanks to SlejmUr - Changed:
getFriendMessage()and callbackconnected_friend_chat_messagenow returns the type, thanks to SlejmUr - Changed: updated in-editor docs with changes
- Changed: minor organizational things, variable naming, etc.
- Fixed: missing info_flags key in
getSessionConnectionInfo(), thanks to SlejmUr - Fixed:
getServerDetails()not sending back needed struct, thanks to SlejmUr - Removed: unused internal variables
Version 3.23.1
- 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: in-editor docs
- 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 3.23
- 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 3.22.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: updated in-editor docs for missing content
- Changed: order of constants to be alphabetic
- Changed: changed returned variable name to
need_to_accept_tosinitem_updatedcallback - Changed: Github Actions scripts, one for Vulkan and another for version numbers
Version 3.22.3
- Changed: moved constants to separate file like in Godot 4.x branches
- Fixed: backported fixes for in-editor docs, thanks to sepTN
- Fixed:
requestClanOfficerList()using wrong internal function, thanks to _sepTN
Version 3.22.2
- Fixed: app ID automatically being set to 480, now default is 0 which makes GodotSteam ignore auto-setting app ID
Version 3.22.1
- Added: two new arguments to
steamInit()andsteamInitEx()to set your app ID and run_callbacks interally, thanks to GreenFox - Fixed: issue with callback that caused compiling failure in Linux
Version 3.22
- Added: two Music class callbacks
- Changed:
generateItems(),exchangeItems(),getItemsByID(), andstartPurchase()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 3.21.3
- Fixed:
requestEquippedProfileItems()was missing method bind, thanks to BOTLANNER - Fixed:
get_ticket_for_web_apicallback 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:
createBrowser()now sends proper NULL when empty string passed - Changed:
html_browser_readyfrom callback to proper call result - Changed: cast handle in
setSize()as Steam HHTMLBrowser - Removed: unnecessary
steam_appid.txtfrom zips in Github Actions
Version 3.21.2
- Fixed: missing descriptions for some in-editor functions/signals
- Fixed:
receiveMessagesOnChannel(),receiveMessagesOnPollGroup(), andreceiveMessagesOnConnection()had overwriting dictionary keys
Version 3.21
- 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 function
setItemTags()to have new argument for admin tags - Changed: compatible with Steamworks SDK 1.58
- Changed: in-editor docs now reflect all
- Fixed:
gamepad_text_input_dismissedsignal passing back string instead of int forapp_id
Version 3.20.1
- Fixed: wrong variant type for
join_requested
Version 3.20
- Added: full GodotSteam documentation into the editor
- Added:
steamShutdown()to allow Steamworks to be manually shutdown - Added:
requestEquippedProfileItems()function andequipped_profile_itemscallback - Added: Steam Deck as Steam Input typ
- 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
- Removed: enums that are not in the SDK but Valve's docs
Version 3.19.3
- 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 3.19.2
- 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(), andgetQueryUGCContentDescriptors() - Added: new signal
filter_text_dictionary_changed - Changed:
getAuthSessionTicket()now uses networking identities - Changed:
gamepad_text_input_dismissednow passes back the app ID - Changed: Steam Input max analog and digital actions values
- Removed: ERegisterActivationCodeResult due to removal in SDK
Version 3.19.1
- Fixed: issue with UGC tags occasionally getting lost upon update, thanks to EIREXE
Version 3.19
- Changed: various backports from godot4 branch
- Fixed: various lobby list functions now return the
server_list_requesthandle - Fixed: need for godotsteam.sh file on some Linux systems, thanks to mikix
- Fixed: typo in returned dictionary for
createSocketPair() - Fixed:
requestInternetServerList()causing crashes
Version 3.18.5
- Fixed:
createListenSocketP2P() - Fixed: other issues with reading array size
Version 3.18.4
- Changed: documentation updates for Doxygen, thanks to Ralian
- Removed:
isCyberCafe()function
Version 3.18.3
- Added: networking type message constants
- Added: more descriptions and tutorial links to in-editor docs
- Fixed:
getLobbyData()not returning UTF-8 encoded string - Fixed:
sendLobbyChatMsg()truncating non-English strings - Removed:
MarketingMessageFlagsas they don't exist in the header files
Version 3.18.2
- Changed: minor internal variable names
- Fixed:
filterText()truncating input; thanks to tcoxon
Version 3.18.1
- Added: link to SDK placeholder
- Added: more descriptions to in-editor docs
- Fixed: some regressions that made their way into 3.18
Version 3.18
- Added:
avatar_image_loadedcallback to get raw response from Steamworks - Changed: project layout to be Git clone friendly
- Fixed: incorrectly named io_failure for steamworks_error signal, thanks to raulsntos
- Fixed:
getSessionConnectionInfo()using old networking struct - Removed: unused networking stricts
Version 3.17.5
- Changed:
submitItemUpdate()to use null if no notes are passed, thanks to mashumafi - Removed: unused server signals
Version 3.17.4
- Changed:
leaderboard_scores_downloadedandleaderboard_score_updatednow pass back their handles; this is incompatible with earlier versions - Fixed: issue where
leaderboard_score_uploadedwould not fire if passedleaderboard_handlewas not internally stored
Version 3.17.3
- Fixed:
getVoice()andgetAvailableVoice()functions - Removed: all server functionality, put back into server branch
Version 3.17.2
- Fixed: location data structs for new Networking classes, thanks to Kryx-Ikyr
Version 3.17.1
- Fixed: missing comma in
getVideoURL()argument function - Fixed: argument name mismatch with file_details_result
- Fixed: wrong int type for inventory update handle
- Fixed: not casting app ID for
addFavoriteGame() - Fixed: wrong int type for server ID in
getLobbyGameServer() - Fixed: not casting account ID for
createQueryUserUGCRequest()
Version 3.17
- Added: new functions, enums for Steamworks SDK 1.55
- Fixed:
getPublicIP()in Game Servers class
Version 3.16.1
- Fixed: issues with
getPSNID()andgetStadiaID()functions when compiling on Linux
Version 3.16
- Added: new enums for Community Profile item types and properties in Friends class
- Added: new functions
hasEquippedProfileItem(),getProfileItemPropertyString(), andgetProfileItemPropertyInt()in Friends class - Added: new callbacks/signals
equipped_profile_items_changedandequipped_profile_itemsin Friends class - Added: new networking identity types
- Added: new functions
setXboxPairwiseID(),getXboxPairwiseID(),setPSNID(),getPSNID(),setStadiaID(), andgetStadiaID()to Networking Types class - Changed: minor correction to
createListenSocketP2P()in attempt to fix possible crash
Version 3.15
- Changed:
sendMessageToConnection()andsendMessages()now take PoolByteArrays to send any data - Fixed: issue with receiving messages, now allows more than one at a time; thanks to Frostings
- Fixed:
getQueryUGCChildren()not working correctly; thanks to EIREXE
Version 3.14
- Added: inventory handle argument to various Inventory class functions, defaults to 0 to use internally store argument
- Changed: various Inventory class functions to send back the new inventory handle as well as storing it internally
- Fixed: various string issues; thanks to Green Fox
- Fixed:
file_read_async_completecall result not sending back the file buffer - Fixed: missing variant type for
avatar_loadedsignal - Fixed:
enumerate_following_listcalling the wrong signal name - Fixed: print of Steamworks error didn't contain signal name
- Fixed: some variable and argument names
- Fixed:
deserializeResult()to accept incoming PoolByteArray buffer - Fixed: various message functions in new networking classes; thanks to Avantir-Chaosfire
Version 3.13.3
- Fixed: get correct size of lobby message in
sendLobbyChatMsg(); thanks to GreenFox
Version 3.13.2
- Fixed: various functions and callbacks that sent back scrambled IP addresses
Version 3.13.1
- Changed: all HTML Surface functions can now have the handle passed to them or not; will use internal handle if not passed
- Changed: all HTML Surface callbacks now send back their browser handles, if applicable
- Changed:
fileWrite()andfileWriteAsync()now allow you to pass size or not; will determine if not passed - Fixed:
fileWrite()andfileWriteAsync()passing wrong byte array size
Version 3.13
- Added: missing function
getPlaybackStatus()to Music class - Added: missing function
setDurationControlOnlineState()to Users class - Added: missing signals for Matchmaking Servers
- Added: missing PropertyInfo data for signals
- Changed:
serverInit()now takes the individual arguments and no longer a dictionary of arguments - Changed:
getAppName(),getAppListInstallDir(), andgetAppListBuildId()in App Lists to use uint32_t instead of uint32 - Changed:
initGameServer()to use correct arguments - Changed: all signal / callback names for Game Server class to lower-case to match the all others
- Changed:
server_connect_failure,policy_response,client_group_statuscallback to match function names - Changed: various variables in Game Server class callbacks to match the others
- Changed:
setMaxPlayerCount()argument to players_max from max to be more clear - Changed:
setPasswordProtected()argument to password_protected from password to be more clear - Changed: call result / signal stat_received to stats_received
- Changed:
createCookieContainer()now sends back the cookie_handle - Changed:
checkResultSteamID()changed argument name to match - Changed:
getItemsWithPrices()return dictionary name - Changed:
getAppID()now returns uint32_t - Changed:
getFavoriteGames()to have more distinct port names in return dictionary - Changed: some returned types and argument types to better match their Steamworks counterparts
- Changed: names of some keys and some integer types in
getQueryUGCResult()return dictionary - Changed: keys in
getBeaconDetails()return dictionary to be more clear - Changed: removed data_size argument from various Remote Storage functions and get size internally
- Changed:
playerDetails()andserverRules()IP argument to a string - Changed: various Networking Messages, Networking Sockets, and Networking Utils functions to use internal struct system with Networking Type functions
- Changed: a variety of miscellaneous small and corrections
- Fixed: some missing function binds
- Fixed:
lobby_messagecallback data, thanks to kongo555 - Fixed: missing default value for
getAvailableP2PPacketSize(),readP2PPacket(),sendP2PPacket() - Fixed:
getAnalogActionData()so the return dictionary has the right keys - Fixed:
getUserSteamFriends(),getUserSteamGroups()to give the correct Steam ID back - Fixed:
getFriendGamePlayed()using wrong key name in return dictionary - Fixed:
toIdentityString()to provide the correct string data - Fixed:
parseIdentityString()to properly parse back the string data - Fixed:
getSesssionConnectionInfo()now passes back all data - Fixed:
getLocalPingLocation()should return both the ping and location ID in a dictionary - Fixed:
getPingToDataCenter(),getPOPList(),parsePingLocationString(),closeConnection(),getAuthenticationStatus(),getConnectionInfo(),createSocketPair()functions - Removed:
requestAllProofOfPurchaseKeys()andrequestAppProofOfPurchaseKey()as they are deprecated - Removed:
gameplay_statssignal from Game Server class as it wasn't connected to anything - Removed:
getUserDataFolder()as it is deprecated - Removed: leading _ in front of callbacks and call results internally
- Removed:
initGameServer()as it is unnecessary - Removed:
connectByIPAddress(),isPingMeasurementInProgress(),setLinkedLobby()as they are not in the SDK
Version 3.12.1
- Fixed: incorrect case on
app_installedandapp_uninstalled, thanks to craftablescience
Version 3.12
- Added: missing D_METHOD to all functions, should show the right argument names in-editor
- Added: Input origin enums for PS5 and Steam Deck
- Added: Input Types, Input Glyph Style, Input Glyph Size, and Input Configuration Enable Type enums
- Added:
getConnectionRealTimeStatus(),configureConnectionLanes(),connectP2PCustomSignaling(),receivedP2PCustomSignal(),getCertificateRequest(),setCertificate(),resetIdentity(),runNetworkingCallbacks(),beginAsyncRequestFakeIP(),getFakeIP(),createListenScoketP2PFakeIP(),getRemoveFakeIPForConnection(), andcreateFakeUDPPort()functions and callback to NetworkingSockets class - Added:
dismissFloatingGamepadTextInput()function to Utils class - Added:
setTimeCreatedDateRange()andsetTimeUpdatedDateRange()to UGC class - Added: NetworkingeDebugOutputType enums for NetworkingUtils
- Added: missing constant binds for Server API, OverlayToWebPageMode
- Fixed: minor compiler warnings
- Fixed: empty file hash being returned by file_details_result callback
- Fixed: a variety of small bugs and possible crashes, thanks to qarmin
- Fixed: missing binds for
getFriendsGroupName(),getFriendsGroupMembersList(),getFriendsGroupIDByIndex(),getFriendsGroupCount(),getFriendMessage(),getFriendCoplayTime(),getFriendCoplayGame(),getCoplayFriendCount(),getCoplayFriend(),getClanTag(),getClanName(),getClanCount(),getClanChatMessage(),getClanByIndex(),getClanActivityCounts(),fileWriteAsync(),fileWriteStreamCancel(),fileWriteStreamClose(),fileWriteStreamOpen(),fileWriteStreamWriteChunk(),getCachedUGCCount(),getUGCDownloadProgress(),getUGCDetails(),fileReadAsync(),getOPFSettings(),getOPFStringForApp(),getVideoURL(),isBroadcasting()functions - Fixed:
setPNGIcon()andupdateCurrentEntryCoverArt()in Music Remote class - Fixed: missing
getUGCDetails()andgetUGCDownloadProgress()functions - Changed: updated doc_class file for in-editor documentation
- Changed: updated to Steamworks 1.53
- Changed: lobby_data_update, removed lobby data queries as they should be done manually
- Changed: minor tweaks under-the-hood
- Changed: various generic 'int' to their actual types
- Changed: renamed servers and server stats to game server and game server stats respectively, to match SDK
- Changed: SteamNetworkingQuickConnectionStatus to SteamNetConnectionRealTimeStatus_t per Steamworks SDK 1.53, causes a break in previous GodotSteam versions
- Changed:
getConfigValueInfo(), removed name and next value from return dictionary as they are no longer passed by function in SDK 1.53 - Changed: rearranged functions in godotsteam.cpp class binds to match [godotsteam.h] order
- Changed: enum constant binds to match [godotsteam.h] enum order
- Removed: unused callback
new_launch_query_parameters,broadcast_upload_start,broadcast_upload_stop - Removed:
allocateMessage()as it shouldn't be used solo - Removed:
getQuickConnectionStatus()andgetFirstConfigValue()as they were removed from SDK 1.53 - Removed:
setDebugOutputFunction()from Networking Utils
Version 3.11.1
- Removed: unused structs
Version 3.11
- Added: server branch merged into master
- Changed: spacing in default arguments in [godotsteam.h]
- Changed: renamed STEAM_GAMESERVER_CALLBACK as STEAM_CALLBACK
- Removed:
SteamGameServer_RunCallbacks()function
Version 3.10.5
- Added: more helper functions for newer networking classes, translations for steamnetworkingtypes
- Fixed: lots of compiler warnings on Linux, thanks to gregcsokas
Version 3.10.4
- Added: new helper functions for newer networking classes, translations for steamnetworkingtypes
- Fixed: default argument inputInit function, thanks to hhyyrylainen
Version 3.10.3
- Changed: various internal variable / arguments names for clarity, will affect signal-returned dictionaries
Version 3.10.2
- Removed: not logged in as error condition in
steamInit()function
Version 3.10.1
- Changed: various compilation errors for OSX, thanks to SapphireMH
- Removed:
receiveRelayAuthTicket(),findRelayAuthTicketForServer(),getHostedDedicatedServerAddress(), andgetGameCoordinatorServerLogin()as they rely on datagram header that was removed from base SDK
Version 3.10
- Added: various Steam Deck specific functions, thanks to EIREXE
- Added: new AppLists class of functions and callbacks
- Added: new or missing App functions, callbacks, and enums
- Added: OverlayToWebPageMode enum and
unread_chat_messages_changedcallback for Friends class - Added: new Input functions and callbacks
- Added: new Parental Settings fuctions, callback, and enums
- Added: new Remote Storage functions, callback, and enums
- Added: new UGC functions, callbacks, and enum
- Added: memory allocation corrections
- Changed: updated various Input class functions
- Changed: lots of argument names internally, has no effect on usage
- Fixed: some enum names
- Fixed: various server list filter functions in Matchmaking Servers class
- Fixed:
receivedRelayAuthTicket(),getGameCoordinatorServerLogin(),FindRelayAuthTicketForServer()in Networking Sockets class - Removed: second call for steam_api.h in godotsteam.cpp
Version 3.9.7
- Added: two Matchmaking Server call results
- Added:
requestHandle()to various HTTP functions so handle can be passed - Added: new internal variables for Matchmaking Servers
- Added:
setSyncPlatforms()in Remote Storage, actual function was missing - Changed:
serverRequest()is nowserverListRequest() - Changed: various HTTP callbacks now return cookieHandle as well
- Fixed: issue where lobby chat messages were truncated for every accented character used
- Fixed:
pingServer(),playerDetails(),serverRules()functions in Matchmaking Servers - Fixed:
receiveMessagesOnChannel(),receiveMessagesOnPollGroup(),receiveMessagesOnConnection()in Networking Sockets, should now return an array of messages - Fixed:
connectByIPAddress(),createSocketPair()in Networking Sockets - Fixed:
network_messages_session_requestcallback, now provides identity of remote host - Fixed:
network_connection_status_changedcallback, now provides the full connection information - Removed: unnecessary bool from
setLeaderboardDetailsMax()
Version 3.9.6
- Added: ability to provide different locations for custom modules, thanks to dsnopek
- Changed:
gamepad_text_input_dismissedto return submitted boolean and use UTF8 string, thanks to EIREXE
Version 3.9.5
- Added:
setLeaderboardDetailsMax()function back in to set the internal details variable - Fixed:
leaderboard_scores_downloadedsigal to provide the actual details for leaderboard results
Version 3.9.4
- Fixed: conversion issue in
getGlobalStatInt()andgetGlobalStatIntHistory()that caused compiling failure on Linux
Version 3.9.3
- Changed: restored
getGlobalStatInt()andgetGlobalStatIntHistory()functions
Version 3.9.2
- Added:
getNextMostAchievedAchievementInfo()function, moved out ofgetMostAchievedAchievementInfo() - Fixed:
getMostAchievedAchievementInfo()causing a crash
Version 3.9.1
- Added: documentation to P2P functions, constants, and signals; thanks to blaze-the-star
- Fixed:
destroyResult()andgetResultItemProperty()being bound to the wrong functions - Fixed: incorrect function bind from pull request
- Removed: unused C++ line from config.py for Mac, which caused compiling issues
- Removed:
storeStats()fromsetAchievement(),resetAllStats()as it should be called manually after them - Removed:
requestCurrentStats()fromstoreStats()as it should be called manually
Version 3.9
- Added: new UGC functions
addRequiredTagGroup(),getQueryUGCNumTags(),getQueryUGCTag(),getQueryUGCTagDisplayName() - Added: new Friends function
activateGameOverlayInviteDialogConnectString() - Added: default values to leaderboard functions, you can now pass handles for specific leaderboards or use the internally-stored, last-called handle
- Added: multiple controller types from Input function
getInputTypeForHandle() - Changed: minor readability to function arguments and defaults
- Changed: additional spacing and readability to overall module
- Changed: replaced leaderboardDetailsMax with k_cLeaderboardDetailsMax
- Changed: applied EIREXE's UTF-16 fix module-wide
- Changed: minor corrections to comments and added missing comments
- Changed: some additional code to some call results and callbacks
- Changed: metadata length for UGC to 5000 from 255, thanks to EIREXE
- Changed:
beginAuthSession()to use new auth function arguments - Changed:
cancelAuthTicket()to actually use the Steamworks function - Fixed: renamed
addItemToFavorite()toaddItemToFavorites()to match SDK - Fixed: incorrect class check in some UGC functions
- Fixed: minor corrections to various functions
- Fixed:
destroyResult()andgetResultItemProperty()being bound to the wrong functions - Removed:
setLeaderboardDetailsMax()as it is unnecessary - Removed:
getAuthSessionTicketID()as it is no longer useful due to auth function
Version 3.8.2
- Added: different avatar constants
- Changed: array deletions for Clang, thanks to SapphireMH
- Changed: initializing char text, thanks to SapphireMH
- Fixed:
createQueryUserUGCRequest()being commented out accidentally - Fixed: logic check for
setOverlayNotificationPosition(), thanks to SapphireMH - Fixed: UTF8 not being handled correctly in some UGC functions, thanks to EIREXE
Version 3.8.1
- Added: extra newline beween each class section for readability
- Added: new signal, steamworks_error, currently used for call results failures
- Changed: cleared most items from to-do list
- Changed:
getSyncPlatforms()now returns a dictionary with the bitwise and full name version of the platform - Changed: separated callbacks and call results in the godotsteam.cpp into two categories
Version 3.8
- Added: default argument to
steamInit()to pull all current stats or not, defaults to true so no one has to change anything - Added: new SteamNetworkingMessages class; with functions, callbacks, constants, and enums
- Added: all missing functions due to 5 argument limit in Godot
- Changed: filterText updated to match new SDK 1.50 function
- Changed: HTTP class
setCookie()tosetHTTPCookie()to prevent confusion with HTMLsetCookie() - Changed: moved
fileLoadDialogReponse()intohtml_file_open_dialogcallback as it must follow the call anyway - Fixed:
retrieveConnectionDetails()andgetAllLobbyData()functions - Fixed: (probably) various NetworkingSockets and NetworkingUtils functions
Version 3.7
- Added: Networking Sockets class - all functions, enums, structs, and callbacks (still beta in Steamworks)
- Added: Networking Utils class - all functions, enums, structs, and callbacks (still beta in Steamworks)
- Added: Game Search callbacks, enums, and functions
- Added: missing Steam Parties functions
- Changed: bIOFailure argument naming in godotsteam.cpp to ioFailure
- Fixed: issue where Cyrillic characters did not display correctly or at all
- Fixed: call result for
JoinParty(), was previously callback - Removed: mingw_patch.py since it fixes one issue but creates additional issues
Version 3.6.1
- Changed: function
getLobbyDataByIndex()togetAllLobbyData() - Changed: commented out
getAllLobbyData()until crash is fixed - Fixed: issue where not having the game installed or owning the game caused a crash
Version 3.6
- Added: newest functions for Apps, Friends, and UserStats
- Added: all functions and callbacks for Videos
- Added: MinGW patch file for people using MinGW, thanks to MichaelBelousov
- Added: all remaining Remote Storage, Utils, and Users functions and callbacks
- Changed: some User callbacks were actually call results
- Changed: moved callback code block to end of function block in godotsteam.cpp
- Fixed: incorrect signal link for
unsubscribe_itemandsubscribe_itemcallbacks
Version 3.5
- Added: all Music Remote functions, callbacks, enums, and constants
- Added: all Parties functions, callbacks, enums, and constants
- Added: placeholders for function classes not added yet
- Changed: minor tweaks to layout, comments, etc.
- Changed: swapped
getAuthSessionTicketID()andgetAuthSessionTicket()to make more sense - Changed: moved pragma into Windows if
- Fixed:
getAuthSessionTicket()to properly give buffer, thanks to EIREXE
Version 3.4.1
- Added: organization separators for all binds
- Changed: enums are now callable as constants in Godot
- Changed: case on enums
- Fixed: some mis-spelling in enums
Version 3.4
- Added:
getAuthSessionTicketID()to aquire additional ticket data - Added: additional pragma to silence offset warnings in Steamworks SDK itself
- Changed:
steamInit()status results to use internal enums - Changed:
getLeaderboardSortMethod()now returns a dictionary with result and verbal response - Changed:
getLeaderboardDisplayType()now returns a dictionary with result and verbal response - Changed:
getLeaderboardEntries()to have a default failure response - Changed:
leaderboard_scores_downloadedcallback now incorporatesgetDownloadLeaderboardEntry()to streamline process, callback returns the result array now - Changed: complete overhaul of enums and constants
- Changed: leaderboardDetailsMax default from 0 to 10
- Fixed: various void functions
- Fixed: casting for
addRequestLobbyListNumericalFilter(),addRequestLobbyListStringFilter(),addRequestLobbyListDistanceFilter() - Fixed:
setItemTags(), thanks to EIREXE - Fixed: missing publishedFileID in return from
GetQueryUGCResult() - Fixed:
getGlobalStatInt()andgetGlobalStatIntHistory() - Removed:
getLeaderboardHandle()as redundant - Removed:
getDownloadedLeaderboardEntry()as it should not be called manually, has been added toleaderboard_scores_downloadcallback
Version 3.3.2
- Added: all Inventory functions, callbacks, and enums
- Added: rule to suppress MSVC-only warning about strcpy
- Fixed: minor corrections to Inputs, especially those copied over from Controllers (deprecated)
- Fixed: tons of warnings for callbacks in Unix compiling
- Fixed: printf warnings for int
- Removed: unnecessary browserHandle argument from HTML functions
- Removed: unnecessary browserHandle returns from HTML callbacks
- Removed: unnecessary cookieHandle argument from HTTP functions
- Removed: unnecessary cookieHandle returns from HTTP callbacks
Version 3.3.1
- Added: all HTML Surface functions, callbacks, and enums
- Added: all HTTP functions, callbacks, and enums
- Changed:
sendRemotePlayTogetherInvite()now works since it was added back to the SDK - Fixed: (probably) output for
getLaunchCommandLine()
Version 3.3
- Added: all Steam Input functions; used to be Steam Controller
- Added: all Steam Input constants
- Added: new Apps functions
- Added: missing Friends functions
- Added: missing Screenshots functions
- Added: all missing Screenshot constants
- Changed: removed Steam Controller as it is now deprecated
- Changed: split up call results and callbacks in [godotsteam.h] for editing ease
- Changed:
user_stats_receivedtocurrent_stats_receivedforrequestCurrentStats()callback / signal - Changed: sorted Apps and Friends functions alphabetically like Steamworks Docs to find new functions easier
- Changed:
getAchievementIcon(); now returns the handle - Changed:
getInputTypeForHandle()to output verbose controller type - Changed: SteamInput function init to
inputInit() - Changed: SteamInput function shutdown to
inputShutdown() - Removed:
user_achievement_icon_fetchedsignal / callback as it is never called
Version 3.2.1
- Added: back some needed UGC constants
- Changed: int to uint32 in some for loops
- Fixed: compiling issues on Linux
Version 3.2.0
- Added: all remaining UGC functions and callbacks
- Added: all new Remote Play functions and callbacks
- Added: remaining UGC constants and enums
- Added: relevant Remote Storage callbacks for UGC
- Added: back some needed UGC constants
- Changed: renamed some UGC enums for consistency
- Changed:
getItemDownloadInfo()to give proper default return - Fixed: a few missing default returns
- Removed: non-listed UGC enums
Version 3.1
- Added: all remaining User Stats functions
- Added: missing User Stats constants, mostly leaderboard stuff
- Added: missing default return values in some functions
- Changed:
getAchievementAndUnlockTime()to return actual data - Changed:
user_achievement_icon_fetchedcallback to return icon data for parsing in-game - Changed: value in D_METHOD for
setLeaderboardDetailsMax()to match function - Changed:
getDownloadedLeaderboardEntry()to use handle correctly - Fixed: delete used memory in
getInstalledDepots()
Version 3.0.2
- Added: more verbose response to
steamInit(), now returns a dictionary - Added: missing initialization constants
- Changed:
steamInit()to give actual response on Steamworks status (from bool to int) - Fixed:
currentAppID()not utilized correctly
Version 3.0.1
- Added: MacOS C++ rule back in for compiling
- Added: all missing Steam Utils functions (except deprecated or non-relevant functions)
- Added: additional ENUMS for Steam Utils
- Added: missing failure conditions for some Steam Utils functions
- Changed: output for
getFriendGamePlayed()to show game information even if no valid lobby - Changed: order of previous Steam Utils functions to be alphabetical with new ones
- Changed:
gamepad_text_input_dismissedcallback - Fixed:
lobby_messagebug, thanks to Frostings
Version 3.0
- Added: missing Matchmaking signals-callbacks
- Added: missing User signals-callbacks
- Added: missing Utility signals-callbacks
- Added:
join_requested,screenshot_requestedcallback - Changed: merged Godot 3.0.6 into Master branch
- Changed: callback descriptions updated
- Changed: organization of cpp and h files for better readability
- Changed: signal
lobby_message_receivedtolobby_message - Changed:
server_connectandserver_disconnectedrenamed tosteam_server_connectandsteam_server_disconnectedrespectively - Changed:
leaderboard_loaded,leaderboard_uploaded, andleaderboard_entries_loadedrenamed toleaderboard_find_result,leaderboard_score_uploaded, andleaderboard_scores_downloadedrespectively - Changed:
workshop_item_created,workshop_item_installed, anditem_updatedrenamed toitem_created,item_installed, andworkshop_item_updatedrespectively - Changed: renamed workshop to UGC to match Steamworks
- Fixed:
addFavoriteGame()andgetItemInstallInfo()functions - Removed:
connection_changedsignal
Version 2.8.5
- Added: Networking functions, thanks to Antokolos
- Changed: linked against Steamworks 1.44
- Fixed:
leaderboard_uploadedalways returning false even when successful
Version 2.8.4
- Added:
persona_state_changecallback - Added: additional user statistics and achievement signals
- Added:
join_game_requestedsignal, thanks to Fischer96 - Changed: dictionary term 'ret' to 'success' in
getImageRGBA()andgetImageSize() - Changed: dictionary term 'buf' to 'buffer' in
getImageRGBA() - Changed:
getFriendAvatar()togetPlayerAvatar() - Changed:
avatar_loadednow sends back Steam ID of avatar, thanks to avencherus - Fixed: lots of fixes, thanks to marcelofg55
- Fixed: issue with avatar and Steam ID on Linux compile
- Fixed:
join_requestedsignal, thanks to Fischer96 - Fixed:
getImageRGBA() - Fixed:
getDownloadedLeaderboardEntry()returning wrong SteamID, thanks to marcelofg55 - Removed:
drawAvatar()
Version 2.8.3
- Added: additional user statistics and achievement signals
- Changed: minor notations
Version 2.8.2
- Fixed: Linux not compiling correctly with new Friends and Matchmaking updates
- Fixed: various Friends functions not providing correct data
Version 2.8.1
- Added: additional missing lobby signals
- Fixed: various lobby functions due to incorrect Steam lobby ID
- Fixed: some bind methods
- Fixed: config.py still using env
- Fixed: location of core Godot includes
Version 2.8.0
- Added: all remaining matchmaking functions
- Added: all remaining friend functions
- Changed:
getRecentPlayers()to include timestamp - Changed: naming of leaderboard_handle and leaderboard_entries for consistency
- Changed:
getAchievement()to dictionary, thanks to jandrewlong - Fixed: invite functions giving incorrect steam ids
- Fixed:
getInstalledDepots(),getDLCDownloadProgress(),getItemUpdateProgress(),getSubscribedItems() - Removed:
setGameInfo(),clearGameInfo(),inviteFriend()
Version 2.7.0
- Added:
getAchievementDisplayAttribute(),getAchievementName(),getAchievementIcon(),getImageRGBA(), andgetImageSize(), thanks to marcelofg55 - Added: all missing SteamApps functions
- Changed: NULL statements for achievement functions
- Changed: cleaned up and organized signal functions in godotteam.h
- Fixed: issue with dictionary formatting in a function
- Fixed: missing NULL statement
- Fixed: issue with getAchievement failing to compile
- Removed:
hasOtherApp()function
Version 2.6.0
- Added:
getCurrentBetaName(),addScreenshotToLibrary(), andsetLocation(), thanks to marcelofg55 - Added: Steam controller functionality, thanks to marcelofg55
- Added: more workshop functionality
- Changed: various small maintenance
Version 2.5.0
- Added:
getFileNameAndSize(),getQuota(),getSyncPlatforms()functions - Changed: small corrections with Steam ID variable
- Fixed: small things with
getQuota()
Version 2.4.1
- Added:
getNumAchievements(),getAchievementAchievedPercent(),requestGlobalAchievementPercentages()functions - Added: related signals to new functions
- Added: some notes
- Fixed:
leaderboard_updatesignal - Removed: deprecated function
requestAppProofOfPurchaseKey() - Removed: related callback to
requestAppProofOfPurchaseKey() - Removed: commented out deprecated functions
Version 2.4.0
- Added: more Screenshot features
- Added: notes for callback
- Fixed: types in
validate_auth_ticket_response
Version 2.3.0
- Added: implemented Auth Session functions, thanks to marcelofg55
Version 2.2.1
- Fixed:
getFileTimestamp()andgetSteamID()return types, thanks to marcelofg55
Version 2.2.0
- Added:
getNumberOfCurrentPlayers(), thanks to marcelofg55 - Added:
leaderboard_uploadedandnumber_of_current_playerscallbacks, thanks to marcelofg55
Version 2.1.1
- Fixed:
fileRead()andfileWrite(), thanks to marcelofg55
Version 2.1.0
- Added: two more functions for Remote Storage
- Changed: instances of int32 and int64 to int32_t and int64_t respectively; mostly for Linux compilation
- Removed: -no-pie from SCsub; now suggested for Ubuntu 16.10 and higher
Version 2.0.0
- Added: Remote Storage functionality for Steam Cloud, thanks to marcelofg55
- Added: new functions to documentation
- Changed: SCsub file to include "no-pie" fix for Ubuntu 16.10 and higher