Jump to content
McKay Development

Yeezy

Member
  • Posts

    19
  • Joined

  • Last visited

Posts posted by Yeezy

  1. I can't seem to get it to show, People say its only a thing on the Beta Branch of steam, havent checked that yet though.

    Tenfoot / 1024 is supposedly steam deck

     

    Other modes like Playing Together, VR are working though

    steamUser._send(SteamUser.EMsg.ClientChangeStatus, {
        persona_state: SteamUser.EPersonaState.Online,
        persona_state_flags: 2048 // VR mode
    });

     

     

    enum EPersonaStateFlag flags
    {
    	HasRichPresence = 1;
    	InJoinableGame = 2;
    	Golden = 4;
    	RemotePlayTogether = 8;
    
    	ClientTypeWeb = 256;
    	ClientTypeMobile = 512;
    	ClientTypeTenfoot = 1024;
    	ClientTypeVR = 2048;
    	LaunchTypeGamepad = 4096;
    	LaunchTypeCompatTool = 8192;
    };

    (https://github.com/SteamRE/SteamKit/blob/master/Resources/SteamLanguage/enums.steamd#L177C1-L190C3)

  2. On 11/13/2024 at 7:49 AM, Dr. McKay said:

    Sounds like you have some network issue.


    I let this script run on a new OVH VPS, so I don't think its a network issue.

    Couldn't ECONNRESET also be caused by the steam servers abruptly closing the connection while they are still doing their maintenance?
     

    The first econnreset it seemed to handle it fine and attempted the autoRelogin, but after it got the econreset from when it tried to reconnect it just exited I assume?

  3. On 11/8/2024 at 6:00 AM, Dr. McKay said:

    You can see exactly what's happening internally if you add a debug listener like so:

    user.on('debug', console.log)

     

     

    Got this today, during steam routine downtime:

    [2024-11-12T23:09:31.673Z] [W1] WebSocket disconnected with error: read ECONNRESET
    [2024-11-12T23:09:31.673Z] [W1] Handling connection close
    [2024-11-12T23:09:31.673Z] 3: NoConnection
    [2024-11-12T23:09:31.673Z] Disconnecting without sending logoff
    [2024-11-12T23:09:31.673Z] [W1] We wanted to end connection, but it's not connected or connecting
    [2024-11-12T23:09:31.673Z] [EBO] Queueing exponential backoff "logOn" with timeout 1000
    [2024-11-12T23:09:32.692Z] API GET request to https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v0001/?format=vdf&cellid=14: 200
    [2024-11-12T23:09:32.716Z] Randomly chose netfilter server 185.25.182.52:27017 (load = 28, wtd_load = 21.6530790328979492)
    [2024-11-12T23:09:32.716Z] [T31] Connecting to TCP CM: 185.25.182.52:27017
    [2024-11-12T23:09:33.717Z] [T31] TCP connection timed out
    [2024-11-12T23:09:33.717Z] [T31] Ending connection and removing all listeners
    [2024-11-12T23:09:33.717Z] [WebAPI] Using cached value for API_GET_https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v0001/
    [2024-11-12T23:09:33.719Z] Randomly chose websockets server ext1-par1.steamserver.net:27024 (load = 26, wtd_load = 20.9230833053588867)
    [2024-11-12T23:09:33.719Z] [W37] Connecting to WebSocket CM ext1-par1.steamserver.net:27024
    [2024-11-12T23:09:35.720Z] [W37] WS connection timed out
    [2024-11-12T23:09:35.720Z] [WebAPI] Using cached value for API_GET_https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v0001/
    [2024-11-12T23:09:35.721Z] Randomly chose websockets server ext1-par1.steamserver.net:27024 (load = 26, wtd_load = 20.9230833053588867)
    [2024-11-12T23:09:35.721Z] [W43] Connecting to WebSocket CM ext1-par1.steamserver.net:27024
    [2024-11-12T23:09:39.723Z] [W43] WS connection timed out
    [2024-11-12T23:09:39.723Z] [WebAPI] Using cached value for API_GET_https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v0001/
    [2024-11-12T23:09:39.725Z] Randomly chose websockets server ext1-par1.steamserver.net:27033 (load = 26, wtd_load = 23.2615313529968262)
    [2024-11-12T23:09:39.725Z] [W52] Connecting to WebSocket CM ext1-par1.steamserver.net:27033
    [2024-11-12T23:09:47.727Z] [W52] WS connection timed out
    [2024-11-12T23:09:47.727Z] [WebAPI] Using cached value for API_GET_https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v0001/
    [2024-11-12T23:09:47.728Z] Randomly chose websockets server ext1-par1.steamserver.net:27033 (load = 26, wtd_load = 23.2615313529968262)
    [2024-11-12T23:09:47.729Z] [W61] Connecting to WebSocket CM ext1-par1.steamserver.net:27033
    [2024-11-12T23:09:57.730Z] [W61] WS connection timed out
    [2024-11-12T23:09:57.731Z] [WebAPI] Using cached value for API_GET_https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v0001/
    [2024-11-12T23:09:57.733Z] Randomly chose netfilter server 185.25.182.52:27017 (load = 28, wtd_load = 21.6530790328979492)
    [2024-11-12T23:09:57.733Z] [T70] Connecting to TCP CM: 185.25.182.52:27017
    [2024-11-12T23:10:07.733Z] [T70] TCP connection timed out
    [2024-11-12T23:10:07.733Z] [T70] Ending connection and removing all listeners
    [2024-11-12T23:10:07.733Z] [WebAPI] Using cached value for API_GET_https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v0001/
    [2024-11-12T23:10:07.735Z] Randomly chose websockets server ext1-par1.steamserver.net:27019 (load = 27, wtd_load = 22.5226225852966309)
    [2024-11-12T23:10:07.735Z] Connecting to WebSocket CM ext1-par1.steamserver.net:27019
    [2024-11-12T23:10:17.737Z] [W79] WS connection timed out
    [2024-11-12T23:10:17.737Z] [WebAPI] Using cached value for API_GET_https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v0001/
    [2024-11-12T23:10:17.738Z] Randomly chose websockets server ext1-par1.steamserver.net:27019 (load = 27, wtd_load = 22.5226225852966309)
    [2024-11-12T23:10:17.738Z] [W88] Connecting to WebSocket CM ext1-par1.steamserver.net:27019
    [2024-11-12T23:10:18.798Z] [W88] WebSocket disconnected with error: read ECONNRESET
    [2024-11-12T23:10:18.799Z] [W88] Handling connection close
    [2024-11-12T23:10:19.799Z] [WebAPI] Using cached value for API_GET_https://api.steampowered.com/ISteamDirectory/GetCMListForConnect/v0001/

     

    After 23:10 it did not do anything for 2 hours, so I just ended the process.
     

     

     

  4. 12 hours ago, TheMaster said:

    If u are Using that many profiles on the same Ip Ofc u wil get ratelimited i suggest using proxies in the constructors of the steam user and community

    I don’t think so, since no errors like RateLimitExceeded or Denied are being thrown. I don’t appear to be IP blocked, as I can restart all of them manually after steam downtime. They just fail to reconnect automatically for some reason and are not throwing any errors.

     

    Just wanna see if I can find out whats causing this

  5. You think im being rate limited with 50 profiles when steam goes down and they all try to reconnect?

     

    image.png.9f9373922964c9de05e3b37d39897ef3.png

     

    Last error received was: 3: NoConnection (steam went down)
    and after that nothing, but they also didn't automatically reconnect after steam went back up. I'd assume if it was being rate limited it would throw 84 RateLimitExceeded?

     

    Any thoughts on how I could debug this issue?


     

  6. 2 hours ago, Dr. McKay said:

    Are you sure it's fatal and crashing the process? Looks to me like you're handling the error event as expected, not reconnecting, and the process exits as it should since there's nothing more on the event loop.

    autoReconnect does not apply for disconnects which emit the error event. In those cases, you're responsible for reconnecting manually.

    I could implement my own check for a disconnect,

    But lets say say api.steampowered.com goes down and is unreachable, shouldn't autoRelogin keep the process in idle/try to reconnect? (instead of throwing the error event)

     

  7. On 10/25/2024 at 8:48 AM, Dr. McKay said:

    I'm not aware of autoRelogin being broken in any way.

    Web sessions are completely independent of CM connections. When steam-user is "connected", that's a CM session. A web session is negotiated through the CM session, but they're entirely separate. Web sessions are never automatically renewed by steam-user; that responsibility falls onto you.


    Didn't mean to hijack this thread, but is this intended? (not the websession)
    enotfound seems to be fatal and exiting the whole process

    let client = new SteamUser({
        autoRelogin: true, // default
        dataDirectory: './data/'
    });
    
    client.logOn({
        accountName: '',
        password: ''
    });
    
    client.on('loggedOn', (details) => {
    	console.log('Logged into Steam as ' + client.steamID.getSteam3RenderedID());
    	client.setPersona(SteamUser.EPersonaState.Online);
    	client.gamesPlayed(7);
    });
    
    client.on('disconnected', (err, message) => {
        console.log(`${err} - ${message}`);
    })
    
    client.on('error', (e) => {
    	console.log(e);
    });

    image.png.c6dedf2694492916e650e2c7a4aa87a8.png

  8. Hey, Just wondering if anyone managed to replicate or set the "status" rp key using node-steam, just like FiveM seems to do on sourcemod, not sure if this is possible either currently with node-steam

    https://partner.steamgames.com/doc/api/ISteamFriends#SetRichPresence

    image.thumb.png.2eaf665fff9db58caa8df50cf7f87525.png

     

    https://github.com/citizenfx/fivem/blob/88a0a6c5490f98c31ffdd56b565ac2f21fdfe523/code/components/steam/src/SteamComponent.cpp#L639

    image.thumb.png.6f2ec89b956c94dc48264864ed9c5fb7.png

     

     

    // doesn't work
    client.setPersona(SteamUser.EPersonaState.Online)
    client.gamesPlayed(218) // Source Mod 2007
    client.uploadRichPresence(218, { "status": "FiveM?"})
    
    // works but not what I'm trying to achieve
    client.setPersona(SteamUser.EPersonaState.Online)
    client.gamesPlayed(440) // TF2
    client.uploadRichPresence(440, {
      "steam_display": "#tf_richpresence_display",
      "state": "PlayingGeneric",
      "currentmap": "FiveM?"
    })

     

     

  9. When calling the method logOff(), it automatically reconnects,

    Possibly something wrong with line 53 in connection.js?

    since it believes its not loggingOff it will reconnect automatically when autoRelogin is enabled even though it was called from the logOff method.
    as for a quick dev test, forcing this value to true instead of false seems to fix it but ofc will break it when it tries to reconnect if it goes down due to steam downtime
    image.thumb.png.1b7c77be3883a86b3037159ddb8f2bbb.png


     

  10. 4.28.4 still leaked memory unfortunately.

     

    Running a test currently with the following handlers disabled:

    EMsg.ClientPersonaState
    EMsg.ClientClanState
    EMsg.ClientFriendsList

    It's been looking good so far no memory leak yet (running for 4+ days now)
     

     

  11. I don't have a snapshot from when the server was initialized but I have one from a server that was started at the exact same time and has the same amount of steamUser instances on it.

    If there's anything specific you'd like me to try and/or look at please let me know.

     

    no leak:

    Screenshot2023-05-23at12_41_40.thumb.png.24fdad189eeaba05540e2fa4482014ac.png

    Screenshot2023-05-23at12_41_48.thumb.png.a21f035194750deee6dffb4d93aeed36.png

     

    leaked:

    Screenshot2023-05-23at12_41_00.thumb.png.3998c27e88d3713f4e0bba1e05249129.png

    Screenshot2023-05-23at12_41_33.thumb.png.e69e019a3ca0cd3e2892818b2f2b106e.png

  12. 14 hours ago, Dr. McKay said:

    Between your two screenshots, it kinda looks to me like g_ProcessPersonaSemaphore is somehow hanging at some point. The semaphore is backed by a linked list, and I see a lot of prev pointers in your OP screenshot. I don't really see why it would hang though, all code paths end in releasing the lock. That would also cause SteamID objects to pile up, as you're seeing in your heap snapshot.

    In any case, try 4.28.4 and see if that fixes things for you.

    Thank you, I'll try the update and let you know

  13. There's a possible memory leak in comps/friends.js or comps/familysharing.js
    (edit: I could be wrong about where the leak is)
    (please check my attached image)

    The issue is rare and I'm unable to actively reproduce it yet, However it happens every 7 to 14 days after the App has been running for a while with 150~ instances of steamUser. (no memory leak until it happens)

     I will update this thread as I find more useful details to go on.

     

    the only part of my code which interacts with the steamUserFriends

        steamUser.chat.on('friendMessage', async (message) => {
            if (config.autoReply) {
                if (!client.autoReplyRecipients.includes(message.steamid_friend.getSteamID64())) {
                    client.autoReplyRecipients.push(message.steamid_friend.getSteamID64())
                    steamUser.chat.sendFriendMessage(message.steamid_friend, config.autoReply)
                    setTimeout((removeSteamId) => {
                        client.autoReplyRecipients = client.autoReplyRecipients.filter(steamId => steamId !== removeSteamId)
                    }, 60000, message.steamid_friend.getSteamID64())
                }
            }
        })
    
        steamUser.on('friendRelationship', (sid, relationship) => {
            if (config.autoFriend && relationship == SteamUser.EFriendRelationship.RequestRecipient) {
                steamUser.addFriend(sid)
            }
        })

     

    image.png

×
×
  • Create New...