Mods / FairPlayGuardian

Tags:
Utility
Author:
Th3Dilli
Side:
Both
Created:
May 8th 2023 at 9:17 PM
Last modified:
Apr 22nd at 9:49 AM
Downloads:
74395
Follow Unfollow 74
Latest release (for Vintage Story 1.21.0-pre.1 - 1.21.6 and 1.22.0-pre.1 - 1.22.0, potentially outdated):
fairplayguardian_1.2.2.zip  1-click install

 

What is this mod about?

This mod adds the ability for server admins to restrict the usage of client side mods.
Be aware this can't and wont stop every cheat possible but "most".

 

Note:

If you want to enable other version of the game to join the server you need to add them to the allowlist.

 

Vintagestory modblacklist

Fairplayguardian not required

If you just need to block certain mods only you can make use of the games feature to do so. That will prevent clients from loading mods listed in the blacklist. You can blacklist mods without this mod by adding the mods you want to block to the serverconfig.json.

"ModIdBlackList": [ "modid" ],
// multiple
"ModIdBlackList": [ "modid1", "modid2" ],

same applies to the "ModIdWhiteList", this will block any other mod that is not whitelisted by default.
Those two configs will allow players to join but disable black listed or not white listed mods automatically for those players.

If you need more control then FairPlayGuardian is for you.



Features

  • Block/Allow specific client mods
  • check integrity of mods using SHA256 hash sum
  • look for Harmony patches

 

Commands: (admin)

  • .fpg list
  • .fpg addall allow
  • .fpg add allow fairplayguardian
  • .fpg add block somemodid
If you use the commands `add` or `addall` make sure to todo `/autosavenow` so it saves the changes to the config file so you can see it.

For help, discussion or suggestions join the Discord Server

 

For further info see Gitlab Readme

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
1.2.2 fairplayguardian
1.21.0-pre.1 - 1.21.6 1.22.0-pre.1 - 1.22.0
7675 Feb 14th at 12:51 PM fairplayguardian_1.2.2.zip 1-click install

There was a "bug" that with DisableMismatchCheck enabled it would not kick for completly missing mods which was used by a common bypass, this should fix it for now (this may not last for ever) but better then nothing

1.2.1 fairplayguardian 15572 Sep 21st 2025 at 9:21 AM fairplayguardian_1.2.1.zip 1-click install

Last update did not actually contain that fix, now it does, sorry
Fixed issue getting kicked when joining for the first time

1.2.0 fairplayguardian 955 Sep 10th 2025 at 9:36 AM fairplayguardian_1.2.0.zip 1-click install

Fixed issue getting kicked when joining for the first time

1.1.9 fairplayguardian
1.20.11-rc.1 - 1.20.12 1.21.0-rc.1 - 1.21.0
16142 May 10th 2025 at 8:07 PM fairplayguardian_1.1.9.zip 1-click install

This release is only compatible with 1..20.11-rc.1 or newer

 

1.1.8 fairplayguardian
1.20.5 - 1.20.7 1.20.8 - 1.20.10
7207 Feb 19th 2025 at 4:16 PM fairplayguardian_1.1.8.zip 1-click install

fixed error when kicking players since 1.20.4

1.1.7 fairplayguardian 15437 Feb 2nd 2024 at 4:18 PM fairplayguardian_1.1.7.zip 1-click install

- do not display mismatched mods when Dissablemismatched is true

1.1.6 fairplayguardian 464 Feb 2nd 2024 at 12:11 PM fairplayguardian_1.1.6.zip 1-click install
  • override check with allow list values so you can use customized server side versions of mods
  • added serverside command /fpg clear block/allow
  • added serverside command /fpg kick true/false
  • when sending client mods using .fpg add/addall it now will check if the mod is already in the list
1.1.5 fairplayguardian 1747 Dec 18th 2023 at 10:01 PM fairplayguardian_1.1.5.zip 1-click install

Fix issue with some mods that are not required on the client

1.1.4 fairplayguardian 1191 Oct 28th 2023 at 7:37 PM fairplayguardian_1.1.4.zip 1-click install

- fixes one Null Pointer Exception (FairPlayGuardian.ModCompare.ToShortString())
- should mitigate any Null Pointer Exceptions within the mod

1.1.3 fairplayguardian 3879 Aug 9th 2023 at 8:46 PM fairplayguardian_1.1.3.zip 1-click install

updated to net7 - no new features yet

1.1.2 fairplayguardian 2793 May 15th 2023 at 10:34 AM FairPlayGuardian_1.1.2.zip 1-click install

