C# - "unable to find an entry named 'SteamAPI_Init' in DLL 'steam_api64' " despite having both

Godot Version

4.3 C#

Question

i downloaded Facepunch Steamworks C# to godot, it does not includes steamapi64.dll so i downloaded the steamworks to get the api. both are in the res:// directory, meaning its on top level directory yet i get the title error, have anyone got Steam godot c# working? if so, can someone give a proper steamworks for godot?
image

Facepunch.Steamworks and Steamworks.NET both don’t work that well with Godot. One of them is pretty outdated and the other one doesn’t work correctly with NativeAOT.

The easiest solution is GodotSteam. Install it normally, as GDExtension for example. Afterwards you can use the C# bindings for it. You still might have to add a steam_appid.txt to your project root, but other than that the addon should take care of everything else, including copying the required API DLL files into the correct folder on export.

If you still want to use the Facepunch version, try placing the steam_api64.dll next to your Godot editor executable and make sure that the native library is compatible with the managed C# bindings. That should only work on Windows though.

2 Likes

hello, thanks for the response. I was using godotSteam with the binding but i decided to switch to facepunch due to being easier to follow tutorials about it. specially that i could not find “SteamMultiplayerPeer” in the GodotSteam version (if someone knows whats the equivalent name for this version and could say it here) - however i will switch back to GodotSteam because i wont have problems with the load and it is more compatible with godot anyways.

i also did put the dll in the executable managed directory as you said but im not able to get the “using steamworks” to appear. GodotSteam seems easier although need to know the different equivalent methods names

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.