Repository navigation
Catch up to upstream + fix P2P multi-process Steam-ID routing - #2
Merged
Merged
Conversation
Update to SDK 1.63
DisOvlAchProg=true by default
Update example settings (disable_achievement_progress=1)
Revert breaking changes to the P2P networking
Re-add some qol lobby connect stuff
Lobby-Connect fix & qol
Restore `account_avatar_default`
Read per-app proof of purchase keys from steam_settings/purchased_keys.txt using the format: AppId=KEY (e.g. 480=AAAAA-BBBBB-CCCCC-DDDDD). - Add purchased_keys map, setter and getter to Settings - Add parse_purchased_keys() parser in settings_parser.cpp - Wire key lookup into RequestAppProofOfPurchaseKey, RequestAppProofOfPurchaseKey_OLD, and RequestAllProofOfPurchaseKeys - Owned apps without an entry still get the default placeholder key - Remove TODO comments from FillProofOfPurchaseKey
Add purchased_keys.txt support
…type Handle numeric achievement progress
Add more tools in README.md
Fire Steam2 deny callback for denied Steam2 auth requests
…y_general_config The Achievement_Notification_Delay setting is already parsed in load_overlay_appearance() (reading from [overlay::appearance] section using std::stof for proper float handling). The duplicate block in parse_overlay_general_config() used GetLongValue which truncates decimal values and read from the wrong INI section. Resolves review feedback from universal963 on PR Detanup01#522.
…kFix ManualDispatch Callback Fix
Achievement Notification Queue with Configurable Delay
1. std::localtime thread safety — replaced with localtime_s using caller-provided stack buffer. Eliminates redundant second call by reusing the same struct tm for both strftime calls. 2. Redundant try_load_ach_icon calls — changed from dual call (both colored and gray icons every frame) to single call matching the current achievement state. The other variant is loaded by the background pagination system or on state change via the notification path.
Notification history
Split achievement list into unlocked/locked sections
Update detours, simpleini, utfcpp, stb resize2
Update library
The code has been updated to address incomplete translations.
The missing translations have been added, and a Turkish translation has been provided.
The locations where the SmallButton was used are not suitable for a button of this size. Therefore, it was replaced with a full-size button.
I shrunk the wrong thing...
Integrating New Buttons Added to the Overlay into the Translation File and Translating the New Buttons into Turkish
Update Simplified Chinese translations
Keeps splitux tweaks: self-hosted-runner CI + auto_accept_p2p config layer. Resolutions: - .github/workflows/*: keep splitux CI (self-hosted runner setup) - dll/dll/settings.h: keep auto_accept_p2p_sessions_* fields; drop old_p2p_behavior (removed upstream) - dll/p2p_manager.cpp: accept upstream deletion (old-P2P refactor); auto_accept consumer to be re-homed - settings.cpp / settings_parser.cpp: auto-merged (auto_accept parsing/storage intact) Brings in upstream GetConnectionInfo001 (SteamNetConnectionInfo001_t) impl + matchmaking fixes needed for UE5 SteamSockets P2P (Satisfactory co-op).
…eam ID SteamNetworkingSockets P2P broke when multiple local processes share one Steam account (e.g. a bootstrap launcher exe + the shipping game exe both loading steam_api64, as Satisfactory does). CONNECTION_ACCEPTED and DATA are addressed by destination Steam ID and routed via find_connection(), which returns only the FIRST matching connection — so the reply landed on the wrong process (no socket, silently dropped) and the process that called ConnectP2P never reached Connected -> 120s ConnectionTimedOut. Add Networking::sendToAllWithID() which delivers to EVERY connection holding the dest Steam ID; the process owning the socket handles it, the rest drop it on socket lookup. Route all four P2P paths through it (REQUEST/ACCEPTED in send_packet_new_connection, CONNECTION_END in CloseConnection, DATA in both SendMessageToConnection overloads). Verified: Satisfactory two-instance Steam co-op now connects end-to-end (Welcomed by server, data flowing, joiner loads host world).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings the fork current with upstream
Detanup01/gbe_fork(~209 commits) while keeping splitux tweaks (self-hosted-runner CI + auto_accept_p2p config layer), and fixes a real SteamNetworkingSockets P2P regression.P2P fix (the headline)
When multiple local processes share one Steam account (a bootstrap launcher exe + the shipping game exe both loading steam_api64 — exactly what Satisfactory does),
CONNECTION_ACCEPTED/DATAwere routed by destination Steam ID viafind_connection()(first match only), landing on the wrong process. The process that calledConnectP2Pnever reached Connected, causing a 120s timeout.New
Networking::sendToAllWithID()delivers to every connection holding the dest Steam ID; the socket owner handles it, others drop it. All four P2P send paths routed through it.Verified: Satisfactory two-instance Steam co-op connects end-to-end (Welcomed by server, data flowing, joiner loads host world). Benefits any P2P game with a launcher+game or multiple local instances.
Orphan branches
Fast-forwarded
third-party/{common,deps}/win+deps/commonto upstream (premake beta8, SDL3 sources) — required for the merged tree to build.