No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-10 20:15:28 -04:00
lib/LiteNetLib Rename to Koikatsu Multiplayer - Character Maker (KMCM); the Koikatsu Sunshine build is KKSMCM.dll 2026-10-10 20:15:28 -04:00
src Rename to Koikatsu Multiplayer - Character Maker (KMCM); the Koikatsu Sunshine build is KKSMCM.dll 2026-10-10 20:15:28 -04:00
.gitattributes KoikatsuCharacterCreationPvP 1.0.0 2026-10-10 19:39:40 -04:00
.gitignore KoikatsuCharacterCreationPvP 1.0.0 2026-10-10 19:39:40 -04:00
KKSMCM.csproj Rename to Koikatsu Multiplayer - Character Maker (KMCM); the Koikatsu Sunshine build is KKSMCM.dll 2026-10-10 20:15:28 -04:00
LICENSE KoikatsuCharacterCreationPvP 1.0.0 2026-10-10 19:39:40 -04:00
nuget.config KoikatsuCharacterCreationPvP 1.0.0 2026-10-10 19:39:40 -04:00
README.md Rename to Koikatsu Multiplayer - Character Maker (KMCM); the Koikatsu Sunshine build is KKSMCM.dll 2026-10-10 20:15:28 -04:00

Koikatsu Multiplayer - Character Maker (KMCM)

Edit one character together in Koikatsu Sunshine's character maker. One person hosts, friends join, and everyone sees each other's changes as they make them.

This is the Koikatsu Sunshine version, KKSMCM. Koikatsu (KK) isn't supported yet.

What syncs as you edit:

  • every face and body shape slider
  • face, body, hair, clothing and accessory settings: colors, item choices (hair styles, clothes, accessories, eyebrows, eyes, makeup, patterns, emblems), accessory positions and the other sliders

Everything else on the character, including data other plugins save on the card (overlays, ABMX and so on), syncs when the host loads a card or an outfit, or clicks Resend character to guests.

Install

Requires BepInEx 5.4, KKSAPI 1.48.1 or later, Sideloader and ExtensibleSaveFormat. Extract the release zip into the game folder, or put KKSMCM.dll in BepInEx/plugins yourself.

Use

Open the character maker and press Ctrl+M (configurable).

  • Host: click Host, then Copy invite code and send the code to your friends.
  • Join: open the maker for the same sex as the host, paste the invite code and click Join.

By default the host is asked before each guest comes in. Up to 8 guests can join.

The invite code lists every address the host can be reached at (home network, internet, and virtual LANs such as Hamachi, Radmin VPN, Tailscale or ZeroTier) and a key for this session; the game tries them all. Only people with the code can join, and a new code is made each time you host, so a code from an earlier session won't work. Everyone needs the same version of this mod. Traffic isn't encrypted, so share codes only with people you trust and don't play on networks you don't.

The host's character is the shared one. Only the host can do these while others are joined:

  • load a card or an outfit
  • add or remove accessory slots
  • change data other plugins keep on the card (overlays, ABMX, Stiletto, Push-Up and so on); the host sends it with Resend character to guests

A guest who loads a card or an outfit, or changes accessory slots, gets the host's character back. A guest's changes to other plugins' data stay on their screen only, until the host's next resend replaces them.

The - button in the window's title bar folds it down to one line; + opens it again.

Different installs

When you join, your install is compared with the host's before the character is sent:

  • A different game version, or a maker for the other sex, can't join.
  • If the character uses zipmods you're missing or have a different version of, you get a list and choose whether to join anyway. Mods are never sent between players.
  • Plugin differences are listed too. A host can turn on Require same plugins in the config.

To make the comparison, the guest's list of plugins and zipmods goes to the host, and the host's list of zipmods goes to the guest.

Playing over the internet

When Open my router port automatically is ticked, hosting asks your router (UPnP) to forward the port to your PC, and closes it again when you stop. The window says whether it worked.

When the port can't be opened, friends can still often join: if their direct connection fails, their window shows a reply code to send you, which you paste into yours. Both games then reach each other through your routers (UDP hole punching). To find out the public address its router gives it, each game asks a STUN server, stun.l.google.com:19302 by default, which sees its IP address. The host only asks when the router port couldn't be opened, and a guest only when the direct connection failed. The server can be changed in the config. This doesn't work when either player's router hands out a new port for every connection, which is common on mobile connections.

If friends can't connect:

  • Windows Firewall. The first time you host, Windows asks whether to let Koikatsu Sunshine accept connections, and by default only allows it on Private networks. If your home network is set to Public, nobody can join. Either set your network to Private (Settings > Network & Internet > your network > Network profile), or allow Koikatsu Sunshine on public networks (Windows Security > Firewall & network protection > Allow an app through firewall). The window warns you when this applies.
  • The router won't forward the port. Turn on UPnP in the router's settings, or forward the port (TCP, default 47475) to your PC yourself. Some internet providers block incoming connections entirely; then only a virtual LAN such as Tailscale or ZeroTier works.
  • Your provider shares your internet address (CGNAT). Port forwarding can't work; the window tells you when this is the case. Use a virtual LAN such as Tailscale or ZeroTier.

Settings

In the plugin settings (F1), under Koikatsu Multiplayer - Character Maker:

Setting Default
Toggle window Ctrl+M Shows or hides the window.
Player name Player Your name in the session.
Window scale 0 0 sizes the window to the screen.
Host port 47475 The port to host on.
Open router port automatically on Asks the router (UPnP) to forward the port while hosting.
STUN server stun.l.google.com:19302 See above.
Require same plugins off Only lets in guests with exactly your plugins and plugin versions.
Ask before letting guests in on When off, anyone with your invite code joins straight away.

Build

dotnet build -c Release. References come from NuGet, so no game install is needed. To copy each build into the game, create GameDir.props next to KKSMCM.csproj:

<Project><PropertyGroup><GameDir>C:\path\to\Koikatsu Sunshine</GameDir></PropertyGroup></Project>

License

MIT. Includes LiteNetLib 0.9.5.2 by Ruslan Pyrch (MIT, see lib/LiteNetLib/LICENSE.txt). Its types are internal to this plugin, and a limit on the size of incoming messages is added in NetPeer.cs (marked "KMCM").