added option to disable the mismatch check - can be usuful if server uses a different version then client, but be carefull since then some one could use modified mods

removed hash from client disconnect error

1.1.1 fairplayguardian 486 May 12th 2023 at 5:02 PM FairPlayGuardian_1.1.1.zip 1-click install

fixed issue when logging patches without a owner defined
added option to log all mods on join to audit log

1.1.0 fairplayguardian 452 May 10th 2023 at 10:16 AM FairPlayGuardian_1.1.0.zip 1-click install

hotfix to address an issue with enforcing none server side mods
fixes client crash issue msotly (WIP) should show a message now on kick

1.0.0 fairplayguardian 395 May 9th 2023 at 9:35 PM FairPlayGuardian_1.0.0.zip 1-click install

intial release


30 Comments (oldest first | newest first) (threaded | flat)

AgeofSeraphs, May 25th at 2:43 PM

Th3Dilli Been getting an error since 1.21 where a user joins, has mods not allowed by the server, gets kick message saying "Server password protected or whitelisted".  It no longer advises people of mod mismatches.  I thought with time it'd resolve, but it hasn't and I am unsure if this is explicit to us.  

Naturally this is a big issue, if the players don't know which mods they're being kicked for or do not match versions, then they have no ability to amend it.  The only recourse is staff going into console and pulling the kick message, see below

25.5.2026 14:40:48 [Server Notification] Client 4 disconnected: Error using blocked mods: blocksoverlay (v4.9.0)
using mismatched Mods:
25.5.2026 14:40:48 [Server Notification] Last player disconnected, compacting large object heap...
25.5.2026 14:40:49 [Server Debug] Despawn player entity OwIing.
25.5.2026 14:40:49 [Server Event] Player OwIing got removed. Reason: uses mods not allowed on this server

PARTIZAN_N, May 11th at 4:08 PM

Im using allow mode, if a player has a mod not from a whitelist, he will be kicked. I added to fairplay guardian config survival, game, creative built-in mods for both 1.22.1 and 1.22.2, so that players can play on different minor versions, but people with 1.22.1 are still being kicked. Can i fix this somehow? 

 

hardware_despair, Apr 1st at 12:12 PM

Hello, I am starting a new server and I am just trying to blacklist Block overlay. I am on your GitHub page trying to figure out these instructions, but in each example, you show the need to enter the mod's Hash #.
I have looked in the mod's JSON file and there is no Hash # listed. Also, when I google it tells me the hash can be found at the end of the site address, but that is not a number. It is xray. Is xray the hash?
I haven't actually installed it on my server yet. I wanted to wait and make sure i could get it working to minimize downtime.

PARTIZAN_N, Mar 11th at 10:52 AM

One of the best mods, thank you 😀

 

 

OddSivren, Mar 10th at 7:04 AM

I added this to my Server and over half of my Server mods stopped working 😅

TanjBear, Feb 18th at 7:28 PM (modified Feb 18th at 8:33 PM)

we'er trying to get chisel wizard to work. its on the server but no one can use it unless its also on their client. even when the ckient matches the servers version the players get kicked. Edit "disablemismatch true" fixed it. A vieo on this mod would be helpful.

Stason4ikRU, Feb 5th at 6:55 PM (modified Feb 5th at 6:57 PM)

ItsCheif I have the same thing. It blocks other mods on the client even if they are not blacklisted.

I also changed the id in the archive of the mod that banned and Fair Play does not kick me. The mode is worth Allow, the mod is blacklisted

 

Th3Dilli , Dec 15th 2025 at 1:32 PM

ItsCheif
that error looks like you are missing FPG on the server

ItsCheif, Dec 8th 2025 at 6:54 PM (modified Dec 8th 2025 at 8:04 PM)

v.1.21.5
Says here that I can use the default built in feature of "ModIdBlackList": [ "modid" ]," to blacklist mods without this mod, but I've tried this and it doesn't work. Neither the mod blacklist or whitelist features prevented me from joining my own server with the mods that aren't allowed.

 

Furthermore, while using this mod on 1.21.5 and running the command ".fpg add block blocksoverlay", it doesn't work. It just says "Argument 3 (addhash) is missing"

EDIT: Turns out the base game's mod blacklist feature only disables the mod on the clientside without denying the user entry to the server.
EDIT 2:
I have the mod set to block mode and edited the mod config file to block 1 single mod. When I join, regardless of whether I have the mod on or off, my game crashes with this errror:

