Steam Workshop How-To
<!--sizeo:6--><span style="font-size:24pt;line-height:100%"><!--/sizeo--><b>Important Information Regarding Build 210</b><!--sizec--></span><!--/sizec-->
<i>Build 210 recently went out, and of course, it seems like there's a problem hosting games that use workshop mods. At the very least, I'm having problems getting them to work on ns2servers.com servers. It seems as though it's a problem with the build, although I can't seem to reproduce the problem locally when running server. If you encounter this problem on your own server, please let me know what it printed to std out -- it should print information about each mod when it begins and finishes updating and then the server should start up as normal. If there are problems, the only current "workaround" is to not use workshop mods (sorry, guys, this build was supposed to make things a lot easier for servers, not break them). If everything works for you without problems, let me know. Hopefully this is an isolated occurrence.
<b>Update:</b> The underlying problem is that the downloading of workshop mods requires Steam, so people just using the hldsupdatetool can't possibly retrieve the workshop files. I'm going to try to get in touch with Valve and see if something can be done with hldsupdatetool to accommodate workshop mods (but that would almost certainly take at least a little bit of time, pending they even decide to support it), otherwise, I'm going to see if we can get build 211 out a little sooner than planned so that I can at least restore the ability to copy mods manually for now in the case where no Steam is available. Sorry, guys!</i>
------------------------------------
Hey guys,
A quick introduction before getting started as this is my first post on the forums -- I'm Matt, I've been adding in the Steam Workshop support to NS2. Some of you know me as "That Turkey Story" in-game on lerkmore/on steam/on SA.
This post is targeted both towards those of you making levels/mods and those of you that are running servers. I'll be keeping this thread updated each release as features get put in, so check back if you are curious as to the state of workshop support. Feel free to post any questions/suggestions in here as well, as I'll check the thread once or twice a day. Also, keep in mind that most of this work hasn't been rigorously tested yet, so you may run into a bug or two. If you do, please report it. If you're just curious as to what's new in this release, scroll down to the bottom of this post for the changes in the latest build.
<!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><b>How-To For Mod/Level Developers</b><!--sizec--></span><!--/sizec-->
<i>If you have made any levels for NS2, try to get them published as soon as possible via Launch Pad and let me know of any problems.</i>
__
This thread is about publishing mods. If you are curious how to actually <i>make</i> a level, see <a href="http://www.unknownworlds.com/ns2/forums/index.php?showtopic=115728" target="_blank">this thread</a>.
The first thing new that you'll notice when creating a mod in Launch Pad is that you are presented with a drop-down menu for "Mod Kind." Currently, the only mod kind able to be published is "Level" though the rest will be supported in future releases. I'll fill in the list below as features get implemented detailing a little bit about how they are used and what their requirements are.
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b>Mod Kinds</b><!--sizec--></span><!--/sizec-->
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Level</b><!--sizec--></span><!--/sizec-->
<b><i>Use:</i></b>
Mods that are associated with a single NS2 level.
<b><i>Requirements:</i></b>
Exactly one ".level" file in the maps sub-directory of the mod's directory. The mod must also include all necessary dependencies. In other words, if your map is "ns2_foobar.level" and you create your mod in "C:\ns2_foobar_mod\" then the .level file should be "C:\ns2_foobar_mod\maps\ns2_foobar.level", the overview should go in "C:\ns2_foobar_mod\maps\overviews\". Similarly, materials go in "C:\ns2_foobar_mod\materials\", etc. For those of you who have already developed levels, the file structure is the same as if you were to have these files in the game's ns2 directory.
<b><i>Additional Notes:</i></b>
A couple of people have already asked about this, so I will make it clear: Between publishes you currently are able to change the name of your level (in other words you can publish with a level called "ns2_foobar_beta1.level", then on the next publish in the same mod change the level name to "ns2_foobar_beta2.level"). However, you should <i>never</i> do this, and in the next release I'll probably make it an error during publishing if you do so. The reason why is the following:
--
<b>Mod Developer</b>: publishes ns2_level_beta1.level
<b>Server</b>: subscribes to the level, which downloads the mod
<b>Server</b>: adds ns2_level_beta1.level to the map rotation. everything works fine!
<b>Mod Developer</b>: publishes an update but changes the name of the level to ns2_level_beta2.level
<b>Server</b>: automatically gets the update, but does not know to change the name of the level to "ns2_level_beta2.level" in his map rotation
<b>Server</b>: tries to load "ns2_level_beta1.level", but fails because it no longer exists (the level is now called ns2_level_beta2.level)
--
So, rather than changing the name of your level, keep it the same between releases to avoid problems when servers update the level. If you <i>really</i> want to change the name of your level, I recommend just publishing the level as an entirely new mod. The only drawback to this is that people running servers will have to find your newly-named mod again on steam in order to download it.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Game</b><!--sizec--></span><!--/sizec-->
<i>future release</i>
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Gameplay</b><!--sizec--></span><!--/sizec-->
<i>future release</i>
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Cosmetic</b><!--sizec--></span><!--/sizec-->
<i>future release</i>
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Server-Side</b><!--sizec--></span><!--/sizec-->
<i>future release</i>
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b>Publisher</b><!--sizec--></span><!--/sizec-->
Once a mod is created and selected, it may be published via the "Publisher" button:
<img src="http://i.imgur.com/eFw3N.png" border="0" class="linked-image" />
This should be pretty self-explanatory, so I won't go into too much detail. The tags are greyed out because they are automatically deduced and updated from the file structure. "Save Locally" saves changes to your computer without publishing. I think this goes without saying, but be careful with "Unpublish". There is a confirmation dialog if you click it, but you can't undo an unpublish once you go through with it. Keep in mind that if you unpublish a mod and then republish it, it will have a new ID, meaning that anyone who was subscribed to your mod will no longer receive updates.
Once you publish your mod, it should be visible in the steam workshop for people to view and subscribe to. It will then be downloaded and updated when necessary upon each game launch.
Finally, please do not publish levels that aren't your own, even if you give credit.
<!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><b>How-To For Dedicated Servers</b><!--sizec--></span><!--/sizec-->
Mod support is not yet user-friendly for servers, but if you want to be one of the cool kids running custom maps that people download automatically when joining, continue reading. Once you get things up and running, any mods you specify will automatically be updated every time you run your server. The first thing you'll need to do is decide what mods your server will be using and add the ID of those mods to your server's config. Before detailing how to do that, if you don't feel like looking through the workshop for worthwhile mods, ScardyBob has taken the time to look up the IDs of good, working levels (thanks, ScardyBob!):
ns2_triad_beta2 = 74384218
ns2_kleos = 74499435
ns2_goliath = 75900465
ns2_turtle = 75943673
ns2_eclipse = 75856420
I'll explain what to do with those IDs shortly.
If you want to look up mods on your own, open up Steam, click "Community", then click "Workshop", then selection "Natural Selection 2" from the pull-down menu. Here you will see a list of mods for Natural Selection 2. Note that the way Valve lists mods is somewhat misleading. The default view will <i>not</i> show all of the mods that are available. Try the different sorting options (I.E. sort by most recent) to potentially see more mods. Once you've located a mod that you'd like to use on your server, click on it. Now here's the hairy part (it will be simpler in future releases): you're going to need to copy down the ID of the mod manually and add that ID to your server's configuration. To get the mod's ID, right click somewhere in the blank area of that particular mod's page and click "copy page url". Then, paste the url somewhere and copy the number that immediately follows "id=" part of the url. Do this for each mod you wish to use on your server (make sure you keep track of which mod corresponds to which ID).
Now you'll need to add the those IDs to your server's configuration. You can do this by either updating your server's xml file, or by specifying mods via the command-line. If you choose to add them to your xml file, it's a simple matter of adding:
<i><mods>space separated mod ids</mods></i>
You can have as many mods as you want, just make sure that they all appear in a single "mods" tag and that that tag is nested in "options". Once you do that, any levels that are a part of the mods may be added as a part of the map rotation.
You can also use the command-line to specify which mods are active on the server -- there are 3 different ways to do this. First, you may pass:
<i>-mods "space separated mod ids"</i>
to specify an exact list of mods to be active (the server will use this list instead of whatever mods are in the xml file, if any).
You may also specify an altered list of mods from the ones specified in the configuration file via:
<i>-removemods "space separated mod ids"
-addmods "space separated mod ids"</i>
This will use the set of mods in the configuration file but will disregard any mods specified via -removemods, and add in any mods explicitly specified via "-addmods".
In future releases you won't have to manually grab the ID, but we figured it would be best for you guys to be able to start testing out the feature as soon as possible. Note that there is no need to subscribe to the mod unless you wish to test that mod locally before using it on your server. The mod will automatically downloaded by clients when they connect to your server.
<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo--><b>Caveat</b><!--sizec--></span><!--/sizec-->
Your server will <i>only</i> update mods when it is started. This means that if someone updates their Workshop level while your server is running, your server will now be out of date! Because of this fact, consider the following:
1) The server is set up to use the mod that has the level "ns2_foobar.level"
2) The server is started and the level is updated
3) The creator of "ns2_foobar.level" updates his level
4) The server loads the map "ns2_foobar.level" (which is now an old version of the map)
5) A player attempts to join the server and is notified of the mod associated with the level
6) The player's game automatically downloads/updates the level from the Steam Workshop
7) The player now has a newer version of the map than the server and so he will be disconnected from the server
So, you will have to make sure that you restart your server on occasion such that everything is up-to-date. It is possible that in future releases mods being used will be updated upon level change so that no restart of the server is ever necessary, but that is not currently the state of things.
That's it for now. Again, I'll be keeping this post updated, so check back to see what's changed. I'll be updating this post shortly before each release so you guys can get new things up and running as soon as quickly as possible.
If you've read the entire post up to this point, there's no reason to read the following as it just clarifies what has changed in each release.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Updates in Build 210</b><!--sizec--></span><!--/sizec-->
In build 210, server.exe now downloads and updates all mods mention in the server's xml file and/or command-line options every time it is run (no more having to copy over your mods manually to the server). To get a mod running on your server and working with auto-download for clients, simply mention the ID of that mod in the server's configuration. It will be automatically downloaded and used accordingly.
New server.exe command-line option:
<i>-modstorage "directory_path_to_store_mods"</i>
This option controls where the server downloads and updates mods to, and where the currently running server.exe process looks for mods. Without specifying this option, mods are stored to "%appdata%/roaming/Natural Selection 2/Workshop". Using this command-line option is particularly useful if you have one server that hosts multiple games at once, since you should be using a different mod directory for each one.
<i>Build 210 recently went out, and of course, it seems like there's a problem hosting games that use workshop mods. At the very least, I'm having problems getting them to work on ns2servers.com servers. It seems as though it's a problem with the build, although I can't seem to reproduce the problem locally when running server. If you encounter this problem on your own server, please let me know what it printed to std out -- it should print information about each mod when it begins and finishes updating and then the server should start up as normal. If there are problems, the only current "workaround" is to not use workshop mods (sorry, guys, this build was supposed to make things a lot easier for servers, not break them). If everything works for you without problems, let me know. Hopefully this is an isolated occurrence.
<b>Update:</b> The underlying problem is that the downloading of workshop mods requires Steam, so people just using the hldsupdatetool can't possibly retrieve the workshop files. I'm going to try to get in touch with Valve and see if something can be done with hldsupdatetool to accommodate workshop mods (but that would almost certainly take at least a little bit of time, pending they even decide to support it), otherwise, I'm going to see if we can get build 211 out a little sooner than planned so that I can at least restore the ability to copy mods manually for now in the case where no Steam is available. Sorry, guys!</i>
------------------------------------
Hey guys,
A quick introduction before getting started as this is my first post on the forums -- I'm Matt, I've been adding in the Steam Workshop support to NS2. Some of you know me as "That Turkey Story" in-game on lerkmore/on steam/on SA.
This post is targeted both towards those of you making levels/mods and those of you that are running servers. I'll be keeping this thread updated each release as features get put in, so check back if you are curious as to the state of workshop support. Feel free to post any questions/suggestions in here as well, as I'll check the thread once or twice a day. Also, keep in mind that most of this work hasn't been rigorously tested yet, so you may run into a bug or two. If you do, please report it. If you're just curious as to what's new in this release, scroll down to the bottom of this post for the changes in the latest build.
<!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><b>How-To For Mod/Level Developers</b><!--sizec--></span><!--/sizec-->
<i>If you have made any levels for NS2, try to get them published as soon as possible via Launch Pad and let me know of any problems.</i>
__
This thread is about publishing mods. If you are curious how to actually <i>make</i> a level, see <a href="http://www.unknownworlds.com/ns2/forums/index.php?showtopic=115728" target="_blank">this thread</a>.
The first thing new that you'll notice when creating a mod in Launch Pad is that you are presented with a drop-down menu for "Mod Kind." Currently, the only mod kind able to be published is "Level" though the rest will be supported in future releases. I'll fill in the list below as features get implemented detailing a little bit about how they are used and what their requirements are.
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b>Mod Kinds</b><!--sizec--></span><!--/sizec-->
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Level</b><!--sizec--></span><!--/sizec-->
<b><i>Use:</i></b>
Mods that are associated with a single NS2 level.
<b><i>Requirements:</i></b>
Exactly one ".level" file in the maps sub-directory of the mod's directory. The mod must also include all necessary dependencies. In other words, if your map is "ns2_foobar.level" and you create your mod in "C:\ns2_foobar_mod\" then the .level file should be "C:\ns2_foobar_mod\maps\ns2_foobar.level", the overview should go in "C:\ns2_foobar_mod\maps\overviews\". Similarly, materials go in "C:\ns2_foobar_mod\materials\", etc. For those of you who have already developed levels, the file structure is the same as if you were to have these files in the game's ns2 directory.
<b><i>Additional Notes:</i></b>
A couple of people have already asked about this, so I will make it clear: Between publishes you currently are able to change the name of your level (in other words you can publish with a level called "ns2_foobar_beta1.level", then on the next publish in the same mod change the level name to "ns2_foobar_beta2.level"). However, you should <i>never</i> do this, and in the next release I'll probably make it an error during publishing if you do so. The reason why is the following:
--
<b>Mod Developer</b>: publishes ns2_level_beta1.level
<b>Server</b>: subscribes to the level, which downloads the mod
<b>Server</b>: adds ns2_level_beta1.level to the map rotation. everything works fine!
<b>Mod Developer</b>: publishes an update but changes the name of the level to ns2_level_beta2.level
<b>Server</b>: automatically gets the update, but does not know to change the name of the level to "ns2_level_beta2.level" in his map rotation
<b>Server</b>: tries to load "ns2_level_beta1.level", but fails because it no longer exists (the level is now called ns2_level_beta2.level)
--
So, rather than changing the name of your level, keep it the same between releases to avoid problems when servers update the level. If you <i>really</i> want to change the name of your level, I recommend just publishing the level as an entirely new mod. The only drawback to this is that people running servers will have to find your newly-named mod again on steam in order to download it.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Game</b><!--sizec--></span><!--/sizec-->
<i>future release</i>
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Gameplay</b><!--sizec--></span><!--/sizec-->
<i>future release</i>
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Cosmetic</b><!--sizec--></span><!--/sizec-->
<i>future release</i>
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Server-Side</b><!--sizec--></span><!--/sizec-->
<i>future release</i>
<!--sizeo:4--><span style="font-size:14pt;line-height:100%"><!--/sizeo--><b>Publisher</b><!--sizec--></span><!--/sizec-->
Once a mod is created and selected, it may be published via the "Publisher" button:
<img src="http://i.imgur.com/eFw3N.png" border="0" class="linked-image" />
This should be pretty self-explanatory, so I won't go into too much detail. The tags are greyed out because they are automatically deduced and updated from the file structure. "Save Locally" saves changes to your computer without publishing. I think this goes without saying, but be careful with "Unpublish". There is a confirmation dialog if you click it, but you can't undo an unpublish once you go through with it. Keep in mind that if you unpublish a mod and then republish it, it will have a new ID, meaning that anyone who was subscribed to your mod will no longer receive updates.
Once you publish your mod, it should be visible in the steam workshop for people to view and subscribe to. It will then be downloaded and updated when necessary upon each game launch.
Finally, please do not publish levels that aren't your own, even if you give credit.
<!--sizeo:5--><span style="font-size:18pt;line-height:100%"><!--/sizeo--><b>How-To For Dedicated Servers</b><!--sizec--></span><!--/sizec-->
Mod support is not yet user-friendly for servers, but if you want to be one of the cool kids running custom maps that people download automatically when joining, continue reading. Once you get things up and running, any mods you specify will automatically be updated every time you run your server. The first thing you'll need to do is decide what mods your server will be using and add the ID of those mods to your server's config. Before detailing how to do that, if you don't feel like looking through the workshop for worthwhile mods, ScardyBob has taken the time to look up the IDs of good, working levels (thanks, ScardyBob!):
ns2_triad_beta2 = 74384218
ns2_kleos = 74499435
ns2_goliath = 75900465
ns2_turtle = 75943673
ns2_eclipse = 75856420
I'll explain what to do with those IDs shortly.
If you want to look up mods on your own, open up Steam, click "Community", then click "Workshop", then selection "Natural Selection 2" from the pull-down menu. Here you will see a list of mods for Natural Selection 2. Note that the way Valve lists mods is somewhat misleading. The default view will <i>not</i> show all of the mods that are available. Try the different sorting options (I.E. sort by most recent) to potentially see more mods. Once you've located a mod that you'd like to use on your server, click on it. Now here's the hairy part (it will be simpler in future releases): you're going to need to copy down the ID of the mod manually and add that ID to your server's configuration. To get the mod's ID, right click somewhere in the blank area of that particular mod's page and click "copy page url". Then, paste the url somewhere and copy the number that immediately follows "id=" part of the url. Do this for each mod you wish to use on your server (make sure you keep track of which mod corresponds to which ID).
Now you'll need to add the those IDs to your server's configuration. You can do this by either updating your server's xml file, or by specifying mods via the command-line. If you choose to add them to your xml file, it's a simple matter of adding:
<i><mods>space separated mod ids</mods></i>
You can have as many mods as you want, just make sure that they all appear in a single "mods" tag and that that tag is nested in "options". Once you do that, any levels that are a part of the mods may be added as a part of the map rotation.
You can also use the command-line to specify which mods are active on the server -- there are 3 different ways to do this. First, you may pass:
<i>-mods "space separated mod ids"</i>
to specify an exact list of mods to be active (the server will use this list instead of whatever mods are in the xml file, if any).
You may also specify an altered list of mods from the ones specified in the configuration file via:
<i>-removemods "space separated mod ids"
-addmods "space separated mod ids"</i>
This will use the set of mods in the configuration file but will disregard any mods specified via -removemods, and add in any mods explicitly specified via "-addmods".
In future releases you won't have to manually grab the ID, but we figured it would be best for you guys to be able to start testing out the feature as soon as possible. Note that there is no need to subscribe to the mod unless you wish to test that mod locally before using it on your server. The mod will automatically downloaded by clients when they connect to your server.
<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo--><b>Caveat</b><!--sizec--></span><!--/sizec-->
Your server will <i>only</i> update mods when it is started. This means that if someone updates their Workshop level while your server is running, your server will now be out of date! Because of this fact, consider the following:
1) The server is set up to use the mod that has the level "ns2_foobar.level"
2) The server is started and the level is updated
3) The creator of "ns2_foobar.level" updates his level
4) The server loads the map "ns2_foobar.level" (which is now an old version of the map)
5) A player attempts to join the server and is notified of the mod associated with the level
6) The player's game automatically downloads/updates the level from the Steam Workshop
7) The player now has a newer version of the map than the server and so he will be disconnected from the server
So, you will have to make sure that you restart your server on occasion such that everything is up-to-date. It is possible that in future releases mods being used will be updated upon level change so that no restart of the server is ever necessary, but that is not currently the state of things.
That's it for now. Again, I'll be keeping this post updated, so check back to see what's changed. I'll be updating this post shortly before each release so you guys can get new things up and running as soon as quickly as possible.
If you've read the entire post up to this point, there's no reason to read the following as it just clarifies what has changed in each release.
<!--sizeo:3--><span style="font-size:12pt;line-height:100%"><!--/sizeo--><b>Updates in Build 210</b><!--sizec--></span><!--/sizec-->
In build 210, server.exe now downloads and updates all mods mention in the server's xml file and/or command-line options every time it is run (no more having to copy over your mods manually to the server). To get a mod running on your server and working with auto-download for clients, simply mention the ID of that mod in the server's configuration. It will be automatically downloaded and used accordingly.
New server.exe command-line option:
<i>-modstorage "directory_path_to_store_mods"</i>
This option controls where the server downloads and updates mods to, and where the currently running server.exe process looks for mods. Without specifying this option, mods are stored to "%appdata%/roaming/Natural Selection 2/Workshop". Using this command-line option is particularly useful if you have one server that hosts multiple games at once, since you should be using a different mod directory for each one.
Comments
No. Every time you click "Publish Info" or "Publish All" your mod will have the same ID. This is how you make updates. The only time your mod will lose its original ID is if you click "Unpublish", in which case it will be removed from the steam workshop entirely. If you click publish after that, it will have a new ID (and people will have to find your mod again and resubscribe).
"Steam/Steamapps/Common/Natural Selection 2/ns2/NS2_Goliath/" ?
"Steam/Steamapps/Common/Natural Selection 2/NS2_Goliath/" ?
"Steam/Steamapps/Common/Natural Selection 2/ns2/NS2_Goliath/" ?
"Steam/Steamapps/Common/Natural Selection 2/NS2_Goliath/" ?<!--QuoteEnd--></div><!--QuoteEEnd-->
The path you should create is:
"Steam/Steamapps/Common/Natural Selection 2/<b>NS2_Goliath_mod*</b>/maps/ns2_goliath.level"
The path you should select when publishing is:
"Steam/Steamapps/Common/Natural Selection 2/<b>NS2_Goliath_mod*</b>/"
End result:
<img src="http://i.imgur.com/NMPon.jpg" border="0" class="linked-image" />
*Must have the same name for integrity
"Steam/Steamapps/Common/Natural Selection 2/ns2/NS2_Goliath/" ?
"Steam/Steamapps/Common/Natural Selection 2/NS2_Goliath/" ?<!--QuoteEnd--></div><!--QuoteEEnd-->
No. They may be in any directory. Actually, please do <i>not</i> put them in the Natural Selection 2 directory.
- Start up steam
- Select 'Community'
- Select 'Workshop'
- Then select 'Natural Selection 2' from the dropdown menu that says 'Select a Product'
- Then right click on the picture for the map/mod ID you want to find and select 'Copy link address'
- Then paste that somewhere, the mod ID is the number after the ?id= text
So far, there are only two maps published (I requested some other maps to be published in their respective threads, so hopefully we'll get a better selection soon). Those IDs are:
ns2_triad = 74384218
ns2_kleos = 74499435
ns2_goliath = 75900465
ns2_turtle = 75943673
ns2_eclipse = 75856420
ns2_prodigy = 76242233
ns2_tanith = 76836718
Edit: I also found another way to find the IDs. Once you've subscribed and downloaded the desired mods via steam, navigate to your /AppData/Roaming/Natural Selection 2/Workshop folder. There you will find a mod_info.xml file that contains your downloaded mods and their associated IDs.
It might be handy if one developer goes on holiday or disappears but other developers of a mod still want to be able to publish. Obviously this is in the 'nice to have' list rather than an essential feature!
Yeah. 210 will make it easier, but I've been getting a lot of messages about getting things working in 209 now that Lerk More has everything up and running and there was a tweet that went out about it, so I'll explain everything here. Keep in mind all of the following information will be completely useless come 210 since stuff will be automatic, but here's the complete process for the time being:
<i>snip</i>
I cut out the above instructions since build 210 is coming shortly and I've already updated the original post with new directions. Read the changes at the bottom of the post to learn exactly how you'll get things working once it is released.
<!--quoteo(post=1942312:date=Jun 8 2012, 04:53 PM:name=MCMLXXXIV)--><div class='quotetop'>QUOTE (MCMLXXXIV @ Jun 8 2012, 04:53 PM) <a href="index.php?act=findpost&pid=1942312"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Is it possible for one developer to publish the first version of a mod and then have another developer publish version 2 (or alternatively, is it possible to hand over control of a mod to another steam user or a group of steam users?).
It might be handy if one developer goes on holiday or disappears but other developers of a mod still want to be able to publish. Obviously this is in the 'nice to have' list rather than an essential feature!<!--QuoteEnd--></div><!--QuoteEEnd-->
This is something that Valve would have to add support for on their end with the way the workshop... works. I don't think there is currently a way to do any of this, but I agree that they are good ideas. I do have plans in the future for making it easier to collaborate on larger mods though, such as some simple integration with SVN and/or git source control, but that'd be the last thing done -- not until after all of the other mod kinds are implemented, pending it's worthwhile.
It would be somewhat odd maybe, as it is content only intended for mappers.
It would be somewhat odd maybe, as it is content only intended for mappers.<!--QuoteEnd--></div><!--QuoteEEnd-->
Do you mean a pack of materials that other maps can depend on and use? There weren't any plans for that, but it certainly can be done eventually if there is a desire for it, though it's not a priority and I won't commit to implementing it just yet. The only thing nontrivial about it is that a developer creating a level needs a way to specify dependencies for their mod in the Publisher (that way if someone downloads a level that uses your materials, they also automatically download your mod behind the scenes). Dependency specification similar to this is already being implemented since it is required for things such as levels that target a specific Game mod.
Sort of. I do not mean that maps would have this external dependency to other assets in the steam workshop, just that mappers should be able to browse textures, pick the ones they like and download them. They would then bundle the textures they actually used toghether with their map, instead of creating a "shopping list" of external dependencies that would have to be downloaded separately.
They are currently zipped up using the default compression level. I'll up it to the max for 210 or 211. <i>Edit: I just upped the compression to maximum and it should be in for build 210, the difference in compression is pretty great -- thanks for noticing. Automatic map downloads should feel almost instantaneous if they weren't already!</i>
<!--quoteo(post=1943059:date=Jun 13 2012, 07:37 AM:name=Soylent_green)--><div class='quotetop'>QUOTE (Soylent_green @ Jun 13 2012, 07:37 AM) <a href="index.php?act=findpost&pid=1943059"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Sort of. I do not mean that maps would have this external dependency to other assets in the steam workshop, just that mappers should be able to browse textures, pick the ones they like and download them. They would then bundle the textures they actually used together with their map, instead of creating a "shopping list" of external dependencies that would have to be downloaded separately.<!--QuoteEnd--></div><!--QuoteEEnd-->
I'll think about it. If such a feature ever gets implemented it will probably be as I mentioned earlier so that multiple levels can share the same files, and since other mod kinds already require dependencies, it wouldn't be much effort on our end to apply them to texture packs as well if/when such a feature is implemented. To be clear, the idea with dependencies is that the mod creator specifies what other mods their mod relies on (in this case it would be a texture pack). Then, if a user subscribes to their level, the texture pack downloads behind the scenes without the end user ever even having to know that the texture pack exists. This also allows multiple different levels to share some of the same files and ultimately reduces overall download time pending multiple levels share a texture pack. You'd only really have a problem if the texture pack is very large and the map creator is using a very small subset.
Anyway, again, this isn't a high priority right now, but the more I think about it, the more I like the idea.
I can think of more ways in which this may end up causing problems.
The texture pack might get removed for some reason. The author of the texture pack may remove, rework, resize or rename textures inside the texture pack, which would end up making a mess for the mapper.
The texture pack might get removed for some reason. The author of the texture pack may remove, rework, resize or rename textures inside the texture pack, which would end up making a mess for the mapper.<!--QuoteEnd--></div><!--QuoteEEnd-->
Yeah, but such is the case with any dependencies, including Game mods as dependencies. In the end, I think the answer is that a pack creator should be aware of compatibility just like a developer would be (that is, after all, what he is). If the pack creator is putting out a new release of his pack that breaks compatibility, then he should publish it as a new mod, leaving the old one up, rather than publishing it as an update. In my opinion, that is the pack creator's responsibility.
Note that we currently have a similar "problem" with levels right now. If a level creator changes the name of their mod between publishes, then people running a server that uses the mod will have a broken map cycle when the mod is updated. This is why I discourage changing of level names between publishes as described in the original post of this thread (and why I am troubled by the current name of triad up on the workshop, since it is named ns2_triad_beta2.level, which I assume will eventually be changed, therefore breaking the rotation on servers that play it).
Anyway, I'm not committed to adding in texture packs as supported mods at this point, so this may all be moot.
The texture pack might get removed for some reason. The author of the texture pack may remove, rework, resize or rename textures inside the texture pack, which would end up making a mess for the mapper.<!--QuoteEnd--></div><!--QuoteEEnd-->
Yeah, I'd expect the mapper just to include the textures into his map release rather than tie it to the texture mod in Steam Workshop.
Though, this type of mod dependencies would be nice for a mapper/modder who wants to use files between multiple projects (i.e. the same model across several maps or the same lua files across several mods). As long as the maps/mod are from the same creator, then it would reduce the chance of breaking from improper updates.
Though, this type of mod dependencies would be nice for a mapper/modder who wants to use files between multiple projects (i.e. the same model across several maps or the same lua files across several mods). As long as the maps/mod are from the same creator, then it would reduce the chance of breaking from improper updates.<!--QuoteEnd--></div><!--QuoteEEnd-->
There could always be another option, which is simply support both approaches, since I see both options as being worthwhile in different cases. When publishing, there could be a checkbox for each "Resource Pack" dependency that when marked, automatically includes all of the used files explicitly in the publish, otherwise it refers to the texture pack via a dependency as described. I don't see any problems giving this kind of control and it seems like it satisfies both use-cases.
These aren't used in game yet and so aren't heavily tested, but we still shouldn't be crashing. I'll check it out tomorrow morning.
Edit: Looking at it now and I see the problem. I'll try to squeeze in a fix before 210.
I've been running into an issue with mod downloading. I launch NS2 and try to create a server and get the "Wait until mods have finished downloading" error. I wait a minute for the mods to finish downloading, create a server, and then the game hangs on the loading screen forever. I have to close the game and end the process via the task manager before I can launch the game again. On the second launch the game works fine. This always happens when using a modded version of the game; I haven't noticed it yet with an unmodded game.
And is there a way to see download progress?
I've been running into an issue with mod downloading. I launch NS2 and try to create a server and get the "Wait until mods have finished downloading" error. I wait a minute for the mods to finish downloading, create a server, and then the game hangs on the loading screen forever. I have to close the game and end the process via the task manager before I can launch the game again. On the second launch the game works fine. This always happens when using a modded version of the game; I haven't noticed it yet with an unmodded game.<!--QuoteEnd--></div><!--QuoteEEnd-->
Do you have an exact set of steps to reproduce this bug? i.e. Tell me what mod you're using and keep track of exactly what you do to get the error, and test it a couple of times to make sure you can get it to reliably happen multiple times. If not, I'll try to check it out anyway, but this would help a lot.
<!--quoteo(post=1943600:date=Jun 15 2012, 03:23 PM:name=peregrinus)--><div class='quotetop'>QUOTE (peregrinus @ Jun 15 2012, 03:23 PM) <a href="index.php?act=findpost&pid=1943600"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->How do I access Steam Workshop in Steam?<!--QuoteEnd--></div><!--QuoteEEnd-->
From Steam itself click "Community" then click "Workshop". There you should see Natural Selection 2. If you are logged into the Steam website, you can also just follow <a href="http://steamcommunity.com/workshop/browse?appid=4920" target="_blank">this link</a> (the Natural Selection 2 workshop is only visible to people in the beta, which is why you need to be logged in to see it).
<!--quoteo(post=1943600:date=Jun 15 2012, 03:23 PM:name=peregrinus)--><div class='quotetop'>QUOTE (peregrinus @ Jun 15 2012, 03:23 PM) <a href="index.php?act=findpost&pid=1943600"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->And is there a way to see download progress?<!--QuoteEnd--></div><!--QuoteEEnd-->
The console in build 210 is more descriptive about downloads (says which mods are downloading, how many are in the download queue, etc.), but you won't see exact download progress until the mods menu is in. Right now, getting the other mod kinds working is a higher priority since most mod management can be done directly in steam for now.
Here's how it works for me, it happens every time.
<ol type='1'><li>Queue a mod to download before launching the game</li><li>Launch the game (I've only tried this with my two insight mods so far, not vanilla NS2)</li><li>Create a server</li><li>You should get an error that you can't create a server until the mod finishes downloading</li><li>Wait until the mods are finished downloading</li><li>Create a server - this hangs forever on "Loading....."</li><li>The game process still runs even after closing NS2 (Depending on how you close it)</li><li>Stop the NS2 process with task manager</li><li>Game now works fine</li></ol>
<a href="http://i.imgur.com/09AyT.png" target="_blank">Here is my console log</a> from when it hangs forever.
I took your advice and avoided trying b209, so frist time I'm attempting it is today. What is the error you are getting when you attempt to start? I'm not sure if I am getting the same, or if I'm doing something else wrong, so let me know.
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--><options>
<lanGame>false</lanGame>
<mapName>ns2_summit</mapName>
<password></password>
<port>27018</port>
<serverName>realservername</serverName>
<address>realip</address>
<playerLimit>18</playerLimit>
<mods>74384218</mods>
</options><!--c2--></div><!--ec2-->
And trying to launch server.exe, no mods:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->c:\server.exe
Press Tab to open the console window
Press Ctrl-C to exit
--------------------------------------------------------------------------------
Attempting to update 1 mod(s)...
c:\><!--c2--></div><!--ec2-->
Is there any setup required in B210, apart from adding the mods to the server.xml file?
I took your advice and avoided trying b209, so frist time I'm attempting it is today. What is the error you are getting when you attempt to start? I'm not sure if I am getting the same, or if I'm doing something else wrong, so let me know.
<snip><!--QuoteEnd--></div><!--QuoteEEnd-->
Yeah, that's the symptom. You're doing everything correctly -- the underlying problem is that the downloading of workshop mods requires Steam, so people just using the hldsupdatetool can't possibly retrieve the workshop files. I'm going to try to get in touch with Valve and see if something can be done with hldsupdatetool to accommodate workshop mods (but that would almost certainly take at least a little bit of time, pending they even decide to support it), otherwise, I'm going to see if we can get build 211 out a little sooner than planned so that I can at least restore the ability to copy mods manually for now in the case where no Steam is available. Sorry, guys!