⚙️ Workshop Publishing Utility for Garry's Mod, written in Rust & Svelte and powered by Tauri

Overview

Logo

⚙️ gmpublisher

Currently in Beta development.

A powerful and feature-packed Workshop publisher for Garry's Mod is finally here!

Click for downloads

Are you a developer? You may also like my VSCode GLua Enhanced extension!

-> Windows users need to install WebView2 for gmpublisher to work (for now) <-

-> Your antivirus may block gmpublisher since it's an unsigned application <-

Features

  • Doesn't depend on gmad.exe or gmpublish.exe
  • Publish & update your Workshop items
  • Extract, search and browse GMA files and installed addons
  • Bulk download & extract Workshop items and collections
  • Upload animated GIFs as your Workshop item's icon
  • Analyze which addons are taking up the most disk space using the addon size analyzer treemap
  • Supports legacy SteamPipe addons and old GMA versions
  • Works without an Internet connection
  • (Coming soon) .GMA file type association for quick extraction
  • (Coming soon) CLI interface
  • (Coming soon) Manage Steam Workshop subscriptions
  • (Coming soon) resource.AddWorkshop generator

Languages

English

French

German

Russian

Polish

Turkish

Portuguese (Brazil)

Spanish

Want to translate gmpublisher to your language?

Requirements

Windows

Webview2

(In future this will not be a requirement)

macOS, Linux

The program should work out-of-the-box.

Tutorials

DanFMN - Fastest Way to Upload a Garry's Mod Addon To Workshop

Technical Stuff

  • The program makes heavy use of multithreading, and will work best on processors with a decent amount of cores.
  • Made using Rust (backend) and Svelte (frontend)
  • This is not an Electron app; this is a Tauri app. Big thanks to all the contributors to Tauri for their amazing work on finally killing Electron for good.
  • gmpublisher uses the fantastic steamworks-rs library for interfacing with the Steamworks SDK
  • The program is only about ~10 MB (which is probably just a lot of panic unwinding traces!)

