GDExtension
A history of all changes to the gdextension branch.
Version 4.11
- Added:
getDLCData
to get all DLC information andgetDLCDataByIndex
now acts as Steam intended with an index passed - Added: properties for all variants GodotSteam stores
- Changed: using Godot's macros for error reporting back to the editor
- Changed: buffer_size argument to
decompressVoice
with default of original value - Changed:
steamworksError
replaced with prints to editor - Changed: all options array parameters for all Sockets class functions changed to dictionaries, check class docs
- Changed: deprecated
getAvailableVoice
, merged functionality intogetVoice
- Changed:
setLeaderboardDetailsMax
changed to the set/get for leaderboard_details_max, nowset_leaderboard_details_max
- Changed: Steam singleton now removed during uninitialization
- Fixed: proper type for
network_connection_status_changed
, thanks to stickyShift - Fixed:
getResultItemProperty
now takes empty string to send all property list, thanks to Stralor - Fixed: missing return value hints from
lobby_data_update
- Fixed:
get_app_dependencies_result
now passed back app_ids array - Fixed: missing argument hints for
item_installed
callback - Fixed: both global stat history functions -
getGlobalStatIntHistory
andgetGlobalStatFloatHistory
- Fixed: broken returned variable in
network_connection_status_changed
- Fixed: a variety of small tweaks
- Removed: duplicate call on setting embedded callbacks
Version 4.10
- Changed: now using Steam Flat API, should allow compiling with MinGW
- Changed: updated in-editor docs
Version 4.9.1
- Fixed: fixed typo in RESULT_ADMINISTRATOR_OK, thanks to sepTN
- Fixed: fixed a variety of types and code corrections, thanks to bobsayhilol
Version 4.9
- Added: missing
user_achievement_icon_fetched
callback - 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_failed
callback now returns the Steam ID associated with the user whose session failed - Changed:
global_stats_received
had 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_installed
signal now returns additional data - legacy_content and manifest_id - Fixed: incorrect signal name for
inventory_definition_update
, thanks to Foxushka
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
, 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 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 callbackconnected_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
initem_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()
, andexchangeItems()
, 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()
andsteamInitEx()
to set your app ID and run_callbacks interally, thanks to GreenFox - 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 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()
, andreceiveMessagesOnConnection()
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 function
setItemTags()
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 andequipped_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()
, andgetQueryUGCContentDescriptors()
- 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