1. This forum is obsolete and read-only. Feel free to contact us at support.keenswh.com

SE Workshop Tool (SEWT) - Batch mod uploading and downloading

Discussion in 'Modding Guides and Tools' started by Gwindalmir, Sep 9, 2016.

Thread Status:
This last post in this thread was made more than 31 days old.
  1. Gwindalmir

    Gwindalmir Senior Engineer

    Messages:
    1,006
    Are you a modder who wish you had better control over how you push mod updates?
    Or are you a server admin who wants to prefetch mods before starting the server?

    Well, I have a tool for you: SE Workshop Tool or SEWT (pronounced 'suit')

    What is it?
    It is a command-line driven utility designed to be scripted to perform batched uploads or downloads of mods.
    There is no GUI at this time. This may or may not be implemented in the future.

    Features
    • Support for publishing all mods, ingame scripts, blueprints, worlds, scenarios; both existing and new
    • Download all of the above as well (including extraction)
    • Publish with custom visibility (Public, Hidden, Friends Only)
    • Toggle the 'Development' tag, regardless of the actual branch you use to publish
    • Compile mods before uploading for validation (works with whatever installation this tool is copied into)
    • Change mod workshop categories (Block, Production, Animation, etc...)
    • Works with or without the game running
    • Verify script whitelist without loading the game

    NOTE
    This is still very much a work-in-progress, but I feel it is stable enough to release for players to use.

    How to install
    Download the release zip available here, then extract the two files into the SpaceEngineers\Bin64 directory.
    Then run it from the command-line. To see available options, type:
    Code:
    seworkshoptool --help
    How to Use
    To download mods:
    Code:
    seworkshoptool --download --mods 754173702 341822890
    To publish mods:
    Code:
    seworkshoptool --compile --mods FTL "%appdata%\SpaceEngineers\Mods\Stargate"
    Example


    Notice you can specify either a full path, or a directory name, relative to SE user data directory.

    Works with develop and stable.

    Full github is here, with build steps and runtime examples: https://github.com/Phoenix84/SEWorkshopTool

    Enjoy!
    Please leave feedback.

    Known Issues
    If you run into any issues launching SE after running this tool, just restart Steam. Not sure what causes it.
     
    Last edited: Sep 12, 2016
    • Like Like x 1
  2. opethbtbam

    opethbtbam Apprentice Engineer

    Messages:
    137
    I hope I'm not the only person who was reminded of NEWTs from Harry Potter.
     
  3. Gwindalmir

    Gwindalmir Senior Engineer

    Messages:
    1,006
    I've never seen (or read) it.
     
  4. opethbtbam

    opethbtbam Apprentice Engineer

    Messages:
    137
    It's time, Phoenix. It's time.

    Also cool tool, bro.
     
  5. rexxar

    rexxar Senior Engineer

    Messages:
    1,532
    I'm sorry, I don't know if we can be friends anymore.
     
    • Funny Funny x 1
  6. Harag

    Harag Junior Engineer

    Messages:
    913
    Authoring assets creates quite a number of intermediate files that don't need to be published. It would be great to have inclusion/exclusion rules when creating the .sbm. Something like --exclude Models/**/.fbx or --include @filterlist.txt. An alternative would be to pack the .sbm with another build-tool which already can produce .zip files from include/exclude filters and only publish the final file through SEWT, say -modpackage <file>. That would also allow to get rid of this zip spec-violation. But it would still require inspection of the .zip to make sure the exclusion list of potentionally harmful files is obeyed.

    Also, I think publishing should be an explicit sub-command just like --download is (--publish ?). In my opinion that's more consistent.
     
  7. Gwindalmir

    Gwindalmir Senior Engineer

    Messages:
    1,006
    It calls the game libraries for packing and uploading. I did that to avoid any incompatibilities when a client is downloading it.
    I would very much like to change the exclusion list myself.
    Hmm. Actually, I could use reflection and, and least for file extensions, exclude certain names by modifying the field that stores that information.

    And added an --upload command would be consistent, and I've thought about it too. I'll do that. Thanks for the feedback!

    EDIT: I've added both a custom extension exclusion list, and it now requires the --upload option, to avoid accidents.
     
    Last edited: Sep 19, 2016
  8. Iomega0318

    Iomega0318 Trainee Engineer

    Messages:
    26
    Interesting, I'm gonna play with this mow :)
     
  9. Foogs

    Foogs Apprentice Engineer

    Messages:
    123
    im make 1 click button for publish
    just follow this link: https://stackoverflow.com/questions/5605885/how-to-run-a-bat-from-inside-the-ide
    [​IMG][​IMG]
     
    Last edited: Jan 19, 2019
  10. mojomann71

    mojomann71 Senior Engineer

    Messages:
    2,005
    I keep forgetting to try this out!!!!!!!!
     
  11. Xoo

    Xoo Trainee Engineer

    Messages:
    1
    Nice one ! I'll give it a try.
     
Thread Status:
This last post in this thread was made more than 31 days old.