What is MSync?MSync (
MySQL
Synchronization) is a tool to help multi-server communities with their server management. By connecting ULib and ULX to a database, you are able to synchronize server data such as user groups and bans, without the need to manually add data on all your servers, or buying expensive software. Using our module-loader, any developer is able to extend MSyncs functionality very easily. Thanks to our in-game GUI ( accessible using !msync ) you are able to easily configurate MSync's settings from in-game, without the need to edit any Lua file. Our whole intention with MSync was to give the user an easy but powerfull experience.
You can get the addon either using the Steam Workshop, which provides auto-updates ( recommended ) or GitHub.
Steam Workshop:
https://steamcommunity.com/sharedfiles/filedetails/?id=1636008512GitHub:
https://github.com/Aperture-Development/MSync-2How to installYou need to install some things manually on the Server in order for MSync to work.
First you need libmysql on windows or libmysqlclient on linux. You can find them here: Windows:
https://github.com/FredyH/MySQLOO/raw/master/MySQL/lib/windows/libmysql.dll Linux:
https://github.com/FredyH/MySQLOO/raw/master/MySQL/lib/linux/libmysqlclient.so.18 Put the file in the same folder where your scrds.exe or your scrds_linux file is.
Then you need MySQLoo 9 or higher. You can download MySQLoo from here: https://github.com/FredyH/MySQLOO/releases Select win32 if your server runs on windows, otherwise use the linux dll. Put the dll file in your lua/bin folder. If you don't have one, create it. it should look like this:
bin
garrysmod
->lua
-->bin
--->gmsv_mysql_<version>.dll
After that just install the addon by putting it in your servers workshop collection or download the zip file from github and put the folder in your servers addon folder: https://github.com/Aperture-Development/MSync-2/archive/master.zip When the server is started, everything should be ready for MSync 2. You can access the admin gui using "!msync"
Features
Server Groups:
Server groups allow you to group your servers in sub teams. Modules will just sync things that are explicity told to sync it across all servers, otherwise it will just sync it with servers that have the same server group.
MRSync:
MySQL Rank Synchronisation
MRSync allows you to synchronise your staff team across your servers without the need to add/remove a staff member on every server. Just add a user to a rank and he will also have the rank on all other servers. For now it is important that the ranks you synchronise also exist on all servers.
You want some ranks to not be synced? There is a rank blacklist for ranks that dont get saved to the database. Just add the rank and you are good to go.
You want some ranks to be synced across all servers and some just for ( as example ) your DarkRP servers? The server_group option allows you to do just that. Just sub-categorise your servers and your ranks now just get synced within this group. You can exclude ranks from that rule and force them to synchronise across all servers using the allserver table, all ranks in that table get saved as ranks for the whole network.
MBSync:
MySQL Ban Synchronisation
MBSync allos you to synchronise your bans across all servers ( network bans ). This Module is also server_group bound, means when you ban a user on a server in the group darkrp they don't get banned on servers with a different group unless specified by setting [global] to "true".
Commands:
!mban - Opens ban GUI
!mban [Name] [Length] [global] [Reason] - bans a player
!mbanid [SteamID/SteamID64] [Length] [global] [Reason] - bans a players steamid
!munban [SteamID/SteamID64] - unbans a player
!mbsync - Opens Ban list
!mcheck [SteamID/SteamID64] - Checks if the given steamid if it is banned
!medit [BanID] [Length] [Global] [Reason] - Edits a ban
Console Commands:
msync.mbsync.banPlayer [Name] [Length] [global] [Reason] - bans a player
msync.mbsync.bansteamid [SteamID/SteamID64] [Length] [global] [Reason] - bans a players steamid
msync.mbsync.unbanid [SteamID/SteamID64] - unbans a player
msync.mbsync.checkBan [SteamID/SteamID64] - Checks if the given steamid if it is banned
msync.mbsync.editBan [BanID] [Length] [Global] [Reason] - Edits a ban
Planned Features
UTime synchronisation - Codename: MUSync
MySQL Time System - Codename: MTS
MySQL Warning system - Codename: MWS
Permission synchronisation - Codename: MPSync
MSync synchronisation - Codename: MSSync
Other informations
Who am I?
I am a german software developer developing various software using PHP, JS, Lua, SQL and C++. I have been a developer since 2014 and since then I have been continiously working on expanding my knowledge. You may recognize me from other addons, such as MSync version 1 or the WoltLab Community Bridge. I always strive to give my users the best experience and improove my products constantly.
Website: https://www.Aperture-Development.de
Discord: https://discordapp.com/invite/JpDPa6w
MSync 2 is licensed under by-nc-sa 4.0 by default. A commercial license can be obtained for free by visiting my website https://www.Aperture-Development.de