promotional bannermobile promotional banner

Collective

šŸŽ“ Collective is a shared library with common code for all of Serilum's mods.
affiliate banner image

A Serilum Mod. Made with love. Lots of active mods for Fabric, Forge and Neo!

CurseForge Modrinth Patreon YouTube


About the mod

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:

  • Variables for increased compatibility with other projects.
  • Lots of useful functions to prevent code duplication. ¹
  • An event to replace and resupply entities.
  • 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.

 
For every dependent mod:

  • Manages its config file and in-game config menu. ³
  • Allows toggling its functionality, also when it's included in a bundle. ā“
  • The /collective config command to view and change its config.
  • Syncs its config values from the server to players, when the mod needs it.
  • Manages its translation files.
  • An optional async update checker that prints to the console.
  • Remembers specific blocks players have placed, when the mod requests it.
  • Allows it to add its own options to the Create World screen.
  • And much more! āµ



Configurable

Configuration guide

   All available config options:

disabledSerilumMods  default ""
The Serilum mods that are turned off, picked from the ones installed. A mod's own 'Enable' setting follows this list, and the other way round. Takes effect after a restart.

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.

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.

commandsAskForConfirmation  default true
Whether commands of Serilum's mods that overwrite or change a lot at once first ask you to click [Confirm].

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.

configScreenGuiScale  default 0, min 0, max 10
The GUI scale of the config screens of Serilum's mods, also set with the button next to the ? on those screens. 0 uses the game's own GUI scale.

updateMinecraftWindowTitleInDevMode  default false
Used in my local development flow. Has no effect in production, only when ran from an IDE with Collective installed.




Commands

The Collective config commands work for all of Serilum's dependent mods that use configs. Editing these requires cheat-access.

/collective - Shows the usage of commands.
/collective config - Lists the mods with a config.
/collective config <modid> - Shows all settings of a mod and their values.
/collective config <modid> get <setting> - Shows a setting's value, description and default.
/collective config <modid> set <setting> <value> - Changes a setting.
/collective config <modid> reset <setting> - Resets a setting to its default.
/collective config <modid> add <setting> <id> - Adds a block, item, entity, biome or other id to a list setting.
/collective config <modid> add <setting> <id> <amount> - Adds an id with an amount or weight, for list settings that use them.
/collective config <modid> remove <setting> <id> - Removes a block, item, entity, biome or other id from a list setting.
/collective config <modid> reload - Reloads all manual changes to the mod's config file.
/collective reset headcache - Resets the cached player head data, for example to update skins.




Description

1 | 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 >



2 | 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 >



3 | 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/serilum/'.
< Common's Config Code >





4 | 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 >



5 | See the full source code here:
https://github.com/Serilum/Collective




Notes and links

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!


Collective Team

profile avatar
Owner
Hammer Lord tier icon
  • 3.0K
    Followers
  • 363
    Projects
  • 935.7M
    Downloads

Makes Minecraft mods and a few other random bits of software. I love projects. > DMs are disabled, please use the `Serilum/.issue-tracker` on GitHub! ā¤ļøŽ

Donate

More from SerilumView all