Crash Report
System.Exception: Attempting to send data to a not connected channel. For optionally dependent network channels test if your channel is Connected before sending data.
at Vintagestory.Client.NoObf.NetworkChannel.SendPacket[T](T message) in VintagestoryLib\Client\API\NetworkChannel.cs:line 85
at FairPlayGuardian.FairPlayGuardianClient.b__8_0(EnumHandling& _) in /home/dilli/drive_linux/git_repos/vintagestory/mods/FairPlayGuardian/FairPlayGuardian/FairPlayGuardianClient.cs:line 51
at Vintagestory.Client.NoObf.ClientEventAPI.TriggerIsPlayerReady() in VintagestoryLib\Client\API\ClientEventAPI.cs:line 428
at Vintagestory.Client.NoObf.GeneralPacketHandler.HandlePlayerData(Packet_Server packet) in VintagestoryLib\Client\Systems\GeneralPacketHandler.cs:line 317
at Vintagestory.Client.NoObf.ProcessPacketTask.ProcessPacket(Packet_Server packet) in VintagestoryLib\Client\Systems\ProcessPacketTask.cs:line 18
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 298
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 760
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 663
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 112
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 338
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 133
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95
Stason4ikRU, Nov 8th 2025 at 7:10 PM

Allow mode dont work. Kick for server mods. As soon as I add the Xrey mod to the block through the config, I immediately get kicked from the server as in the pictureimage

captanredbeard, Nov 4th 2025 at 5:29 PM (modified Nov 4th 2025 at 5:29 PM)

Th3Dilli Would you consider adding a player ignore list? That way we can use the username or UUID of a player to disable block/allow list checks fro that individual player.

Necromunger, Aug 28th 2025 at 3:55 PM

When DisableMismatchCheck is false, players are kicked once for mismatch of the servers mods.
But when they rejoin they can play just fine without being kicked.

Seojin, Jun 6th 2025 at 12:57 AM

This mod is a genuine god send for large communities. I cannot thank you enough for making it and updating it. Awesome work.

Vinter_Nacht, Feb 19th 2025 at 10:24 PM

Such a wonderful tool, I have much gratitude for this existing.

Mendall, Feb 19th 2025 at 10:01 PM

😒

Boukyaku, Aug 3rd 2024 at 7:46 AM

I love this, thank you!

Th3Dilli , Jul 20th 2024 at 10:35 AM

yeah

Wahazar, Jul 18th 2024 at 4:26 PM

Does it works with current version? 

Bazim, Apr 4th 2024 at 7:35 PM

For a public server, this is a must have. Thank you for it!

Th3Dilli , Dec 27th 2023 at 8:23 PM

Mohandar

This mod only check and verify's mods (so the client does not use unwanted mods) it does not do anything with downloading mods from moddb and will never

 

Mohandar, Dec 24th 2023 at 1:48 AM

Th3Dilli
does it as well  force-downloads for those mods? (it would be so nice, where for example some mod have some trouble being downloaded by the vanilla game)

Nicodemus, Nov 30th 2023 at 4:09 PM

ValidUser

Well, if you join a server and your "client side business" has an impact on other players (on their potential resources, for example...), then yes, it's logic that admins should have the right not to allow it. Maybe try to think of others next time plz.

Th3Dilli , Sep 2nd 2023 at 10:52 AM

wXDogeKingXw

that is what the mod is for to restrict mods from the server side, you should be able to customize the configuration and then it should be able to detect mods that are unwanted and kick players for it if set to do so

Nikwuh, Sep 1st 2023 at 11:18 PM

Can you update to like, stop Xel Xray Mod?

ValidUser, Aug 10th 2023 at 1:27 AM

Oh yay another nanny-net addition. What we do on the client-side is our buisness and NOONE EVER has the right to try and control that REGARDLESS of your intent. Major -respect for this one.

Rythillian, May 13th 2023 at 5:38 AM

Ah I see, thanks for explanation. Sounds very handy then as an extra layer of server protection!

Th3Dilli , May 10th 2023 at 7:20 PM

it can do integrity checks using hashes and it has more options to configure it
you can configure if you wanna accept additional mods or not in vanilla it always accepts additional you can just block specific ones

but if all you need is to block only a few specific mods then sure i would recommend you to use the inbuild feature

Rythillian, May 10th 2023 at 7:16 PM

How is this different from the "Tweak: Added ability for server owners to blacklist client side mods. Add "ModIdBlackList": ["modid1","modid2"], to server config." added in rc-3/4?

Nicodemus, May 10th 2023 at 2:50 AM

\o/ Yep, thanks a lot!

Teknik, May 10th 2023 at 1:31 AM

Awesome dude ! Thanks