
Collective is a shared library mod with common code for all of Serilum's mods.
It contains data and functions centralized in one place. Collective helps a great deal in maintaining all the Fabric, Forge and NeoForge mod loader versions.
Having access to the library's code environment, creates possibilities for current and future project features. The updating process is also made easier when there's an improvement for a function that is relevant to many others. For example this means having to update one project, instead of six. This saves time and makes me a little happier.
Features:
- Manages all config files and in-game menu of dependent mods. ¹
- Variables for increased compatibility with other projects.
- Lots of useful functions to prevent code duplication. ²
- An event to replace and resupply entities.
- Allows toggling the functionality of bundled mods. ³
- Contains the access transformers/wideners to use private fields. ⁴
- Networking code to send packets via the Common source set.
- Centralized backwards compatibility for major version changes.
- Optional async update checker for dependent mods that prints to the console.
- Collective manages the translation files for all dependent mods.
- And much more! ⁵
All available config options:
enableUpdateChecker default true
Whether Collective should show a message in the console if a dependent mod has an update available. Update checks are optional and async.
transferItemsBetweenReplacedEntities default true
When enabled, transfer the held items and armour from replaced entities by any of the Entity Spawn mods which depend on Collective.
loopsAmountUsedToGetAllEntityDrops default 100, min 1, max 500
The amount of times Collective loops through possible mob drops to get them all procedurally. Drops are only generated when a dependent mod uses them. Lowering this can increase world load time but decrease accuracy.
findABlockCheckAroundEntitiesDelayMs default 30000, min 0, max 3600000
The delay of the is-there-a-block-around-check around entities in ms. Used in mods which depends on a specific blockstate in the world. Increasing this number can increase TPS if needed.
enablePatronPets default true
Enables pets for Patrons. Will be added in a future release.
downloadNonEnglishTranslations default true
Whether Collective should attempt to download translations if the client language is set to something other than English. Uses files from https://github.com/Serilum/.translations, downloaded via https://translations.serilum.com/. Hosted via CloudFlare Pages.
pushTranslationResourcePack default false
On a server, sends connecting players without Collective a resource pack so custom item names from server-side Serilum mods show up in their own language. Off by default; without it they see the server language instead (see serverLanguage).
requireTranslationResourcePack default true
Marks the resource pack as required, so an accidental decline only kicks the player and asks again next join instead of being remembered for good. Turn off to make it optional.
serverLanguage default en_us
The language Serilum mod text shows in for players without Collective who aren't sent the resource pack. Uses locale codes like en_us or de_de.
itemNameTranslationMode default auto
How custom item names show for players without Collective when the resource pack is off. 'auto' copies the first player to join and remembers it; 'server' always uses the server language; 'client' uses each player's own language, but those without Collective then see raw keys.
1 | Because I use the Multiloader template for all of my mods, there is no built-in config I can use from within the Common code. Collective contains a suite of config code that all dependent mods use. This adds an in-game config menu and generates files in '.minecraft/config/'.
< Common's Config Code >

2 | Over the years, I've added lots of useful code to Collective. Being able to use these makes my life of updating dependent mods a lot easier:
< Common's Functions >
3 | I've released bundles of my mods for easier downloading!
Collective allows enabling/disabling the included mods via some neat code!
< Fabric's Bundle Code >
4 | Access transformers/wideners are used to set and use fields Mojang has made private. Having these in Collective keeps everything organised:
< Fabric's collective.accesswidener >
5 | See the full source code here:
https://github.com/Serilum/Collective
You may freely use this mod in any modpack, as long as the download remains hosted within the CurseForge or Modrinth ecosystem.
Serilum.com contains an overview and more information on all mods available.
Comments are disabled as I'm unable to keep track of them across so many separate mod pages.
For issues, ideas, suggestions or anything else there is the Github repo. Thanks!



