
Sync is a Fabric mod library that extends the functionality of Apoli. This mod library backports some features that are present in newer versions of Apoli and brings them to 1.20.1 while also adding new powers, conditions and action types that can be used for developing Origins/Apoli datapacks.
Q: What does Sync stand for? System for Yielding New Capabilities
Q: What is Apoli and its relation to Sync? Apoli is the library mod Origins uses for its powers, conditions and actions. Sync should work right out the bat with any mod that has Apoli or Apoli by itself.
Q: Does Sync works on Forge?
Sync works on Forge with:
How to Install Overgrown's Sync (Mod)
Overgrown's Sync by Overgrown is verified for Fabric across Minecraft versions 1.20.1, 1.21.1 (latest release: 1.12.0, file size: 4.5 MB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.20.1, 1.21.1) and platform (Fabric).
- Make sure you have the compatible loader or environment installed for Fabric.
- Move the downloaded Overgrown's Sync file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version- [Item Cooldown](https://0vergrown.github.io/Sync-Documentation-Website/?file=entity_actions%2Fitem_cooldown.md) (Entity Action Type)
- [Cooldown](https://0vergrown.github.io/Sync-Documentation-Website/?file=item_actions%2Fcooldown.md) (Item Action Type)
- [On Cooldown](https://0vergrown.github.io/Sync-Documentation-Website/?file=item_conditions%2Fon_cooldown.md) (Item Condition Type)
StackOverflowError crash (mutual disguises). Added a ThreadLocal<Boolean> recursion guard (sync$resolving). When Player A is disguised as Player B and vice versa, the first call to getModel()/getSkinTexture() sets the guard to true. When the mixin fires on Player B's entry and tries to chain back to Player A, it sees the guard is active and returns early, letting the original (non-disguised) skin/model through instead of recursing infinitely.This also fixes the "chains through" bug where if A disguises as B who is disguised as C, A will get B's real skin, not C's. The guard ensures disguise resolution never follows more than one hop.
This update also fixes name tags not updating. The old code only checked for CustomName in NBT (never set for players), then fell back to the entity type translation key, showing "Player" for all player disguises. Now for player disguises it looks up the target player's name from the online tab list first, then falls back to
sync$player_name stored in the disguise NBT. For non-player disguises the behavior remains unchanged. But it stores player name in disguise data (DisguiseManager.java + DisguiseAsPlayerAction.java).DisguiseManager.applyDisguise: When the target is a PlayerEntity, stores sync$player_name in the NBT so the nametag mixin can display it and DisguiseAsPlayerAction.buildProfileNbt also stores the resolved profile name in the NBT, covering the offline-player disguise path- Added translation key support for [Message Consumer (Data Type)](https://0vergrown.github.io/Sync-Documentation-Website/?file=data_types%2Fmessage_consumer.md) regex.
- Added
bientity_actionfield to [Body Part Modifier Entry (Data Type)](https://0vergrown.github.io/Sync-Documentation-Website/?file=data_types%2Fbody_part_modifier_entry.md) which allows you to execute bientity actions if a certain body part is hit.
- Adds Attach Rope (Entity Action)
- Adds Attached To Rope (Entity Condition)
- Adds Change Selected Slot (Entity Action)
- Adds Change Slot (Entity Action)
- Adds Prevent Teleport (Power Type)
- Disguised As (Entity Action) has a new NBT field that replaces the Display Name field because you can just use Modify Label Render
- Action On Sending Message is now fixed and works as it should AND I managed to merge the Modify and Prevent Message power types into as well so unlike Eggolib, you can use one power type and use the filters to define the Message parameters, etc
- Adds Body Part Damage Modifier (Power Type)
- Adds Disguise As Player (Entity Action)
- Fixes strange crash caused by Pose (Power Type)
- Explode (Bi-Entity Action)
Changes:
- Clones now inherit the Player's skin overlay from the Entity Texture Overlay (Power Type) if the owner has the power active
- Clones now can have custom skins set with the new
wide_textureandslim_texturefields
Fixes:
- Fixed Clones not executing Bi-Entity Actions when their target bientity action is set. Documentation has also been updated to reflect these changes and for clarity: https://0vergrown.github.io/Sync-Documentation-Website/?file=entity_actions%2Fsummon_clone.md
- Loop (Meta Action Type)
- Disguise As (Entity Action Type)
- Raycast (Entity Action Type)
- Raycast (Entity Condition Type)
- Colliding (Bi-entity Condition Type)
- Perspective (Entity Condition Type)
- Velocity (Entity Condition Type)
- Prevent Creative Flight (Power Type)
- Liberate Power (Bi-entity Action Type)
- Suppress Power (Bi-entity Action Type)
- Transfer (Bi-entity Action Type)
- Toggle Transfer Mode (Entity Action Type)
- Cycle Stolen Power (Entity Action Type)
- Use Selected Stolen Power (Entity Action Type)
- Is Selected Stolen Power (Entity Condition Type)
- Modify Jade Tooltip (Power Type)
Fixed:
EntitySetPower.integrateLoadCallbackandintegrateUnloadCallbackbeing defined but never registered- Fixed Grant All Powers not getting the proper powers
- Added Action On Key Sequence (Power Type)
- Added Data-Driven Keybinds (Data Type)
- Added Action On Sending Message (Power Type)
- Added the Command (Bi-Entity Condition Type) and Execute Command (Bi-Entity Action Type) that were coded by [Jade Juno](https://modrinth.com/user/JadeJuno)
- Added Holder Action (Item Action Type)
- Added Holder Condition (Item Condition Type)
- Added Fuel (Item Condition Type)
- Added Remove Disguise (Entity Action Type)
- Added Disguise (Bi-Entity Action Type)
- Added Disguised (Bi-Entity Condition Type)
- Added Disguised (Entity Condition Type)
- Updated Pose (Power Type) to also use Arm Poses
- [Modify Label Render (Power Type)](https://0vergrown.github.io/Sync-Documentation-Website/?file=power_types%2Fmodify_label_render.md) **replaces** Prevent Label Render (Power Type)
- Added Prevent Label Render (Power Type)
- Added Modify Enchantment Damage Dealt (Power Type)
- Added Energy Swirl (Power Type)
- Added Set No Gravity (Entity Action Type)
- Added Teleport To Spawn (Entity Action Type)
Fixes:
- Modify Enchantment Level (Power Type) now applies enchantments properly
- Sync now works with the [Sinytra Connector](https://modrinth.com/mod/connector) mod
- Modify Player Model (Power Type)
- Player Model Type (Entity Condition)
- Custom Projectile (Both Power Type and Entity Action)
- Edible Item (Power Type)
- Modify Enchantment Level (Power Type)
- Revoke Power (Entity Action)
- Revoke All Powers (Entity Action)
- Grant All Powers (Entity Action)
- The
add_blockandend_actionfields for Ghost Block - Prevent Sprinting Particles (Power Type)
- Save Location (Entity Action)
- Teleport To Saved Location (Entity Action)
- Added
sync:ghost_blockblock action type - Added
override_animationto theModel Part Transformation - Fixed Texture Overlay power converting skin model types to wide model types after leaving and re-entering a world
- Hotfix: If you leave the game and join back, then remove the power from the person who has it the model parts do not change. This is now fixed
- Added
hide_capefield to Entity Texture Overlay - Added
render_as_overlay,red,green,blue, andalphafields to Entity Texture Overlay - Finally made a [Wiki](https://0vergrown.github.io/Sync-Documentation-Website/) where you can find all of the powers, actions, conditions, bientity stuff, etc.
- Added
highlight_icon_textureandhighlight_button_texturefields to theRadial Menu Entry (Data Type)so now you can set custom textures for when you hover over an entry. - Added a
sync:summon_minionandsync:summon_cloneentity action types - Added
sync:set_summon_max_life_ticksentity action type - Added
sync:entity_texture_overlaypower type