Media

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Comments
  • [WIN] Opens in a black screen if steam isn't located in C:\

    [WIN] Opens in a black screen if steam isn't located in C:\

    OS: Win10 GMP-Version: beta2.2.0 WebView installed: yes

    I just tried to use this awesome new tool but it seems to be not usable if steam isn't installed in the default path. It looks like this:

    image

    The console looks like this:

    image

    Is there any way to configure the path to the steam folder? I even tried to create a symbolic link of the steam folder to the default C directory. But it doesn't change anything

    opened by TimGoll 22
  • Addon page does not exist

    Addon page does not exist

    Whenever it finishes uploading it opens what I assume is supposed to be the webpage, but I get redirected to the steam community error processing your request page, making me think that the addon page was not created. Can anyone help me with this? image

    opened by CassieCatYT 6
  • Downloader max ids limit? Batch downloading?

    Downloader max ids limit? Batch downloading?

    Hi, I want to download 176 addons from the workshop - but it looks like there is a limit in the gpublisher. When I paste 176 ids separated by commas in entry, it just stroke the input field in red. What is the limit and why is it limited?

    Also, it would be great to add a button to pack all downloaded addons into a zip archive.

    opened by Be1zebub 6
  • Gmod addons directory for GMA extractor removed all content without prompt or warning

    Gmod addons directory for GMA extractor removed all content without prompt or warning

    EDIT: Heat of the moment had me unable to report properly. Sorry for the inconvenience. Copy-past from my reply: When I used 'browse' to set a custom location, other files and folders were not affected and the extracted files were properly put into a new folder. Whereas using the 'Addons' option resulted in the extracted files being put directly inside the addons directory without making a new folder, and moving all other folders and files to the recycle bin. (I have my steam installation in C: and my steam library in a different drive btw)

    Original comment: When I tried to use the GMA extractor, I thought the 'Existing files will be overridden' warning only applied to same-name files and the rest would be untouched, and expected the GMA contents to be put into a new, separate folder.

    My collection of personal mod files which I stored in the addons folder as a Lua coder were removed by the extracted files which were put directly in the addons directory, and I tried to find my stuff back but accidentally cleared my Recycle bin out of habit, which had all of it inside. There was no indication they were going to be put into the Recycle bin. Worst part is the extracted GMA files were properly put in a separate folder if I chose a custom location instead, and none of the files there were erased.

    I'm honestly very angry with this.

    opened by Shadowysn 5
  • Using gmpublisher causes uploads to be blacklisted?

    Using gmpublisher causes uploads to be blacklisted?

    Ever since the banning of the auto-link it appears that any upload that used gmpublisher is getting frozen, awaiting a "check from the automated system" for multiple days. The only thing me and other people can do to have access to our posts again is to ask steam support, but changing anything will revert it to its automated review. People have also reported not having this problem with GMPU, I have tried it and have had no issues. I don't know if steam is being triggered by gmpublisher, but it's sad I can't use this software anymore.

    opened by lucasesquivel 4
  • no shared libraries

    no shared libraries

    ./gmpublisher: error while loading shared libraries: libgtksourceview-3.0.so.1: cannot open shared object file: No such file or directory

    specs : manjaro 64bit plasma desktop any help? fix : dragndrop steam....so to /lib execute sudo pacman -S gtksourceview3

    opened by skeyvin 4
  • Whitelist Bug

    Whitelist Bug

    Seems like files within: gamemodes/the_gamemode_name/backgrounds/file_name.jpg is not allowed. This is actually allowed, and is used to show custom background pictures for a gamemode that is looping.

    bug 
    opened by ravo10 4
  • uploaded addon is stuck on awaiting analysis for hours

    uploaded addon is stuck on awaiting analysis for hours

    i tried uploaded a small addon 3 times using gmpublisher and they keep getting stuck for hours on awaiting analysis and i cant remove them. Then i used gmad and it uploaded fine

    opened by niik128 3
  • gmpublisher running makes steam think gmod is still open

    gmpublisher running makes steam think gmod is still open

    i opened gmod, then gmpublisher, but i crashed gmod testing shit, yet steam still reported gmod as still running: gmod still thinks it's running

    hitting the "STOP" button in steam kills the webview children but gmpublisher remains running: killing gmpublisher

    other processes push it offscreen but the button reverts the moment the task is killed

    a little inconvenient

    wontfix 
    opened by EntranceJew 3
  • I can't install msi

    I can't install msi

    image I thought the problem was in my installer. I tried to fix the problem in many ways using cmd and regedit, but nothing helped. Other msi installers like a blackhole.msi are working.

    opened by Lavandos1488 2
  • cargo fails to build this on arch linux

    cargo fails to build this on arch linux

    error: failed to run custom build command for `steamworks-sys v0.7.0 (https://github.com/WilliamVenner/steamworks-rs?branch=personal-2#d0cb4913)`
    
    Caused by:
      process didn't exit successfully: `/home/alib234/Gits/gmpublisher/src-tauri/target/debug/build/steamworks-sys-8e9875460a9d3f53/build-script-build` (exit status: 101)
      --- stderr
      thread 'main' panicked at 'STEAM_SDK_LOCATION must be set: NotPresent', /home/alib234/.cargo/git/checkouts/steamworks-rs-6399f522f9806021/d0cb491/steamworks-sys/build.rs:14:10
      note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    warning: build failed, waiting for other jobs to finish...
    

    probably not correct to try to manually build the tauri thing but there's no instructions on how to build and I see no other thing to build

    opened by Alib234 2
  • Installation fails on Windows 8.1 (with proof)

    Installation fails on Windows 8.1 (with proof)

    Installation fails on Windows 8.1 when I try to install it says "there is a problem with this windows installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor." Can you please fix it! Capture

    opened by ExtraJackGuest 0
  • Installation fails on Win7 x64 SP1 w/most updates

    Installation fails on Win7 x64 SP1 w/most updates

    image

    If Win7 is unsupported, at least make it clear that it is and handle the error appropriately.

    Assuming the user is on Windows 10 won't cut it when lots of people - myself included - don't want to touch it for reasons mostly pertaining to either lack of device drivers or performance issues on pre-2014 hardware, both of which are the case for me.

    The amount of things that let me install them and then don't work is absurd, which is interesting considering most stuff back when everything finally dropped XP (and Vista with it mainly due to low usage more than technical reasons) would alert you right away that the software doesn't work anymore on that OS mostly to prevent the user from both writing unnecessary stuff and end up partly-installing broken software and its registry/etc entries to the system, and filing unnecessary issues like this...

    opened by sleepydesu98 2
  • Invalid File Path caused by stupid windows

    Invalid File Path caused by stupid windows

    Windows likes to sometimes throw a hidden thumbs.db file in the materials folder to store data for image thumbnails, obviously gmpublisher doesn't like this, so it'd be ideal for gmpublisher to be default filter out that file

    opened by JellyPies 0
  • Possibility to queue updates?

    Possibility to queue updates?

    Love the work you put into this! I was wondering if you could add the ability to line up addons to update automatically one after the other? It'd be a nice QoL update for those that always have a few addons to update.

    opened by One-Trick-Viper 0
  • Auto-opening windows toggle

    Auto-opening windows toggle

    Hey, absolutely amazing program my friend, I've been using GMPublisher since it released and love it! But I was wondering if I could request a feature. Could there be a toggle could be added to the settings menu, to turn off automatically opening your web browser when you upload a mod, and turn off automatically opening file explorer when you extract a mod? Would fix my only annoyance with GMPublisher, it's otherwise fantastic, and sorry if there's already a way to do this.

    opened by TheStig294 0
