
Avoid
Mod framework that wraps whole Minecraft. Kinda like Bukkit. [#killaislop]
🐦⬛ Avoid allows you to remove net.minecraft references completely from your code.
🧧 Compatibility Matrix:
| Fabric | NeoForge | Sponge | Paper (ALPHA) | ||
|---|---|---|---|---|---|
| 1.21.8 | ✔️ | ❌ | ❌ | ❌ | |
| 1.21.10 | ✔️ | ❌ | ❌ | ❌ | |
| 1.21.11 | ✔️ | ❌ | ✔️ | ✔️ | [LTS¹] |
| 26.1.* | ✔️ | ✔️ | ✔️ | ❌ | [LTS¹] |
| 26.2 | ✔️ | ✔️ | ✔️ | ❌ | |
| 26.3 | ✔️ | ✔️ | ❌ | ❌ | |
| 26.4-snapshot-1 | ✔️ | ❌ | ❌ | ❌ | [TS²] |
Quilt is not supported and will break with the mod.
Paper did not receive the latest update. It will receive the next one, however.
¹ Long Term Support
² Temporary Support
Note: This mod does not require Fabric API!
Note: Some features may not work or be no-op (do nothing) on Paper.
🧮 API-s:
- NBT
- Client Chat
- Server Chat
- Chat Colors
- Chat Components [BETA]
- Identification (Identifier)
- Item Querying [ALPHA]
- Item Components [BETA]
- Editable Item Components [BETA]
- Entity Types [BETA]
- Entity Selectors [ALPHA]
- Transformed Item Components [BETA]
- Client API
- Client Screen API
- Client Screen Widget API
- Client Screen Modifier API
- Client Interaction API
- Font API
- Render Layer API [BETA]
- Command API
- Command Parameter API
- Command Permission API
- Placeholder API [ALPHA]
- Addon Loader (AvoidModLoader)
- Block Creation API [ALPHA]
- Item Creation API [ALPHA]
- Entity API [ALPHA]
- Player API [ALPHA]
- World API [ALPHA]
- Event API [BETA]
- Entity Type Creation API [BETA]
- Entity Model Creation API [BETA]
- Entity Layer API [BETA]
- Entity Renderer Creation API [BETA]
- Fluid API [BETA]
- Fog API [BETA]
- Resource Overriding [ALPHA]
🌲 Events:
▾ Client Chat Events
- ClientChatCommandEvent
- ClientChatReceivedEvent
- ClientChatNormalizeEvent
- ClientChatSentEvent
▾ Client Entity Events
- ClientEntityCreateEvent
- ClientEntityVelocityEvent
▾ Client Keyboard Events [BETA]
- ClientKeyPressEvent
- ClientKeyReleaseEvent
▾ Client GUI Events [ALPHA]
- RenderTextEvent
- RenderOutlineEvent
- RenderHudEvent
- ToastAddEvent
▾ Client Loading Events [BETA]
- ClientLoadingScreenRenderMojangEvent
▾ Client Screen Events
- ScreenInitEvent
- ScreenOpenEvent [BETA]
▾ Client Events
- ClientTickEvent [BETA]
- ClientScreenInPortalEvent [ALPHA]
▾ Server Chat Events
- ServerChatReceivedEvent
- ServerChatSendEvent
- ServerChatSentEvent
▾ Server Command Events
- ServerCommandExecuteEvent
- ServerCommandSuggestEvent
▾ Server Entity Events
- ServerEntityCreateEvent 🧪
- ServerEntityDropEvent
- ServerEntityEffectAddEvent
- ServerEntityEffectRemoveEvent
- ServerEntityEffectUpdateEvent
- ServerEntityStruckByBoltEvent
- ServerEntityVelocityEvent
- ServerEntityInteractEvent
- ServerEntityInsideBlockEvent
- ServerEntityResurrectEvent
- ServerMobSetTargetEvent
- ServerMobClearTargetEvent
-
▾ Llama
- ServerLlamaSpitEvent 🧪
-
▾ Block
- ServerEntityBlockTrampleEvent 🧪
▾ Server Player Events
- ServerPlayerGameModeChangeEvent
- ServerPlayerInputEvent
- ServerPlayerSwingEvent
- ServerPlayerUpdateAbilitiesEvent
- ServerPlayerKickEvent
-
▾ Block
- ServerPlayerCraftSlotEvent
- ServerPlayerSmithingSlotEvent
-
▾ Anvil [BETA]
- ServerPlayerAnvilEnchantmentCompatibilityCheckEvent
- ServerPlayerAnvilFailEvent
- ServerPlayerAnvilNameValidationEvent
- ServerPlayerAnvilSuccessResultEvent
-
▾ XP40 [BETA]
- ServerPlayerAnvilXP40ItemClearEvent
- ServerPlayerAnvilXP40NameChangeCostClampEvent
- ServerPlayerAnvilXP40TriggerStackedEvent
-
▾ Bed [BETA]
- ServerPlayerBedSleepFailEvent
- ServerPlayerBedSleepStopEvent
- ServerPlayerBedSleepSuccessEvent
-
▾ Enchanting Table [BETA]
- ServerPlayerEnchantingTableBookshelfAmountEvent
- ServerPlayerEnchantingTableBookshelfLimitEvent
- ServerPlayerEnchantingTableCostEvent
-
▾ Food [BETA]
- ServerPlayerSetFoodLevelEvent
- ServerPlayerSetSaturationLevelEvent
Some events and/or API-s might've been missed in the listings above.
| GitHub | Wiki |
Note: If you're using my mods, I advise against buying Minecraft.
If you want a new API, event or something else, make a feature request here.
I am working on Avoid very often, but I don't push out releases immediately.
I want to make sure all features I add don't turn out to be total mistakes, so that I (and you, Avoid addon developers) won't have to deal with deprecation or removals.
Also, I may be adding new compatibility options.
Such as Paper support. That takes longer, so sometimes releases may be delayed if they contain those.
👀 But there's hundreds of libraries
I know. This one is created because I don't wanna use others. And because I need full coverage of Minecraft's code.
🧐 What actually is this mod
It's a framework - a mod that other mods can use in their code instead of referring to Minecraft. It exists so that mods can support multiple modloaders and minecraft versions without doing advanced stuff. It also generally simplifies making mods & plugins.
🧽 What about SpongePowered
SpongePowered doesn't seem to support Minecraft Fabric.
Also, I don't think Sponge has client API-s.
🟣 Is Quilt supported?
No! It breaks the mod.
🥳 When new release?
I usually publish releases every 3days-1week.
Sometimes they may be delayed due to lack of ideas or energy.
🛠️ What does Avoid strive to replace?
Avoid strives to provide all functionality possible to remake your mods/plugins in Avoid from:
| Name | Main goals | Completed |
|---|---|---|
| Fabric | mixins, access widening | no |
| Fabric API | networking | no |
| Quilt | loader plugins | no |
| Architectury | not sure tbh | no |
| Fabric Language Kotlin | - | yes |
| Kotlin for Forge | dedicated QoL features for kotlin | no |
| Balm (partially?) | not sure | no |
| Konkrete | not sure | no |
| Collective | not sure | no |
| CreativeCore | ingredients api | no |
| Bookshelf | stuff | no |
| Moonlight Lib | pack creation api | no |
| MaliLib | rendering utilities | no |
| Iceberg | some events | no |
| Resourceful Lib (partially?) | not sure | no |
| Resourceful Config | not sure | no |
| libIPN (partially?) | more modloader methods | no |
| SuperMartjin642's Config Lib | config api | no |
| Trinkets | slot creation & management | no |
| Cristel Lib | conditional datapack loading | no |
| Prism | color utilities | no |
| JamLib | repost checking | no |
Note that Avoid does not currently provide all functionality to replace them. But it may in the future.
What libraries I think may be cool although I never used to be fair (note that i did not check how all of these libraries are used so yk i may change my mind):
- Melody
- GeckoLib
- Forge Config API port (if you're coming from Forge)
- Searchables
- SuperMartjin642's Config Lib
Note that this does not mean I like or not like these projects.
My motivation behind Avoid is purely fun and making mod development better (including for myself [:).
The reasons for why I want to make Avoid the huge framework, are:
- these libraries & modloaders mentioned earlier have one big flaw: use breaks every minecraft update. it's not their fault, it's mojang (each mc update = incompatibilities)
- I want to eliminate the need for libraries. the only libraries mods should need are e.g. forge config api port (it's for easier porting to fabric) or geckolib (advanced animations).
Also note that Avoid will not neccessarily fulfill all uses of those libraries. For example as a key point they may support more Minecraft versions than Avoid. However, the biggest cool thing about Avoid is that, all of its APIs are compatible with each other. With the listed libraries you might experience incompatibilites (I mean, it's natural that there might be.)
Fabric Language Kotlin should be already replaceable with Avoid, as you can add all kotlin dependencies to your avoid.mod.json libraries section, which is sort of a replacement for maven-mirror library mods.
🦘 So far, AvoidLib kept compatibility through all these changes¹:
- [26.1] Rendering Name Refactor
- [26.1] Item Stack Refactor
- [26.1] Stupid World Changes
- [26.1] Stupid Player Changes
- [26.1] Stupid Chat Changes
- [26.2] Entity Refactor
- [26.2] GUI Refactor
- [26.2] Block Item IDs
- [26.3] Block Type Removal
- [26.3] Increased ItemStackNative usage
- [26.3] Entity Delta Tracking
- [26.3] Vertex Modifications
- [26.3] Move to SDL
- [26.3] Move to RenderPearl
- [26.3] PushReaction Refactor
- [26.3] ItemStackTemplate#entrySet() removal
- [26.4] RenderPearl unrefactor
¹ These names may not be accurate,
and some refactorings may be missing.
The content of this page is licensed under All Rights Reserved.
The mod's license is Apache 2.0.
Как поиграть с друзьями с модом Avoid?
Мод Avoid куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Avoid будет готов за пару минут - BungeeHost сделает всё за вас.
