Steam Workshop Questions

I am considering providing an option for the NWN Installer Tool (NIT) to manage Steam’s Workshop Content, but need to understand more about how it works.

Steam does not seem to copy workshop content to its own folders or the User folder (Documents\Neverwinter Nights). Does this mean that Steam only adds workshop content at run time and removes it when NWN is closed or does it add a third source of files (ie the Workshop folder)?

Does anyone have any additional information that could help in my endeavour?

My thoughts are for NIT to copy Workshop content to NIT’s mod store and allow users to install or uninstall the Workshop Mods. Steam’s content would remain unchanged. This means that NIT can be used to specify different User Folders for each defined Profile. It also means that NWN would be started directly instead of needing to use Steam to launch the game.

Personally, I use Beamdog’s client to download content. However, it seems that Beamdog are launching new content on Steam and not its own platform. This feature could allow Steam subscriptions to be used with Beamdog’s implementation.

Finally, do you think this would be a useful feature or is it a waste of time?

As it happens, Steam does copy workshop content to its own folders.

According to one article, for Windows the location is, at its most general, (directory where you installed Steam)\steamapps\workshop(string of numbers representing your account)\704450

At any rate, within the 704450 folder is one cryptically-numbered folder per workshop items, with subfolders named in the same way as Documents.

These folders are populated after the player subscribes to the workshop item, at some random time in the future when the player plays NWN with the Steam client active (not necessarily the next session).

After that, the folders remain populated - the Steam client can be disabled. NWN can then be played offline - the workshop content still appears.

However, I’ve seen many reports that, for reasons unknown, NWN sometimes behaves as though workshop content is missing, whether connected to Steam or not. The sovereign remedy for this is to move the files from the Steam folders to the corresponding sub-folders in Documents. Perhaps NIT could mechanise that - though if the workshop functioned correctly, there would be no need for an installer.

One caveat - I haven’t seen the precise rules for loading workshop content. In Documents, there is just one of each folder - modules, hak, override etc. In principle, every workshop item can have its own version of those folders. Somehow, both Documents and Steam are merged at runtime. For example, a module which is a workshop item can load haks from Documents, its own hak folder, and the hak folders of Required Items. I’m not sure what prevails if there are duplicate file names. Presumably, the game also pools all the override folders, from Documents, and from every workshop item, whether Required Item or not, but again I’m not sure which takes priority.

Thanks for the information @Proleric.

I am aware of the numbered folders containing the workshop files. As you mentioned, how steam combines Documents and Workshop items at run time is still a mystery.

Do you know whether the numbers given to each workshop folder are always the same or could be different for each user?

My thinking about using NIT for this is twofold…

  1. Allow Steam users to access NWN directly without loading Steam in order to play.
  2. Allow Non-Steam EE users to subscribe to Mods via Steam and use the Workshop items when playing. This accommodates using Mods that are only available via Steam subscriptions.

I don’t know whether the numbers are unique. On my system, CEP is 1312882397 - maybe other people can confirm whether they have the same.

Incidentally, the path to my Steam Workshop folder is c:\Program Files (x86)\Steam\steamapps\workshop\content\704450, which is not quite what the other author said.

As I understand it, (1) is already possible, but (2) could be useful.

Same path as Prolific says for my iMac, except the next folder after 704450 is 1463124598 which contains an override folder with the most files in it. .

I was hoping maybe someone who has CEP could confirm whether the number of their CEP folder is the same as mine.

@jimdad55 I guess you’re not subscribed to the Steam Workshop Item for CEP?

No, sorry. I downloaded it from the Vault. If you need me to subscribe to it on Steam I suppose I could do that then delete it ?

@jimdad55 That would be helpful.

Above path and in folder 1312882397.

This is the same on mine. So it does seem that the numbers are consistent, although if I do proceed with the NIT changes, I am not sure whether I would rely on this.

Presumably, if started directly, the Workshop content is not available. Am I correct in this assumption or does it still give access to the content?

Both NWN and subscribed Workshop content continue to work when the Steam client is not running.

The Steam client is only necessary to install NWN itself, upload Workshop content, or download subscribed Items.

Caveat - no one seems to know why material in the Steam folders can stop working after a while. As I understand it, this problem seems to happen even if the Steam client is running, but I don’t have first hand experience to verify that.

Thanks for this information.

Seems to me that I could allow NIT to start Steam’s EE directly so that Steam does not have to be loaded. This would allow NIT users to use different user folders (Documents\Neverwinter Nights). I will need to test whether changing the user folder (using a parameter on the start line) still gives access to subscribed content.

Also, if the Workshop content is included with direct execution of EE, makes me wonder what happens if the same content is also available in the Documents folder (ie which version wins). Another consideration is if the content stops working and is also in Documents, would it work or not?

Now I need to decide whether to actually implement the changes I discussed or simply rely on manually copying desired Workshop content to NIT if Steam is not being used to play the game (eg Beamdog’s executable being used).

From what you have said, it would be worth providing an option for NIT users to bypass Steam when starting EE (because, from what you have said, it not required at all to access Workshop content).

As always, very much appreciative of your feedback and welcome any additional insight or wisdom you care to share.

You’re welcome.

No one seems to know which file takes priority if there are versions in Documents and one or more Steam folders. Also, if the files are containers like .mod or .hak, whether one container prevails, or whether the resolution is at game file level.

It does seem however that if the Steam version won’t load, a copy in Documents still works, even if the Steam copy still exists.

Thanks for your feedback.

I just ran a test.

If I start EE from Steam, all workshop content is available when I select New, Other.

If I navigate to D:\SteamLibrary\steamapps\common\Neverwinter Nights\bin\win32 and start nwmain.exe, workshop content is not available.

Possibly, when you ran the same test, your User Files in Documents contained the same Mods so you did not see any difference.

My conclusion is that when EE is started without Steam, workshop content is no longer available. If this is correct, it also means that there are no questions about “winning” files when started directly - everything works in the same way that Beamdog’s EE executable works.

To me this makes more sense, because there workshop content “magic” only manifests when Steam is running.

You’re right.

I repeated the tests I did a few months ago. What I had missed was that the shortcut to the Steam version of NWN starts the Steam client by stealth.

This probably explains the “disappearing” workshop content people have complained about. The content is still in the Steam folders, but doesn’t appear if you start the Steam version of NWN by running the .exe.

The conflict issue still remains when Steam is running, of course.

My plan is to provide a preference setting. When enabled, NIT will manage workshop content and start NWN directly, which will avoid any conflicts.

Non-Steam users that have Steam but do not use it, will be able to use NIT to access workshop content (particularly workshop items that are only available for Steam users).

In both cases, users will need to use Steam to keep subscriptions up to date. NIT will detect any updates and keep the NIT workshop content in sync.

My initial tests have been positive and I plan to proceed with this implementation - unless you have any other thoughts that should deter me from proceeding.

1 Like