You are viewing a potentially older version of this package. View all versions.
hiccup-ModSync-1.0.6 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.

Date uploaded 2 days ago
Version 1.0.6
Download link hiccup-ModSync-1.0.6.zip
Downloads 2994
Dependency string hiccup-ModSync-1.0.6

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.

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
  • Check the game logs for detailed ModSync information

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.

Troubleshooting

Common Issues:

  1. Timeout Errors

    • Players without ModSync will timeout after 8-10 seconds.
    • This is expected behavior for players without the mod.
  2. Mod Mismatches

    • Check that all required mods are installed. Mods with the "all" tag are considered for syncing.
    • Verify mod versions match between host and client
    • Turn off Lock Lobby if experiencing many mod mismatch issues.
  3. Host doesnt have ModSync

    • Two potentional causes here. Either the host doesnt have modsync, or you are not matching the mods/versions of mods of the host.
    • Unfortunately a known bug for the visual alert to be wrong in this instance. Check log if you need detailed reports.

Debugging:

  • Enable BepInEx logging to see detailed ModSync messages
  • Check the game logs for [ModSync] entries

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.