
Mods / flawless server mod manager
Tags:
#Library
#Utility
Author: xeth
Side: Both
Created: Jun 14th at 6:58 PM
Last modified: Jun 19th at 2:04 AM
Downloads: 228
Follow Unfollow 25
Author: xeth
Side: Both
Created: Jun 14th at 6:58 PM
Last modified: Jun 19th at 2:04 AM
Downloads: 228
Follow Unfollow 25
Recommended download (for Vintage Story 1.20.12):
flawless_mod_manager_v0.0.5.zip
1-click install
flawless server mod manager
this lets clients download mods directly from the vintagestory game server if the mod is not available on moddb (with client permission approval required).
the priority order for downloading mods:
1. first check moddb for mods (normal vs system)
2. for mods not available, server will send client list of non public mods on server
3. client must give approval to download (in the gui)
4. client will then download each mod directly from server
5. client must join server before any mods are loaded by game (gives opportunity to cancel joining and audit mods downloaded)
use cases:
1. testing mods: mod makers can use this to easily test mods with friends without needing to send .zip files around
2. server specific tweaks: let server managers have small server-specific tweak/config mods without polluting the global mod database
3. suddenly removed mods: if jannies or mod makers suddenly remove mod this gives server managers an alternative
looking for somepony else to take over: this is a proof-of-concept (its only 1 file!!!11, see source)
i dont rly have time irl to do modding anymore i made this quickly for my own server & frens x,x
so i hope somepony else can take over & keep this stable & safe !!!!!!
known issues:
- sometimes mod downloading may fail...: cancel, wait a few seconds, re-join and retry. (this may be related to some main/packet thread conflict, right now can just keep trying until the threading fixed haha lole)
src code:

