[Bug] Running an application corrupts it. Steamworks won't connect.

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.
  • Reporting this here because bugbox is down.

    I have the latest stable version of Fusion 2.5 installed as well as the 2.5+ DLC and the Steamworks object.

    I've been experiencing an issue with Steam failing to connect. Here's what happens:

    1. I run the application (press F8).
    2. The app runs and connects to Steam successfully.
    3. Fusion marks the project as modified.
    4. I close the app and run it again (press F8).
    5. The app runs, but receives neither success nor failure connection events from the Steamworks object.
    6. I close the app.
    7. I close the project and it prompts me to save the changes. (Fusion made those changes as a result of running, which it doesn't do in older versions.)

    Scenario 1: Save the changes

    1. I click OK to save the changes. The project saves and closes.
    2. I re-open the project.
    3. I run the application (press F8).
    4. The app runs, but receives neither success nor failure connection events from the Steamworks object.

    Scenario 2: Don't save the changes

    1. I click Cancel to disregard the changes. The project closes without being saved.
    2. I re-open the project.
    3. I run the application (press F8).
    4. The app runs and connects to Steam successfully.
    5. Fusion marks the project as modified, and so on....
  • This looks like a buffer overrun either in Fusion or the Steamworks object. When adding the Steamworks object to a blank project, it barfs a long string of digits into the project's AboutBox Text property. Those digits aren’t nearly enough to explain the extra 41KB added to this MFA.

    Edited once, last by SteveTaylor (September 5, 2022 at 3:52 AM).

  • The long string in the AboutBox property is "normal", i.e. it's intented. I don't know why he did this, and I agree this is a bit weird, but it's done intentionally to store things (protection perhaps?). Fusion marks the project as modified the first time you run it certainly because of this (as the object modifies a property of the application).

    PS: on my machine when I save an empty app, it's 43 Kb in size. So the difference is only 17kb, which includes the internal data of the object, icon, events, etc. Not unusual.

    Can't reproduce your connection issue. I changed the app ID to use the one of our products and it connects everytime I run app. Maybe try re-installing the Steamworks object from the extension manager? And is Steam always running in the background?

  • Thanks for your reply, Yves.

    I suspect you tried to reproduce this from the Steam version of Fusion and couldn't. Can you please try with the standalone version? That's what I used and I'm fairly confident you'll be able to reproduce it. (A friend of mine tried with both and could only reproduce with standalone.)

    I found my copy of version 1 of the Steamworks object. It works correctly, but not on any project that's been touched by version 2. So I'm going to keep using version 1.

    Quote from Yves

    Maybe try re-installing the Steamworks object from the extension manager?

    Steamworks doesn't install from the extension manager, which is unfortunate. It has to be "bought" for $0 from the ClickStore. In fact, my troubles started when, for some reason, I thought I should re-install the Steamworks extension, which replaced version 1 with version 2.

    Edited once, last by SteveTaylor (September 5, 2022 at 8:24 AM).

  • No I didn't, I checked what version you had in your icons and tested with the stand-alone version, and it works fine.

    IIRC the changes between version 1 and 2 of this object were very safe.

    I'm having the same issue with connecting. It works for a while when I first create an example but then it starts not connecting. Try running it a few times then save it, then open and close it and run it again. It stops connecting and the App ID it is trying to connect to is 0.

    There is definitely an issue here

  • I'm happy to stick with version 1, but if I had access to the version 2 source, I'd be happy to find the problem (and prove that there is a problem) and fix it. I'll sign an NDA, CLA and whatever else needs to be signed to make it happen. Having said that, why not put it on GitHub?

  • Did you ever find a solution to Steamworks not always connecting? Sometimes it'll connect every time I test the application. But other times, it doesn't connect at all, no matter what I do.

    Edit: Changing the AppID then changing it back seemed to get it to connect to Steam again without any issue.

    Please login to see this link.

    Edited once, last by xhedgehogx (August 14, 2023 at 8:19 PM).

  • The long string in the AboutBox property is "normal", i.e. it's intented. I don't know why he did this, and I agree this is a bit weird, but it's done intentionally to store things (protection perhaps?). Fusion marks the project as modified the first time you run it certainly because of this (as the object modifies a property of the application).

    PS: on my machine when I save an empty app, it's 43 Kb in size. So the difference is only 17kb, which includes the internal data of the object, icon, events, etc. Not unusual.

    Can't reproduce your connection issue. I changed the app ID to use the one of our products and it connects everytime I run app. Maybe try re-installing the Steamworks object from the extension manager? And is Steam always running in the background?

    As this thread is bumped up so I put some study result here:
    To hook steam overlay, steam needs to be initialized before d3d, and which means you need to call the init routine when the dll is initialized.
    However, in that routine no object is created, so the infos in object properties is unreadable. To login during debugging, you need a file to save steam App ID in exe folder, or a redirected work folder. This extension will write it to temp folder, inside a folder named projectname_steam. So I guess the side increase is due to he saved those infos to About, which is wrote to exe and readable by windows API.
    Besides, this file shouldn't be included during releasing, so you should uncheck write App ID prop before submitting to steam. It's recommend to add check function to make sure app is launched by steam, but nowdays with unpacked exe drm wrapper won't break fusion apps so this routine is not that necessary.
    Other a bit modern platforms, like epic, can be initialize at anytime you like and let overlay works properly and don't need this trick.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!