Моды/Switchy
Switchy

Switchy

Play multiple characters in one world! Opt-in, customizable player profiles for hotseat multiplayer, lets plays, plural systems, RP servers, or just for fun!

63.2K
224
mod preview
Serverside player profiles for hotseat multiplayer, adventure maps, and plural systems.
Requires Connector and FFAPI on (neo)forge.

Disclaimer: All mods that manipulate player data have a save corruption risk!
Always take backups of your worlds, especially when updating mods.


Switchy allows players to create profiles, which have their own partial player data, and can be switched between.

Profile data is defined by player-toggleable components, including:

This means you can adjust profiles to only contain some of the above, e.g. just nicknames, skins, and origins.

Usage

Switchy utilizes a command-based text interface with tooltips and clickable text.

Running /switchy help will provide a list of top-level commands, but in short:

  • Run /switchy to edit and switch between profiles
  • Run /switchy components to toggle components
  • Run /switchy import [url].json to import profiles from a Switchy/PK export
  • Run /switchy export to export name/skin data to the clipboard (upload somewhere to import)
    • Switchy exports can also be created/edited using Utter, which preserves exported skin data.

Compatibility

Switchy can be used to switch modded data in a modpack by setting up switchy components in a datapack:

// data/minecraft/switchy_components/inventory/ender_chest.json (minecraft:inventory/ender_chest)
{
  "enabled": true, // whether to load the component at all. use this instead of deleting default files, as they'll regenerate.
  "codec": "inventory", // which codec (from the registry in SwitchyComponentTypes) to use to deserialize the data. defaults to "nbt" (passthrough)
  "path": "EnderItems", // NBT path targeting the part of player.dat to load from / modify to
  "preview": "inventory", // which text previewer (from the registry in SwitchyComponentTypes) to use in chat. null = toString(), use "trunc" for long data. Start with $ to use an NBT path for passthrough components.
  "prefix": "👁 ", // a prefix to add to the text preview, for glanceability
  "emptyChecker": "inventory", // which empty checker (from the registry in SwitchyComponentTypes) to use to prevent profile deletion for precious data. Start with $ to use an NBT path for passthrough components.
  "group": "inventory", // components with a matching group ID will be previewed and toggled as if they're one component
  "default": [], // default value. JSON serialized. set to "$copy" to copy the value from previous. set to null or omit to delete the key from player data as the initial value.
  "hidden": false // hides the component preview in the profiles list (still shown in the components list)
}

Feel free to browse the included components for examples.

You're welcome to PR datapack components (with load conditions), along with any additional previewers etc.

Switching data outside player NBT requires an addon. API TBD - Interested addon devs can hit up the issues page.

Afterword

If you're a plural system (or a friend to one) and appreciate our work, please consider reading and sharing sys.guide, our plurality handbook.

Switchy was our first original minecraft mod, made during the mod jam ModFest: Singularity.
Since making it, the minecraft modding community has given us friendship, mentorship,
endless favours, an outlet for self-expression, and reinforced our passion for software as an art.
Everyone who's been a part of that - and you should know who you are - thank you.

Совместимость

Minecraft: Java Edition

1.20.1–1.21.11.18.2–1.19.4

Создатели

GardenSystem

GardenSystem

Contributor/s

sisby-folk

sisby-folk

Владелец

Детали

Лицензия:LGPL-3.0-only
Опубликован:3 года назад
Обновлён:1 день назад