Jump to content

[Tutorial] How to upload a DS / DST mod to the Steam Workshop


Recommended Posts

Opening Don't Starve Mod Tools

Go to Steam and go to your Steam Library and enable showing of tools instead of only games.


Then, find Don't Starve Mod Tools in the list and (maybe install and) run it.


This dialogue will pop up. For uploading mods, we want the top option. You can see the other modding tools available in this list.


Program Overview

This is how the program looks for me (minus the red markings I made):


Adding a New Mod

When you click the "Add" button, you are presented with this screen, and it can be a little confusing at first:


How To Use

For the "Update Data" field at the top, select the folder where your final mod files are located. It will then fill out the fields below (except tags) using the data in your modinfo.lua file. The preview image it chooses is most likely wrong unless you've left a png version of the modicon in your mod folder. Go through the Field Explanations below, to make sure you put in the right things.

Field Explanations

* = required
Update Data* - The folder where your final mod files are located.
Update Preview Image* - This is the image file (jpg or png, NOT xml or tex) for the image you want to be the thumbnail for your mod on the workshop. You can change this later on your mod's workshop page. I usually use the image I used to create the modicon tex file.
Update Details - Name* - The name of your mod on the workshop. In-game your mod will be named what you put in your modinfo.lua. Sometimes it's nice to be able to add "(fixed)" or "(HLI compatible)" only to the workshop name. You can change this later on your mod's workshop page.
Update Details - Description - I don't think this is required. Let me know if it is. This is the description for your mod on the workshop. You can change this later on your mod's workshop page. It is in a so-called rich text format, so you can have things like headers, bold and italic text, etc. See Steam's Text Formatting Syntax. Here is an example I use:


[h1][b]Some Chapter Header In Bold[/b][/h1]
Some text in the chapter, where some of it is [b]bold[/b] and some might be [i]italic[/i] or [b][i]both[/i][/b].
You can link to things as well, like [url=https://steamcommunity.com/comment/Recommendation/formattinghelp]Steam's Text Formatting Syntax[/url].

[b]Some Subheader Just In Bold[/b]
You can do much better :)


Upload redundant files - Normally, you don't want to do this. If you want to include readme's or something, you can check this box, but just make sure you don't upload unnecessary files, like your "exported" folder.
Tags - These CAN be important. If your mod is a server mod, you should tick "server_admin". As for the rest, you should think about it when you first upload a mod. Don't just tick a bunch of them. Most of mine are simply "tweak" and "server_admin", because all they do is tweak variables, functionality and stuff.

Editing an Existing Mod

When you click the "Edit" button after selecting one of your mods in the list, you will be presented with the same menu as when adding a mod, only it is already filled out, but the checkboxes are not ticked. This is important. Only tick the checkboxes you want to make changes to. Any checkbox you tick, will replace whatever is on the workshop with what is put into the fields of this menu, when you click the "Publish!" button. If you have made a nice description on the workshop, you will notice that that is NOT the description you are seeing here. You are seeing the description you wrote in your modinfo.lua file. Given the restrictions on the length of the in-game description and the differences in syntax, you should keep them different, so never tick that "Update Details" checkbox, unless you are adding a new mod. You can change the name of the mod individually on the Steam Workshop and in the modinfo.lua file, so there is no reason to ever check "Update Details".

This is what "Auto Stack and Pick Up" looks like, and the only checkbox I tick is the "Update Data" checkbox to upload the updated files:




Maximum size is about 100mb. Don't know of any other, except what's in the Troubleshooting chapter below.


There are plenty of thins that can go wrong when uploading a mod, and there are restrictions.
There could be several reasons why your mod is being rejected. A few are specifically mentioned below, while most are explained by the "EResult" returned by Steam, which you can find near the bottom of the ModUploader.log file (just find the last couple of instances of the text "EResult", without the quotation marks, in ModUploader.log). Sometimes the server is busy. If your mod is larger than 100mb, it will be rejected. Many things can go wrong. This should at least give you a starting point.

You need to find your ModUploader.log file, in order to determine what the error was. It is located at:
<Windows Harddrive>:/Users/<USERNAME>/AppData/Local/Don't Starve Mod Uploader/ModUploader.log
Note that the AppData folder is hidden, so you need to either turn on showing hidden files and folders in Windows Explorer, or type in the whole path manually into the file path of Windows Explorer.

List of all the EResult errors and their meanings:


