Language

Common Storage Lib

Common Storage Lib

Modrinth

A library mod abstracting Capabilities/ApiLookups, Data Attachments, and Item/Fluid/Energy Storage for NeoForge and Fabric

2.1k downloads 11 followers updated 15d ago
latest v0.0.9 Modrinth
Fabric Neoforge 1.21 – 1.21.1 Library

Common Storage Lib

CSL attempts to pick up where Botarium left off in its efforts to make truly cross platform storage implementations possible. CSL, like its predecessor, allows developers to create platform agnostic storage code that can be registered to Fabric and NeoForge's respective APIs. It takes after Fabric's Storage api with immutable resources and item context, but adopts Forge's simulation system.

Unlike its predecessor, CSL makes its abstraction tools that made it possible open for you to use as well. So in addition to abstraction of storage, CSL provides abstraction of fluid resources and ingredients, abstraction of the Data attachment system provided by NeoForge and Fabric, and an abstraction of both loaders "Entity Systems" api (Capabilities on NeoForge, ApiLookup on Fabric). These apis are each in their own module, allowing you to use them independently of the storage abstractions for your own purposes.

To non XPlat Devs

For Neo only/Fabric only projects, CSL also offers some benefit. To Neo developers, immutable resources and item context are extremely useful in usage with storage. CSL automatically handles other mods usage of your item if you make use of item context. Fabric developers might be inclined to use CSL to overcome Fabric's transaction system. A word of caution though: Since the storage still needs to be registered to fabric's storage, you should take caution to make sure you still implement your storage to be compliant with rollbacks. Documentation on how to do this will be provided soon, but it is already natively supported in CSL. Developers looking to have their storage function properly on Fabric should also take care to make sure their storage is rollback compliant.

CSL is currently in Alpha

CSL 0.0.0 provides all the same features Botarium offered and more. While Botarium only supported Energy items/blocks and Fluid items/blocks, CSL supports Energy Item/Blocks/Entities, Fluid item/blocks/entities and Item item/blocks/entities with full compatibility with the Neo and Fabric transfer APIs. While cursory testing has been done, its still very much in the beginning stages.

Please Note:

Fabric does not natively support item storage on items, energy storage on entities, or fluid storage on entities. CSL registers these lookups under its own namespace, so any mod that chooses to use CSL for those specific capabilities will be compatible with each other, but not anything else. This is a Fabric specific issue as Fabric does not currently provide an ApiLookup for these. Energy item/blocks, Fluid item/blocks and Item entities/blocks are all compatible with the larger Fabric and Neoforge modding ecosystem though, and NeoForge is automatically compatible with the aforementioned lookup types.


Socials

youtube-plural
twitch-plural
twitter-plural
kofi-plural
discord-plural
modrinth
curseforge

Check out our other projects

Handcrafted
Chipped
Ad Astra
Tempad
Colorful Azalaeas

Lil Wings
Vitalize
Spirit
Reaper
Experience Obelisk

Versions

Alpha
0.0.9
fabric · 1.21.1 · 15d ago
Fix storage data not saving to item components
21
Alpha
0.0.9
neoforge · 1.21.1 · 15d ago
Fix storage data not saving to item components
92
Alpha
0.0.8
fabric · 1.21.1 · 22d ago
Neoforge - Add level data attachment syncing - Fix data not saving automatically in certain instances Fabric - Fix data being wiped after a transfer - Fix…
10
Alpha
0.0.8
neoforge · 1.21.1 · 22d ago
Neoforge - Add level data attachment syncing - Fix data not saving automatically in certain instances Fabric - Fix data being wiped after a transfer - Fix…
17
Alpha
0.0.7
fabric · 1.21.1 · 14mo ago
Neoforge - Add level data attachment syncing - Fix data not saving automatically in certain instances Fabric - Fix data being wiped after a transfer - Fix…
153
Alpha
0.0.7
neoforge · 1.21.1 · 14mo ago
Neoforge - Add level data attachment syncing - Fix data not saving automatically in certain instances Fabric - Fix data being wiped after a transfer - Fix…
412
Alpha
0.0.5
fabric · 1.21 · 19mo ago
- Fix nullability issue with Fabric energy storage
142
Alpha
0.0.5
neoforge · 1.21 · 19mo ago
- Fix nullability issue with Fabric energy storage
85
Alpha
0.0.4
fabric · 1.21 · 19mo ago
- Fix fluid ingredient codec in debug mode - Fix data module entry points not existing on fabric - Update energy lib
71
Alpha
0.0.4
neoforge · 1.21 · 19mo ago
- Fix fluid ingredient codec in debug mode - Fix data module entry points not existing on fabric - Update energy lib
72
Alpha
0.0.3
fabric · 1.21 · 19mo ago
Fix mixin file name
62
Alpha
0.0.3
neoforge · 1.21 · 19mo ago
Fix mixin file name
75

Comments 0

No comments yet. Be the first to share your thoughts.