Releases(2.9.2)
Owner
William
aka Billy
William
Rust Code Completion utility

Racer - code completion for Rust RACER = Rust Auto-Complete-er. A utility intended to provide Rust code completion for editors and IDEs. Maybe one day

null 3.4k Jan 4, 2023
A small utility to compare Rust micro-benchmarks.

cargo benchcmp A small utility for comparing micro-benchmarks produced by cargo bench. The utility takes as input two sets of micro-benchmarks (one "o

Andrew Gallant 304 Dec 27, 2022
🧑🏻‍⚕️ Command-line utility which poll on remote addresses in order to perform status checks periodically

ナース (Nāsu) ????‍⚕️ Command-line utility which poll on remote addresses in order to perform status checks periodically Motivation Nāsu (from Japanese ナ

Esteban Borai 13 Nov 14, 2021
A simple utility for multithreading a/synchronization

Flowync Quick Example use flowync::Flower; fn main() { let flower = Flower::<i32, String>::new(1); std::thread::spawn({ let handle =

Adia Robbie 12 Dec 5, 2022
A neofetch alike program that shows hardware and distro information written in rust.

nyafetch A neofetch alike program that shows hardware and distro information written in rust. installing install $ make install # by default, install

null 16 Dec 15, 2022
Powerful database anonymizer with flexible rules. Written in Rust.

[Data]nymizer Powerful database anonymizer with flexible rules. Written in Rust. Datanymizer is created & supported by Evrone. What else we develop wi

[Data]nymizer 381 Dec 26, 2022
⚡️Lightning-fast linter for .env files. Written in Rust 🦀

⚡️ Lightning-fast linter for .env files. Written in Rust ?? Dotenv-linter can check / fix / compare .env files for problems that may cause the applica

null 1.5k Jan 9, 2023
Detects usage of unsafe Rust in a Rust crate and its dependencies.

cargo-geiger ☢️ A program that lists statistics related to the usage of unsafe Rust code in a Rust crate and all its dependencies. This cargo plugin w

Rust Secure Code Working Group 1.1k Dec 26, 2022
The Git Commit Message and Changelog Generation Framework :book:

git-journal ?? The Git Commit Message and Changelog Generation Framework Table of contents: TL;DR Installation Usage Default output Template output Co

Sascha Grunert 551 Jan 4, 2023
A fun and simple language with NO classes whatsoever!

This language aims to be simple, minimal, and compact. There will not be any classes whatsoever, and importing other files should be painless.

Europa Lang 22 Aug 23, 2022
Create evolving artistic images with hot-code-reloaded Lisp and GLSL.

Shadergarden is a tool for building hot-code-reloadable shader pipelines. For a tutorial for how to get started, consult the introductory

Tonari, Inc 101 Dec 29, 2022
Super lightweight and dead-simple CI detection.

This crate tells you if you're in a CI environment or not. It does not tell you which you're in, but it makes a good effort to make sure to accurately

Kat Marchán 9 Sep 27, 2022
Format Rust code

rustfmt Quick start On the Stable toolchain On the Nightly toolchain Installing from source Usage Running cargo fmt Running rustfmt directly Verifying

The Rust Programming Language 4.8k Jan 7, 2023
The Rust toolchain installer

rustup: the Rust toolchain installer Master CI Build Status Windows macOS Linux Etc rustup installs The Rust Programming Language from the official re

The Rust Programming Language 5.1k Jan 8, 2023
Repository for the Rust Language Server (aka RLS)

Rust Language Server (RLS) The RLS provides a server that runs in the background, providing IDEs, editors, and other tools with information about Rust

The Rust Programming Language 3.6k Jan 7, 2023
🦀 The ultimate search extension for Rust

Rust Search Extension 简体中文 The ultimate search extension for Rust Search docs, crates, builtin attributes, official books, and error codes, etc in you

Huhu 962 Dec 30, 2022
a freeform Rust build system

tinyrick: a freeform Rust build system .---. ^ o{__ω__ o{ ^0^ -Let me out! ~~ ( // *|* \xx\) xx`|' = =

Andrew 48 Dec 16, 2022
The Curly programming language (now in Rust!)

Curly Curly is a functional programming language that focuses on iterators. Some of its main implementation features include sum types, iterators, lis

Curly Language 30 Jan 6, 2023
Some WIP payload in Rust running on M1.

m1saka Some WIP payload in Rust running on M1. Project informations The aim of this payload is to provide exploration capabilities while providing a s

Mary 10 Mar 7, 2021