noooo "security"""""!!!
this requires client approval & is no less secure than current auto download from moddb, run vs in an isolated sand box if u want actual security
mods are NOT automatically loaded when downloaded, if you need to audit the mods downloaded,
1. cancel after downloading the mods (do NOT join server)
2. open the server mods folder, typically `VintagestoryData\ModsByServer\[address]-[port]`
3. unpack and inspect all the server mod .zip downloaded (i.e. dnspy audit any .dll downloaded)
this is no different than vanilla since moddb doesnt audit any .dll files


Mod Version | For Game version | Downloads | Release date | Changelog | Download | 1-click mod install* |
---|---|---|---|---|---|---|
0.0.5 | 116 | Jun 19th at 2:04 AM | flawless_mod_manager_v0.0.5.zip | 1-click install | ||
| ||||||
0.0.4 | 40 | Jun 15th at 9:41 PM | flawless_mod_manager_v0.0.4.zip | 1-click install | ||
| ||||||
0.0.3 | 11 | Jun 15th at 9:03 PM | flawless_mod_manager_v0.0.3.zip | 1-click install | ||
- bigly reduce filesize by remove protobuf unnecessarily included lole! | ||||||
0.0.2 | 8 | Jun 15th at 8:05 PM | flawless_mod_manager_v0.0.2.zip | 1-click install | ||
| ||||||
0.0.1 | 53 | Jun 14th at 6:58 PM | flawless_mod_manager_v0.0.1.zip | 1-click install | ||
initial release |
The client is crashing after downloading one non-repo mod and trying to connect. Removing flawless from the server after the mod has downloaded and relaunching allows the client to connect.
ProtoBuf.ProtoException: Invalid wire-type; this usually means you have over-written a file without truncating or setting the length; see https://stackoverflow.com/q/2152978/23354
at ProtoBuf.ProtoReader.ReadSingle() in C:\Code\pb-net_24\src\protobuf-net\ProtoReader.cs:line 864
at proto_162(Object, ProtoReader)
at ProtoBuf.Meta.TypeModel.Deserialize(Stream source, Object value, Type type, SerializationContext context) in C:\Code\pb-net_24\src\protobuf-net\Meta\TypeModel.cs:line 599
at ProtoBuf.Serializer.Deserialize[T](Stream source) in C:\Code\pb-net_24\src\protobuf-net\Serializer.cs:line 68
at Vintagestory.Client.NoObf.NetworkChannel.<>c__DisplayClass12_0`1.<SetMessageHandler>b__0(Packet_CustomPacket p) in VintagestoryLib\Client\API\NetworkChannel.cs:line 74
at Vintagestory.Client.NoObf.NetworkAPI.HandleCustomPacket(Packet_Server packet) in VintagestoryLib\Client\API\NetworkAPI.cs:line 137
at Vintagestory.Client.NoObf.ClientMain.ExecuteMainThreadTasks(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 786
at Vintagestory.Client.GuiScreenConnectingToServer.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenConnectingToServer.cs:line 254
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 695
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 670
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 88
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 334
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 130
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
Seems to be hit or miss on wether it works for certain players, unsure as to why currently.
Testing this out and it seems the mod never actually gets sent? Either that or this is being sent at an extremely slow speed.
Actually, it's an interesting concept. But I have an alternative idea: why not replace "modDbUrl" temporarily, to check mods on alternative modDbs? Yes, as far as I know, we don't have alternative moddbs, haha. But it could relieve the game server, and all the server would need to pass is a list of modDbUrls on which the client will search for mods.
0.0.2 should fix those issue : 3
this is throwing a bunch of errors on a linux dedicated machine:
```15.6.2025 01:07:21 [Warning] [flawless] Mod zip for butchering not found at /home/vintagestory/server/data/vs/Mods/butchering_1.9.0.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for elkjaunt not found at /home/vintagestory/server/data/vs/Mods/elkjaunt_1.0.0.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for meiolaniidae not found at /home/vintagestory/server/data/vs/Mods/FotSA-Meiolaniidae-v0.1.6.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for medievalexpansionpatch not found at /home/vintagestory/server/data/vs/Mods/medievalexpansionpatch-1.2.0.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for ndlvillagers not found at /home/vintagestory/server/data/vs/Mods/ndlvillagers_1.5.0.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for carryon not found at /home/vintagestory/server/data/vs/Mods/CarryOn-1.20.4_v1.8.1.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for casuariidae not found at /home/vintagestory/server/data/vs/Mods/FotSA-Casuariidae-v1.1.4.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for butcheringexpandedcompatibility not found at /home/vintagestory/server/data/vs/Mods/ButcheringExpandedCompatibility_1.0.0.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for chiseltools not found at /home/vintagestory/server/data/vs/Mods/chiseltools1.14.19.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for dinornithidae not found at /home/vintagestory/server/data/vs/Mods/FotSA-Dinornithidae-v1.0.17.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for floralzonescentralaustralianregion not found at /home/vintagestory/server/data/vs/Mods/FloralZonesCentralAustralianRegion-v1.0.14.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for spheniscidae not found at /home/vintagestory/server/data/vs/Mods/FotSA-Spheniscidae-v1.0.11.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for glidervar not found at /home/vintagestory/server/data/vs/Mods/GliderVariations-v1.1.3.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for maltiezcrossbows not found at /home/vintagestory/server/data/vs/Mods/maltiezcrossbows_1.2.0.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for autoconfiglib not found at /home/vintagestory/server/data/vs/Mods/autoconfiglib_2.0.6.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for elephantidae not found at /home/vintagestory/server/data/vs/Mods/FotSA-Elephantidae-v1.0.13.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for rustandrot not found at /home/vintagestory/server/data/vs/Mods/Rustier.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for rivergen not found at /home/vintagestory/server/data/vs/Mods/RiverGen_v1.0.0.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for cervinae not found at /home/vintagestory/server/data/vs/Mods/FotSA-Cervinae-v0.1.6.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for thylacinidae not found at /home/vintagestory/server/data/vs/Mods/FotSA-Thylacinidae-v0.1.3.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for floralzonescaribbeanregion not found at /home/vintagestory/server/data/vs/Mods/FloralZonesCaribbeanRegion-v1.0.17.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for ashlarblockvariants not found at /home/vintagestory/server/data/vs/Mods/AshlarBlockVariants.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for equusbp not found at /home/vintagestory/server/data/vs/Mods/wilderhorses_1.0.2.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for viverridae not found at /home/vintagestory/server/data/vs/Mods/FotSA-Viverridae-v1.0.4.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for petai not found at /home/vintagestory/server/data/vs/Mods/petai_v3.4.3.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for wethology not found at /home/vintagestory/server/data/vs/Mods/Wilderlands Ethology_1.0.0.zip, skipping.
15.6.2025 01:07:21 [Warning] [flawless] Mod zip for configlib not found at /home/vintagestory/server/data/vs/Mods/configlib_1.5.3.zip, skipping.```
Its also locking up clients and forcing alt+F4
Nice, can see this being very useful with the various sites nowadays.