Difference between revisions of "Tutorials/SCS Workshop Uploader/How to upload new mod?"

From SCS Modding Wiki
Jump to navigation Jump to search
(Validation)
(95 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Preparing mod=
+
=Introduction=
To upload mod to Steam Workshop you need to setup few new files and folders your mod. Steam Workshop mods have ability to be compatible with multiple versions so you need to define which data game should use.
+
In this tutorial we will show you how to prepare your mod for uploading it to the workshop step by step.
  
First step of preparing your mod to be sent to Steam Workshop is creation of folder where you will store your mod data.
+
==Workshop mod files and directories layout==
 +
First of all - the layout of your mod will change a little bit. To check the Steam Workshop mods structure click [[Documentation/Tools/SCS_Workshop_Uploader/Workshop_mod_structure|here]].
  
[[File:0002_create_folder.jpg|500px]]
+
==Preparing mod for uploading step by step==
  
When you create the folder open it and create another folder called '''latest''' (the name can be different however we recommend calling it latest) - in this place you will put data files of your mod that will be compatible with latest game patches. Instead of folder you can also create ZIP archives with game data.
+
{| class="wikitable" width="100%"
 +
|- style="vertical-align:top;"
 +
| '''1'''
 +
| style="width: 500px" | [[File:0002_create_folder.jpg|500px]]
 +
|First step of preparing your mod is creating of the folder. You will put there all the files and folders needed for your mod to be compatible with Steam Workshop.
 +
|- style="vertical-align:top;"
 +
| '''2'''
 +
|[[File:0003_create_latest_folder.jpg|500px]]
 +
|After creating of the folder open it and create another folder inside called '''universal'''. (Instead of folder you can also create ZIP archives with game data)
 +
|- style="vertical-align:top;"
 +
| '''3'''
 +
|[[File:Universal_directory_content.jpg|500px]]
 +
|The universal directory (or archive) should contain all the standard mod package content so: manifest.sii file, description file, icon file and the mod content.
  
[[File:0003_create_latest_folder.jpg|500px]]
+
{{Note|Remember! In Workshop mods manifest.sii, description and icon files are required! [[Documentation/Engine/Mod_manager|Find more info here]]}}
 +
|- style="vertical-align:top;"
 +
| '''4'''
 +
|[[File:0004_open_text_editor_and_create_versions_sii.jpg|500px]]
 +
|Open your favorite text editor and create file called versions.sii - save it in the same folder where you created '''universal''' folder
 +
|- style="vertical-align:top;"
 +
| '''5'''
 +
|[[File:0005_fill_versions_sii_with_magic_and_global_sii_scope.jpg|500px]]
 +
|Add sii file frame to your versions.sii file.
  
Open text editor and create file called versions.sii - save it in the same folder where you created '''latest''' folder
+
<pre>SiiNunit
 +
{
  
[[File:0004_open_text_editor_and_create_versions_sii.jpg|500px]]
+
}</pre>
 +
|- style="vertical-align:top;"
 +
| '''6'''
 +
|[[File:0006_add_package_version_info_for_latest_version.jpg|500px]]
 +
|Add definition of universal version unit.
  
Add magic and global scope to your versions.sii file.
+
<pre>SiiNunit
 +
{
 +
package_version_info : .universal
 +
{
  
[[File:0005_fill_versions_sii_with_magic_and_global_sii_scope.jpg|500px]]
+
}
 +
}</pre>
 +
|- style="vertical-align:top;"
 +
| '''7'''
 +
|[[File:0007_add_folder_attribute_to_latest_info.jpg|500px]]
 +
|Set '''package_name''' to name of the folder or ZIP archive with the mod data.
  
Add definition of latest version.
+
<pre>SiiNunit
 +
{
 +
package_version_info : .universal
 +
{
 +
    package_name: "universal"
 +
}
 +
}</pre>
 +
|}
  
[[File:0006_add_package_version_info_for_latest_version.jpg|500px]]
+
When you do those points and put your game content to package you and you don't want to support exact game updates you can skip next points and go to [[#Uploading|Uploading]] part.
  
Set value of the attribute called '''folder''' which is the name of the folder or ZIP archive with the data.
+
==Supporting specify version of the game==
 +
{| class="wikitable" width="100%"
 +
|- style="vertical-align:top;"
 +
| '''1'''
 +
|[[File:0008_create_folder_for_122_content.jpg|500px]]
 +
|In case you have data that supports one exact game version you need to create folder or archive where you will store the content.
  
[[File:0007_add_folder_attribute_to_latest_info.jpg|500px]]
 
  
When you do those points and put your game content to folder/archive you and you don't want to support exact patches you can skip next points and go to [[#Uploading|Uploading]] part.
 
  
In case you have data that supports one exact update you need to create folder or archive where you will store the content.
+
{{Tip|For better organization of the directories. We recommend to call this folder ''122_content'' - 122 stands for 1.22 version with removed dot. For example - for 1.23 update it will be 123, for 1.6 it will be 16 etc.}}
 +
|- style="vertical-align:top;"
 +
| '''2'''
 +
|[[File:0009_add_new_unit_to_versions_sii_with_122_content_step_1.jpg|500px]]
 +
|Open your text editor and do exatly the same steps as you did while adding definition for universal update. (Besides different folder and unit name)
  
[[File:0008_create_folder_for_122_content.jpg|500px]]
+
<pre>SiiNunit
 +
{
 +
package_version_info : .universal
 +
{
 +
    package_name: "universal"
 +
}
  
Open your text editor and do exatly the same steps as you did while adding definition for latest patch. (Besides different folder and unit name)
+
package_version_info : .122_content
 +
{
 +
    package_name: "122_content"
 +
}
 +
}</pre>
 +
|- style="vertical-align:top;"
 +
| '''3'''
 +
|[[File:0010_add_new_unit_to_versions_sii_with_122_content_step_2.jpg|500px]]
 +
|There is new step you have to take. Set the value of the compatible_versions attribute. As we want to have data for 1.22 update simply write there "1.22.*". Values are similar to compatible_versions array in manifest.sii.
  
[[File:0009_add_new_unit_to_versions_sii_with_122_content_step_1.jpg|500px]]
+
If you want to use this package for 1.23 update only you will write:
 +
<pre>compatible_versions: "1.23.*"</pre>
  
There is new thing. You need to set value of the compatible_versions attribute. This attribute is simply array containing strings that are masks of the game versions. As we want to have data for 1.22 patch simply write there "1.22.*". Values are similar to compatible_versions array in manifest.sii however for workshop mods we are using versions specified in versions.sii.
+
If you want to support only one update by this content (not recommended) you will write:
 +
<pre>compatible_versions[]: "1.22.1"</pre>
  
[[File:0010_add_new_unit_to_versions_sii_with_122_content_step_2.jpg|500px]]
+
The value of this attribute can contain numbers, dots "." (between numbers) and asterisk "*" (at the end). Using asterisk inside text or at the beginning is not allowed.
  
In case you want to support more than one exact version you need to setup folder for it.
+
<pre>SiiNunit
 +
{
 +
package_version_info : .universal
 +
{
 +
    package_name: "universal"
 +
}
  
[[File:0011_create_multiversion_folder.jpg|500px]]
+
package_version_info : .122_content
 +
{
 +
    package_name: "122_content"
 +
    compatible_versions[]: "1.22.*"
 +
}
 +
}</pre>
 +
|- style="vertical-align:top;"
 +
| '''4'''
 +
|[[File:0011_create_multiversion_folder.jpg|500px]]
 +
|In case you want to support more than one exact version you need to setup folder for it.
  
Add again the same definition for the unit.
 
  
[[File:0012_add_another_unit_to_versions_sii.jpg|500px]]
+
{{Tip|We recommend using similar syntax as for single version specify content, but for separating the versions use underscore "_". For example if the content will be used by both 1.23 and 1.24 content package will be called: "123_124_content" in case you want the content package to be used for 1.24, 1.25.0 and 1.25.2 updates the content package will be called "124_1250_1252_content".}}
 +
|- style="vertical-align:top;"
 +
| '''5'''
 +
|[[File:0012_add_another_unit_to_versions_sii.jpg|500px]]
 +
|Add again the same definition for the unit.
  
Add compatible_version value for one patch you support.
+
<pre>SiiNunit
 +
{
 +
package_version_info : .universal
 +
{
 +
    package_name: "universal"
 +
}
  
[[File:0013_add_first_version_attribute.jpg|500px]]
+
package_version_info : .122_content
 +
{
 +
    package_name: "122_content"
 +
    compatible_versions[]: "1.22.*"
 +
}
  
And add again compatible_version value for second patch you want to support.
+
package_version_info : .120_121_content
 +
{
 +
    package_name: "120_121_content"
 +
}
 +
}</pre>
 +
|- style="vertical-align:top;"
 +
| '''6'''
 +
|[[File:0013_add_first_version_attribute.jpg|500px]]
 +
|Add compatible_version value for one update you support.
  
[[File:0014_add_second_version_attribute.jpg|500px]]
+
<pre>SiiNunit
 +
{
 +
package_version_info : .universal
 +
{
 +
    package_name: "universal"
 +
}
  
=Uploading=
+
package_version_info : .122_content
 +
{
 +
    package_name: "122_content"
 +
    compatible_versions[]: "1.22.*"
 +
}
  
Run '''SCS Workshop Uploader''' tool from your steam client. **TODO: Describe howto find the tool in steam client and link installation tutorial**
+
package_version_info : .120_121_content
 +
{
 +
    package_name: "120_121_content"
 +
    compatible_versions[]: "1.20.*"
 +
}
 +
}</pre>
 +
|- style="vertical-align:top;"
 +
| '''7'''
 +
|[[File:0014_add_second_version_attribute.jpg|500px]]
 +
|And add again compatible_version value for second update you want to support.
  
[[File:0015_workshop_uploader.jpg|500px]]
+
<pre>SiiNunit
 +
{
 +
package_version_info : .universal
 +
{
 +
    package_name: "universal"
 +
}
  
Select the game that is compatible with your mod. In the ''Mod data'' section - browse for a mod data folder.
+
package_version_info : .122_content
 +
{
 +
    package_name: "122_content"
 +
    compatible_versions[]: "1.22.*"
 +
}
  
[[File:0016_select_mod_folder.jpg|500px]]
+
package_version_info : .120_121_content
 +
{
 +
    package_name: "120_121_content"
 +
    compatible_versions[]: "1.20.*"
 +
    compatible_versions[]: "1.21.*"
 +
}
 +
}</pre>
 +
|}
  
If you select folder, browse for mod preview image.
+
=Uploading=
  
[[File:0017_select_preview_image.jpg|500px]]
+
{{UsefulLink|If you don't have SCS Workshop Uploader installed - check this tutorial - [[Tutorials/SCS_Workshop_Uploader/How_to_download_the_tool?|How to download and install SCS Workshop Uploader?]]}}
  
In next step fill mod name.
+
[[File:Scs_workshop_uploader_tutorial_preview.jpg]]
  
[[File:0018_fill_mod_name.jpg|500px]]
+
*Run '''SCS Workshop Uploader''' tool from your steam client.
 +
#Select the '''game''' that is compatible with your mod.
 +
#Select '''New''' item from the items combobox. It should be selected by default when you launch the tool.
 +
#In the '''Mod data''' section - browse for a '''mod data folder'''.
 +
#If you select folder, browse for '''mod preview image'''.
 +
#In next step fill '''mod name'''.
 +
#Select '''mod visibility''' in steam workshop. If it's '''Private''', '''Friends only''' or '''Public'''.
 +
#Fill your '''mod description''' which will be shown in your item workshop page. '''(Minimum 50 characters)'''
 +
#If you want to know formatting possibilities click on the question mark button.
 +
#Now, you have to select '''type tag''' for your mod.
 +
#You can select '''truck parts''' and '''brand''' tag if appropriate.
 +
#You can now fill '''change note''' of your mod. If you need to have the edit box bigger simply resize the tool window. As it's initial upload step you will more likely write nothing here - or write something like ''"Initial upload."''.
 +
#If you did all the points simply click '''Upload''' button. Before the actual upload operation the tool will check if your mod contains correct data.
  
Select mod visibility in steam workshop. If it's '''Private''', '''Friends only''' or '''Public'''.
 
  
[[File:0019_select_visibility.jpg|500px]]
+
{{Note|You may notice that when you are using non [https://en.wikipedia.org/wiki/ASCII ASCII characters] the counters are decreasing by more than one. It is because those characters have bigger size than one byte. The counters are counting bytes space used by description and title - not the character count}}
  
Fill your mod description which will be shown in your item workshop page. '''(Minimum 50 characters)'''
+
==Validation==
 +
*In case of any validation error you will notice this dialog.
  
'''TODO: Describe why writing for example 1 cyrillic character counts as 2, why one space is count as character and why enter is cound as character.'''
+
[[File:0025_in_case_of_error_you_will_get_this_dialog.jpg|500px]]
 
 
[[File:0020_fill_description.jpg|500px]]
 
 
 
Now, you '''MUST''' select type tag for your mod.
 
 
 
[[File:0021_select_mod_type_tag.jpg|500px]]
 
 
 
You '''CAN''' select truck parts and brand tag if appropriate.
 
 
 
[[File:0022_truck_parts_and_brand_are_optional.jpg|500px]]
 
 
 
You can fill change not of your mod - because it's first upload step you will more likely write nothing here - or write something like ''"Initial upload."''.
 
 
 
[[File:0023_fill_change_note.jpg|500px]]
 
 
 
If you did all the points simply click '''Upload''' button. Before the actual upload operation the tool will check if your mod contains correct data.
 
 
 
[[File:0024_validation_progress.jpg|500px]]
 
 
 
In case of any error you will notice this dialog.
 
  
[[File:0025_in_case_of_error_you_will_get_this_dialog.jpg|500px]]
+
When you click '''OK''' you will see log dialog with all errors and warnings that occured during validation. In case if you have only warnings you can both continue or abort operation. In case of error you '''need to''' fix them before uploading.
  
When you click '''OK(?)''' you will see log dialog with all errors and warnings that occured during validation. In case if you have only warnings you can both continue or abort operation. In case of error you '''NEED TO''' fix them before uploading.
+
{{UsefulLink|If you need help with solving your validation errors click '''[[Documentation/Tools/SCS_Workshop_Uploader/Validation_errors_and_solutions_for_them|here]]'''}}
  
  
'''TODO: Error log screenshot here'''
+
[[File:Validation result window.jpg]]
  
  
In case you click '''Continue''' mod will start uploading.
+
#In this line you have the summary of the validation - the number of errors and warnings.
 +
#In this area you have log of the validation. All the log entires have the following form: '''''[TYPE] [CODE] (file): Message'''''
 +
#Bellow you have two checkboxes, you can hide warnigns or errors here.
 +
#In case there are is at least one error you are able to only click Abort. This button simply aborts the upload.
 +
#In case validation did not report any error you can click this button and continue uploading of your mod. If there are errors you are unable to continue - you have to fix the problems.
  
In case mod has been successfuly uploaded you will see this dialog.
+
==Success==
 +
If there are no errors and the upload will continue on successfull upload you will see this dialog.
  
 
[[File:0026_upload_success.jpg]]
 
[[File:0026_upload_success.jpg]]
  
However it is possible that there was some failure - you will then notice dialog with the error message. If you have some problem with resolving the problem write on our forum '''[http://forum.url.put.here click todo moding section] (Create Steam Workshop section dedicated to it?)'''
+
However it is possible that there was some failure while uploading - you will then notice dialog with the error message. If you have some problem with resolving the problem write on '''[http://forum.scssoft.com/viewforum.php?f=24 our forum]'''
  
 
=Steam Workshop Terms Of Service=
 
=Steam Workshop Terms Of Service=
If it’s your first mod and you were not doing any mods for other game '''(or Valve updated Terms of Service?)''' you will likely get error about not accepted Steam Workshop Terms Of Service - if so happends tool will show you appropriate message and the steam workshop terms of service will be opened in your default web browser - you have to login to your steam account read and accept the terms of service and if you do so simply go back to the tool and try again with uploading your mod.
+
If it’s your first mod and you were not doing any mods for other game <!-- '''(or Valve updated Terms of Service?)'''-->  you will likely get error about not accepted Steam Workshop Terms Of Service - if so happends tool will show you appropriate message and the steam workshop terms of service will be opened in your default web browser - you have to login to your steam account read and accept the terms of service and if you do so simply go back to the tool and try again with uploading your mod.
 
 
=OLD=
 
# Create folder where you will put your mod content.
 
# Put version specific content into appropriate folders - you can zip those folders. '''TODO: What are those "appropriate" folders?'''
 
# Create file called [[Tools/Workshop_Uploader/versions.sii|versions.sii]] where you put [[Units/package version info|package version info]] units. '''TODO: Describe how to write this definition file with some examples'''
 
# When you prepare everything launch SCS Workshop Uploader tool from your Steam Client.
 
# Select the game which will be the target application for your workshop creation.
 
# In "Mod data" section
 
## Select folder with your mod content. You need to select the root folder of your mod this where you have placed your versions.sii file and version folders or archives.
 
## Browse for preview image. The maximum size of the file is '''1 MB'''.
 
# In the next section
 
## fill the Mod name (maximum 128 characters)
 
## select visibility state (if the mod is private, friends only or public).
 
# In "Description" section fill your mod description - the minimum amount of characters is 50 characters - maximum is 8000. (We count one byte as characters so in case you are using multibyte characters it will count as more than one (also new lines, spaces count as character))
 
# In "Tags" section
 
## You '''MUST''' select Type of your mod
 
## Truck parts and Brand are optional
 
# In "Change note" you specify changelog of new mod version - in this case you can leave it empty or simply write there something like "Initial release" or "First version release".
 
# When you are done you can press Upload button. In case validation failed or some different problem happened you will be informed by proper dialog.
 
 
 
[[Category:Tutorials]]
 
[[Category:TODO]]
 

Revision as of 15:10, 24 November 2016

Introduction

In this tutorial we will show you how to prepare your mod for uploading it to the workshop step by step.

Workshop mod files and directories layout

First of all - the layout of your mod will change a little bit. To check the Steam Workshop mods structure click here.

Preparing mod for uploading step by step

1 0002 create folder.jpg First step of preparing your mod is creating of the folder. You will put there all the files and folders needed for your mod to be compatible with Steam Workshop.
2 0003 create latest folder.jpg After creating of the folder open it and create another folder inside called universal. (Instead of folder you can also create ZIP archives with game data)
3 Universal directory content.jpg The universal directory (or archive) should contain all the standard mod package content so: manifest.sii file, description file, icon file and the mod content.

Note: Remember! In Workshop mods manifest.sii, description and icon files are required! Find more info here

4 0004 open text editor and create versions sii.jpg Open your favorite text editor and create file called versions.sii - save it in the same folder where you created universal folder
5 0005 fill versions sii with magic and global sii scope.jpg Add sii file frame to your versions.sii file.
SiiNunit
{

}
6 0006 add package version info for latest version.jpg Add definition of universal version unit.
SiiNunit
{
package_version_info : .universal
{

}
}
7 0007 add folder attribute to latest info.jpg Set package_name to name of the folder or ZIP archive with the mod data.
SiiNunit
{
package_version_info : .universal
{
    package_name: "universal"
}
}

When you do those points and put your game content to package you and you don't want to support exact game updates you can skip next points and go to Uploading part.

Supporting specify version of the game

1 0008 create folder for 122 content.jpg In case you have data that supports one exact game version you need to create folder or archive where you will store the content.


TIP: For better organization of the directories. We recommend to call this folder 122_content - 122 stands for 1.22 version with removed dot. For example - for 1.23 update it will be 123, for 1.6 it will be 16 etc.

2 0009 add new unit to versions sii with 122 content step 1.jpg Open your text editor and do exatly the same steps as you did while adding definition for universal update. (Besides different folder and unit name)
SiiNunit
{
package_version_info : .universal
{
    package_name: "universal"
}

package_version_info : .122_content
{
    package_name: "122_content"
}
}
3 0010 add new unit to versions sii with 122 content step 2.jpg There is new step you have to take. Set the value of the compatible_versions attribute. As we want to have data for 1.22 update simply write there "1.22.*". Values are similar to compatible_versions array in manifest.sii.

If you want to use this package for 1.23 update only you will write:

compatible_versions: "1.23.*"

If you want to support only one update by this content (not recommended) you will write:

compatible_versions[]: "1.22.1"

The value of this attribute can contain numbers, dots "." (between numbers) and asterisk "*" (at the end). Using asterisk inside text or at the beginning is not allowed.

SiiNunit
{
package_version_info : .universal
{
    package_name: "universal"
}

package_version_info : .122_content
{
    package_name: "122_content"
    compatible_versions[]: "1.22.*"
}
}
4 0011 create multiversion folder.jpg In case you want to support more than one exact version you need to setup folder for it.


TIP: We recommend using similar syntax as for single version specify content, but for separating the versions use underscore "_". For example if the content will be used by both 1.23 and 1.24 content package will be called: "123_124_content" in case you want the content package to be used for 1.24, 1.25.0 and 1.25.2 updates the content package will be called "124_1250_1252_content".

5 0012 add another unit to versions sii.jpg Add again the same definition for the unit.
SiiNunit
{
package_version_info : .universal
{
    package_name: "universal"
}

package_version_info : .122_content
{
    package_name: "122_content"
    compatible_versions[]: "1.22.*"
}

package_version_info : .120_121_content
{
    package_name: "120_121_content"
}
}
6 0013 add first version attribute.jpg Add compatible_version value for one update you support.
SiiNunit
{
package_version_info : .universal
{
    package_name: "universal"
}

package_version_info : .122_content
{
    package_name: "122_content"
    compatible_versions[]: "1.22.*"
}

package_version_info : .120_121_content
{
    package_name: "120_121_content"
    compatible_versions[]: "1.20.*"
}
}
7 0014 add second version attribute.jpg And add again compatible_version value for second update you want to support.
SiiNunit
{
package_version_info : .universal
{
    package_name: "universal"
}

package_version_info : .122_content
{
    package_name: "122_content"
    compatible_versions[]: "1.22.*"
}

package_version_info : .120_121_content
{
    package_name: "120_121_content"
    compatible_versions[]: "1.20.*"
    compatible_versions[]: "1.21.*"
}
}

Uploading

Scs workshop uploader tutorial preview.jpg

  • Run SCS Workshop Uploader tool from your steam client.
  1. Select the game that is compatible with your mod.
  2. Select New item from the items combobox. It should be selected by default when you launch the tool.
  3. In the Mod data section - browse for a mod data folder.
  4. If you select folder, browse for mod preview image.
  5. In next step fill mod name.
  6. Select mod visibility in steam workshop. If it's Private, Friends only or Public.
  7. Fill your mod description which will be shown in your item workshop page. (Minimum 50 characters)
  8. If you want to know formatting possibilities click on the question mark button.
  9. Now, you have to select type tag for your mod.
  10. You can select truck parts and brand tag if appropriate.
  11. You can now fill change note of your mod. If you need to have the edit box bigger simply resize the tool window. As it's initial upload step you will more likely write nothing here - or write something like "Initial upload.".
  12. If you did all the points simply click Upload button. Before the actual upload operation the tool will check if your mod contains correct data.


Note: You may notice that when you are using non ASCII characters the counters are decreasing by more than one. It is because those characters have bigger size than one byte. The counters are counting bytes space used by description and title - not the character count

Validation

  • In case of any validation error you will notice this dialog.

0025 in case of error you will get this dialog.jpg

When you click OK you will see log dialog with all errors and warnings that occured during validation. In case if you have only warnings you can both continue or abort operation. In case of error you need to fix them before uploading.


Validation result window.jpg


  1. In this line you have the summary of the validation - the number of errors and warnings.
  2. In this area you have log of the validation. All the log entires have the following form: [TYPE] [CODE] (file): Message
  3. Bellow you have two checkboxes, you can hide warnigns or errors here.
  4. In case there are is at least one error you are able to only click Abort. This button simply aborts the upload.
  5. In case validation did not report any error you can click this button and continue uploading of your mod. If there are errors you are unable to continue - you have to fix the problems.

Success

If there are no errors and the upload will continue on successfull upload you will see this dialog.

0026 upload success.jpg

However it is possible that there was some failure while uploading - you will then notice dialog with the error message. If you have some problem with resolving the problem write on our forum

Steam Workshop Terms Of Service

If it’s your first mod and you were not doing any mods for other game you will likely get error about not accepted Steam Workshop Terms Of Service - if so happends tool will show you appropriate message and the steam workshop terms of service will be opened in your default web browser - you have to login to your steam account read and accept the terms of service and if you do so simply go back to the tool and try again with uploading your mod.