{"id":44678963,"url":"https://github.com/sisby-folk/switchy","last_synced_at":"2026-02-21T06:16:40.405Z","repository":{"id":61791915,"uuid":"524826165","full_name":"sisby-folk/switchy","owner":"sisby-folk","description":"RPG-style character switching for minecraft!","archived":false,"fork":false,"pushed_at":"2025-12-17T22:30:13.000Z","size":2123,"stargazers_count":22,"open_issues_count":6,"forks_count":10,"subscribers_count":1,"default_branch":"1.20","last_synced_at":"2025-12-21T09:44:58.355Z","etag":null,"topics":["java","minecraft"],"latest_commit_sha":null,"homepage":"https://modrinth.com/mod/switchy","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"eupl-1.2","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sisby-folk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-08-15T01:57:36.000Z","updated_at":"2025-12-17T22:30:17.000Z","dependencies_parsed_at":"2024-05-29T04:33:22.986Z","dependency_job_id":"c1efa483-f761-4dbf-b4e7-511c49c1685e","html_url":"https://github.com/sisby-folk/switchy","commit_stats":null,"previous_names":[],"tags_count":133,"template":false,"template_full_name":null,"purl":"pkg:github/sisby-folk/switchy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisby-folk%2Fswitchy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisby-folk%2Fswitchy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisby-folk%2Fswitchy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisby-folk%2Fswitchy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sisby-folk","download_url":"https://codeload.github.com/sisby-folk/switchy/tar.gz/refs/heads/1.20","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisby-folk%2Fswitchy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29468393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T01:01:38.065Z","status":"online","status_checked_at":"2026-02-15T02:00:07.449Z","response_time":118,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","minecraft"],"created_at":"2026-02-15T04:04:48.264Z","updated_at":"2026-02-15T04:04:48.708Z","avatar_url":"https://github.com/sisby-folk.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--suppress HtmlDeprecatedTag, XmlDeprecatedElement --\u003e\n\u003ccenter\u003e\u003cimg alt=\"mod preview\" src=\"https://github.com/user-attachments/assets/213a47e5-55d1-4f46-a109-c1a05f47ced4\"/\u003e\u003c/center\u003e\n\n\u003ccenter\u003e\nServerside player profiles for hotseat multiplayer, adventure maps, and plural systems.\u003cbr/\u003e\n\u003cb\u003eRequires \u003ca href=\"https://modrinth.com/mod/connector\"\u003eConnector\u003c/a\u003e and \u003ca href=\"https://modrinth.com/mod/forgified-fabric-api\"\u003eFFAPI\u003c/a\u003e on (neo)forge.\u003cbr/\u003e\u003c/b\u003e\n\u003c/center\u003e\n\n---\n\n\u003e _**Disclaimer**: All mods that manipulate player data have a save corruption risk!\u003cbr/\u003e\nAlways take backups of your worlds, especially when updating mods._\n\n---\n\n**Switchy** allows players to create **profiles**, which have their own partial player data, and can be switched between.\n\nProfile data is defined by player-toggleable _components_, including:\n- Vanilla health, hunger, status effects, inventory, ender chest, location, spawn point, and xp\n- [Fabric Tailor](https://modrinth.com/mod/fabrictailor) skins\n- [Styled Nicknames](https://modrinth.com/mod/styled-nicknames) nicknames\n- [Trinkets](modrinth.com/mod/trinkets) slots\n- [Origins](https://modrinth.com/mod/origins) origins\n\nThis means you can adjust profiles to only contain some of the above, e.g. just nicknames, skins, and origins.\n\n## Getting Started\n\nBy default, you have just one profile (id `default`). You'll likely want to rename it (`/switchy edit default id [newid]` - click `\u003cedit\u003e` for a shortcut)\n\nBefore going any further, you should configure the data you'd like shared between profiles (i.e, unaffected by switchy). View your available components (`/switchy components`) and disable them as desired (`/switchy components disable [id]` - or click `\u003cshare\u003e` as a shortcut). \n\nCheck your new ID and components look correct in the profile list (`/switchy`) by hovering over the profile name, then, when you're ready, you can switch to a new profile (`/switchy switch [newid]` - or click `\u003cnew\u003e` as a shortcut)\n\nSwitched profile data will he restored to **whatever state it was in when you switched out of that profile** - so to change e.g. a fabric tailor skin for a profile, switch into that profile and then set the skin normally.\n\nProfiles exist per-world, so to speed things up next time, run `/switchy export` to get a copy of your profile names/skins in JSON format (save this to a .json file!)\n\nTo import it on the other end, upload the file somewhere (e.g. [tmpfiles.org](https://tmpfiles.org/)) and paste the link into `/switchy import [url]`. This also works with exports from [PK](https://pluralkit.me/guide/#exporting-your-pluralkit-data) (or  [Utter](https://utter.y2k.diy/), which supports switchy exports, too), and you can also use `/switchy update [url]` to only update existing profiles.\n\n\n## Compatibility\n\nSwitchy can be used to switch modded data in a modpack by setting up **switchy components** in a datapack:\n\n```json5\n// data/minecraft/switchy_components/inventory/ender_chest.json (minecraft:inventory/ender_chest)\n{\n  \"enabled\": true, // whether to load the component at all. use this instead of deleting default files, as they'll regenerate.\n  \"codec\": \"inventory\", // which codec (from the registry in SwitchyComponentTypes) to use to deserialize the data. defaults to \"nbt\" (passthrough)\n  \"path\": \"EnderItems\", // NBT path targeting the part of player.dat to load from / modify to\n  \"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.\n  \"prefix\": \"👁 \", // a prefix to add to the text preview, for glanceability\n  \"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.\n  \"group\": \"inventory\", // components with a matching group ID will be previewed and toggled as if they're one component\n  \"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.\n  \"hidden\": false // hides the component preview in the profiles list (still shown in the components list)\n}\n```\n\nFeel free to browse the [included components](https://github.com/sisby-folk/switchy/tree/1.20/src/main/resources/data) for examples.\n\nYou're welcome to PR datapack components (with load conditions), along with any additional previewers etc.\n\nSwitching data outside player NBT requires an addon. API TBD - Interested addon devs can hit up the [issues page](https://github.com/sisby-folk/switchy/issues).\n\n## Afterword\n\nIf you're a plural system (or a friend to one) and appreciate our work, please consider reading and sharing [sys.guide](https://sys.guide), our plurality handbook.\n\nSwitchy was our first original minecraft mod, made during the mod jam [ModFest: Singularity](https://modfest.net/singularity/submissions).\u003cbr/\u003e\nSince making it, the minecraft modding community has given us friendship, mentorship,\u003cbr/\u003e\nendless favours, an outlet for self-expression, and reinforced our passion for software as an art.\u003cbr/\u003e\nEveryone who's been a part of that - and you should know who you are - thank you.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsisby-folk%2Fswitchy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsisby-folk%2Fswitchy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsisby-folk%2Fswitchy/lists"}