EResult 0   = EResult_Invalid
EResult 1   = EResult_OK
EResult 2   = EResult_Fail
EResult 3   = EResult_NoConnection
EResult 5   = EResult_InvalidPassword
EResult 6   = EResult_LoggedInElsewhere
EResult 7   = EResult_InvalidProtocolVer
EResult 8   = EResult_InvalidParam
EResult 9   = EResult_FileNotFound
EResult 10  = EResult_Busy
EResult 11  = EResult_InvalidState
EResult 12  = EResult_InvalidName
EResult 13  = EResult_InvalidEmail
EResult 14  = EResult_DuplicateName
EResult 15  = EResult_AccessDenied
EResult 16  = EResult_Timeout
EResult 17  = EResult_Banned
EResult 18  = EResult_AccountNotFound
EResult 19  = EResult_InvalidSteamID
EResult 20  = EResult_ServiceUnavailable
EResult 21  = EResult_NotLoggedOn
EResult 22  = EResult_Pending
EResult 23  = EResult_EncryptionFailure
EResult 24  = EResult_InsufficientPrivilege
EResult 25  = EResult_LimitExceeded
EResult 26  = EResult_Revoked
EResult 27  = EResult_Expired
EResult 28  = EResult_AlreadyRedeemed
EResult 29  = EResult_DuplicateRequest
EResult 30  = EResult_AlreadyOwned
EResult 31  = EResult_IPNotFound
EResult 32  = EResult_PersistFailed
EResult 33  = EResult_LockingFailed
EResult 34  = EResult_LogonSessionReplaced
EResult 35  = EResult_ConnectFailed
EResult 36  = EResult_HandshakeFailed
EResult 37  = EResult_IOFailure
EResult 38  = EResult_RemoteDisconnect
EResult 39  = EResult_ShoppingCartNotFound
EResult 40  = EResult_Blocked
EResult 41  = EResult_Ignored
EResult 42  = EResult_NoMatch
EResult 43  = EResult_AccountDisabled
EResult 44  = EResult_ServiceReadOnly
EResult 45  = EResult_AccountNotFeatured
EResult 46  = EResult_AdministratorOK
EResult 47  = EResult_ContentVersion
EResult 48  = EResult_TryAnotherCM
EResult 49  = EResult_PasswordRequiredToKickSession
EResult 50  = EResult_AlreadyLoggedInElsewhere
EResult 51  = EResult_Suspended
EResult 52  = EResult_Cancelled
EResult 53  = EResult_DataCorruption
EResult 54  = EResult_DiskFull
EResult 55  = EResult_RemoteCallFailed
EResult 56  = EResult_PasswordUnset
EResult 57  = EResult_ExternalAccountUnlinked
EResult 58  = EResult_PSNTicketInvalid
EResult 59  = EResult_ExternalAccountAlreadyLinked
EResult 60  = EResult_RemoteFileConflict
EResult 61  = EResult_IllegalPassword
EResult 62  = EResult_SameAsPreviousValue
EResult 63  = EResult_AccountLogonDenied
EResult 64  = EResult_CannotUseOldPassword
EResult 65  = EResult_InvalidLoginAuthCode
EResult 66  = EResult_AccountLogonDeniedNoMail
EResult 67  = EResult_HardwareNotCapableOfIPT
EResult 68  = EResult_IPTInitError
EResult 69  = EResult_ParentalControlRestricted
EResult 70  = EResult_FacebookQueryError
EResult 71  = EResult_ExpiredLoginAuthCode
EResult 72  = EResult_IPLoginRestrictionFailed
EResult 73  = EResult_AccountLockedDown
EResult 74  = EResult_AccountLogonDeniedVerifiedEmailRequired
EResult 75  = EResult_NoMatchingURL
EResult 76  = EResult_BadResponse
EResult 77  = EResult_RequirePasswordReEntry
EResult 78  = EResult_ValueOutOfRange
EResult 79  = EResult_UnexpectedError
EResult 80  = EResult_Disabled
EResult 81  = EResult_InvalidCEGSubmission
EResult 82  = EResult_RestrictedDevice
EResult 83  = EResult_RegionLocked
EResult 84  = EResult_RateLimitExceeded
EResult 85  = EResult_AccountLoginDeniedNeedTwoFactor
EResult 86  = EResult_ItemDeleted
EResult 87  = EResult_AccountLoginDeniedThrottle
EResult 88  = EResult_TwoFactorCodeMismatch
EResult 89  = EResult_TwoFactorActivationCodeMismatch
EResult 90  = EResult_AccountAssociatedToMultiplePartners
EResult 91  = EResult_NotModified
EResult 92  = EResult_NoMobileDevice
EResult 93  = EResult_TimeNotSynced
EResult 94  = EResult_SMSCodeFailed
EResult 95  = EResult_AccountLimitExceeded
EResult 96  = EResult_AccountActivityLimitExceeded
EResult 97  = EResult_PhoneActivityLimitExceeded
EResult 98  = EResult_RefundToWallet
EResult 99  = EResult_EmailSendFailure
EResult 100 = EResult_NotSettled
EResult 101 = EResult_NeedCaptcha
EResult 102 = EResult_GSLTDenied
EResult 103 = EResult_GSOwnerDenied
EResult 104 = EResult_InvalidItemType
EResult 105 = EResult_IPBanned
EResult 106 = EResult_GSLTExpired
EResult 107 = EResult_InsufficientFunds
EResult 108 = EResult_TooManyPending
EResult 109 = EResult_NoSiteLicensesFound
EResult 110 = EResult_WGNetworkSendExceeded
EResult 111 = EResult_AccountNotFriends
EResult 112 = EResult_LimitedUserAccount
EResult 113 = EResult_CantRemoveItem

It complains about EResult 9 or my preview image!
It doesn't allow you to add or update two mods in succession with the same new preview image, which is annoying for me since I have both DS and DST versions of almost all my mods, which I usually update simultaneously xD Even if they are different mods or for different games. The solution is to make an insignificant change to a single pixel on the preview image and save it, perhaps as a new file, and then use that for the second upload.

It complains about a version number!
There is a version number in your modinfo.lua file which MUST be incremented every single time you upload a new version of the mod (so, only when the "Update Data" checkbox is checked). See the guide below on how modinfo.lua works.

Extra Curriculum

See this post on how to use modinfo.lua

See this newcomer post if you are new to modding for DS / DST or would like a few good pointers.


Link to comment
Share on other sites

On 12/13/2019 at 6:56 PM, Ultroman said:

There is a version number in your modinfo.lua file which MUST be incremented every single time

Fun fact: you only need to change the version string - you can rollback an older version if needed, or have completely alien versioning sequence. :D 

Link to comment
Share on other sites

13 hours ago, myxal said:

Fun fact: you only need to change the version string - you can rollback an older version if needed, or have completely alien versioning sequence. :D 

LoL, it only checks if it's concurrent? :) I guess that's all it needs, and leaves it flexible.

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

  • Create New...