Sync (Fabric) is an unofficial reimplementation of the Sync mod, that was originally developed by iChun.
As for the brief description of the mod, I think the original one says it all:
This mod provides clones, or as we like to call it, "shells". These shells are basically new individuals, with their own inventory, experience level, and even gamemode.
However, they lack a mind that would control them. That's where the player comes in. Each shell is biometrically tied to the player whose sample was used to create it, and allows the player to "sync" their mind with it, essentially creating multiple player instances.
P.S. - If you aren't brave enough to fight the Wither in Hardcore, you can use this datapack (it will bring back the original Sync Core recipe). Please read this article, if you don't know how to do it.
- You need to craft a
shell constructor
and place it down. - Then you need to provide it with a sample - just
right-click
the thing.
⚠️ WARNING: this action will kill you! In order to create a shell with full health, the constructor must absorb 20HP (40 for Hardcore players). If you don't want to die, you can eat a golden apple to increase your maximum health, or you can hold a totem of undying during the process (which is the only option for Hardcore players). - The shell constructor needs power to work, so put a
treadmill
next to it (it should touch any side of any part of the shell constructor) and lure apig
or awolf
to its center to start generating piggawatts.
You should end up with something like this:
You don't really need a comparator, it's here just to demonstrate that you can determine progress of the shell construction process via strength of the comparator output. - Once your new shell is constructed, you need to craft a
shell storage
and place it down. - Supply it with
redstone power
. - Once doors of the shell storage are open, you can
walk into it
. - You'll see a radial
menu
that displays your shells: Select
the shell you want to transfer your mind into, and enjoy the process!
- You can color-code shells stored in shell storages. Just right-click a shell storage with dye.
- Syncing works cross dimensional, and should support custom dimensions.
- If you die while using a shell, you'll be immediately synced with your original body (if you still have one; otherwise your mind will be transferred to a random shell).
- Death of a shell doesn't increase your death counter.
- Shell can be equipped (or unequipped) with armor, tools, etc. via hoppers connected to a corresponding shell container.
- Shell storage should be constantly supplied with power in order to keep stored shell alive.
- Shell storage can be powered by redstone, if the
shellStorageAcceptsRedstone
option is set totrue
. - Shell storage can be powered by any valid energy source (e.g., treadmills, machinery from popular tech mods, etc.).
- Shell storage can be powered by redstone, if the
- It's possible to measure a shell container's state with a comparator.
- You can determine progress of the shell construction process via strength of the comparator output.
- You can measure the fullness of a shell's inventory via strength of the comparator output.
- You can change a comparator output type by right-clicking on a shell container with a wrench.
- Shell storage and shell constructor are pretty fragile, so don't try to mine them without
silk touch
enchantment.
The mod is highly configurable. The config is located at ./config/sync.json
and by default looks like this:
{
"enableInstantShellConstruction": false,
"warnPlayerInsteadOfKilling": false,
"fingerstickDamage": 20.0,
"hardcoreFingerstickDamage": 40.0,
"shellConstructorCapacity": 256000,
"shellStorageCapacity": 320,
"shellStorageConsumption": 16,
"shellStorageAcceptsRedstone": true,
"shellStorageMaxUnpoweredLifespan": 20,
"energyMap": [
{
"entityId": "minecraft:chicken",
"outputEnergyQuantity": 2
},
{
"entityId": "minecraft:pig",
"outputEnergyQuantity": 16
},
{
"entityId": "minecraft:player",
"outputEnergyQuantity": 20
},
{
"entityId": "minecraft:wolf",
"outputEnergyQuantity": 24
},
{
"entityId": "minecraft:creeper",
"outputEnergyQuantity": 80
},
{
"entityId": "minecraft:enderman",
"outputEnergyQuantity": 160
}
],
"preserveOrigins": false,
"syncPriority": [
{ "priority": "NATURAL" }
],
"wrench": "minecraft:stick",
"updateTranslationsAutomatically": false
}
Name | Description | Default value |
---|---|---|
enableInstantShellConstruction |
If this option is enabled, creative-like shells will be constructed immediately, without the use of energy | false |
warnPlayerInsteadOfKilling |
If this option is enabled, a player won't be killed by a shell constructor if they don't have enough health to create a new shell | false |
fingerstickDamage |
The amount of damage that a shell constructor will deal to a player when they try to create a new shell | 20.0 |
hardcoreFingerstickDamage |
The amount of damage that a shell constructor will deal to a player in the Hardcore mode when they try to create a new shell | 40.0 |
shellConstructorCapacity |
The amount of energy required to construct a new shell | 256000 |
shellStorageCapacity |
Determines capacity of a shell storage's inner battery | 320 |
shellStorageConsumption |
Energy consumption of a shell storage's life support systems (per tick) | 16 |
shellStorageAcceptsRedstone |
If this option is enabled, a shell storage can be powered by redstone | true |
shellStorageMaxUnpoweredLifespan |
Determines how many ticks a shell can survive without a power supply connected to the corresponding shell storage | 20 |
energyMap |
Specifies a list of entities that can produce energy via treadmills | ... |
preserveOrigins |
If this option is enabled, all user shells will share the same origins | false |
syncPriority |
The order of shell selection for synchronization in case of death Available priority values:
|
[{ "priority": "NATURAL" }] |
wrench |
Identifier of an item that can be used as a wrench in order to change a shell constructor's state | minecraft:stick |
updateTranslationsAutomatically |
If this option is enabled, translations will be updated every time the game is launched | false |
You can edit any of these values directly in the config file or via ModMenu.
Sync (Fabric) makes use of crowd sourced translations.
You can help translate the mod to additional languages here: crowdin.com.
- Dynamic shell texturing does not work with Iris (#25)
Requirements:
- Minecraft
1.19.x
- Fabric Loader
>=0.14.0
- Fabric API
>=0.55.1
You can download the mod from:
- GitHub Releases (recommended)
- Modrinth
- CurseForge
- GitHub Actions (these builds may be unstable, but they represent the actual state of the development)
build.gradle
:
repositories {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
content {
includeGroup "maven.modrinth"
}
}
}
dependencies {
modImplementation "maven.modrinth:sync-fabric:${project.sync_version}"
}
gradle.properties
:
sync_version=/* latest version goes here */
There's no documentation for the project's api yet, but you can find some useful examples in the compat
package.
Requirements:
- JDK
17
git clone https://github.com/Kir-Antipov/sync-fabric.git
cd sync-fabric
chmod +x ./gradlew
./gradlew build
cd build/libs
git clone https://github.com/Kir-Antipov/sync-fabric.git
cd sync-fabric
gradlew build
cd build/libs
Created by Kir_Antipov, licensed under MIT license.
Originally made by iChun under GNU LGPLv3 license.
Copyright (C) 2021 Kir_Antipov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Sync (Fabric) was originally licensed under GNU LGPLv3 license to conform to the original mod, but since the project is not a port, but a reimplementation with its own unique codebase, I got permission from iChun to change the license to MIT.
You can find more about the MIT license on this website.