hiccup-ModSync icon

ModSync

A plugin for Mage Arena that synchronizes mods between host and clients. Press F9 to enable auto-kicking of non matching mod lists.

Last updated 2 days ago
Total downloads 22037
Total rating 10 
Categories Mods Tools Misc
Dependency string hiccup-ModSync-1.1.0
Dependants 31 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

ModSync - Chat-Based Mod Synchronization

A plugin for Mage Arena that synchronizes mods between host and clients.

NEW: FRIENDSMODE configuration! Press F8 to disable all kicking/leaving functionality of modsync, to guarantee your private lobbies arent messed with by modsync.

Features

  • Automatic Detection: Detects when players join and automatically checks their mod compatibility
  • Lobby Lock: Host can enable lobby lock (F9) to kick players with mismatched mods (clients get 10 seconds to respond to mod requests)
  • Visual Feedback: Shows success/error messages in the game UI
  • Renames Lobbies: Automatically names lobbies MODDED: (list of mods)

How It Works

For Hosts:

  1. When a player joins, ModSync sends a mod request to the player.
  2. If the player has ModSync, they respond with their mod list
  3. Host compares mod lists automatically and either accepts or kicks the player.
  • Mods with the "all" tag will be considered when matching mod lists. This means that client side mods should not affect the compatibility between host and player.

For Clients:

  1. When joining a lobby, clients automatically send their mod list to the host
  2. Clients respond to mod requests from the host
  3. If mods don't match, clients receive a mismatch message
  • Most client side mods should be fine to run without getting a mismatch error.

Installation

  1. Install BepInEx for Mage Arena
  2. Place ModSync.dll in the BepInEx/plugins folder

Usage

For Hosts:

  • Press F9 to toggle lobby lock on/off

  • When lobby lock is enabled, players with mismatched mods will be automatically kicked

  • Press F8 to toggle FRIENDSMODE. This will disable all kicking/leaving functionality so modsync does not mess up your private lobbies.

  • This can also be modified in the config file.

For Clients:

  • No manual intervention required
  • ModSync automatically handles synchronization when joining lobbies
  • Check the game logs for detailed ModSync information

Configuration

If your mod can be considered a "cheat" - You MUST add the "all" tag and follow below, or you risk your mod being removed.

Mod developers can specify their mod's sync type by adding a static field or property named modsync:

public static string modsync = "all"; // Requires matching on both host and client - This is what is considered when syncing lobbies
public static string modsync = "host"; // Only required on host - These do not count for syncing lobbies
public static string modsync = "client"; // Only required on client - These do not count for syncing lobbies

here is an example of how an all mod should act:

namespace ExampleMod
{
    [BepInPlugin("com.example.mymod", "My Example Mod", "1.0.0")]
    [BepInProcess("MageArena.exe")]
    [BepInDependency("com.magearena.modsync", BepInDependency.DependencyFlags.HardDependency)]
    public class ExampleMod : BaseUnityPlugin
    {
        // This mod requires both client and host to have it
        public static string modsync = "all";
        
        private void Awake()
        {
            // ModSync dependency is guaranteed by BepInEx hard dependency
            // If ModSync is not present, this mod won't even load
            Logger.LogInfo("ModSync found! Initializing mod...");
            // Your mod initialization code here
        }
    }
}

Note the Bepinex Hard Dependency. This is REQUIRED for mods that can be considered cheats.

Donations

Donations are never required, but appreciated. The mod will always remain free and up-to-date.

Support Development

Modding Discord & Support

You can submit issues or questions in the modding discord, on my mod-releases thread.