Soncresity Industries Wiki

Developing with SI: Essentials

A guide on how to start developing with SI: Essentials

Introduction

SI: Essentials offers many useful features for developers, such as Utility classes, a configuration system, a custom logger and much more.
All of those features are designed to work on both Fabric and NeoForge in the same way to achieve the best possible experience.
If this is not the case, you will see a notice at the top of the page.

API Changes

Classes and Utilities in the dev.soncresityindustries.es.api.v0 package are experimental and may be changed in any update. As soon as they are stable/finished, they will be moved into the latest API package.

Classes and Utilities in v1, v2, etc. packages are stable and will only be changed rarely. If there is a new change, it will move to a newer API package to prevent mods depending on different versions of SI: Essentials from breaking.

At some point announcements will be made that old, deprecated API packages will be removed in (a) future update(s). This may happen due to their contents being heavily outdated, broken or exploitable.

Thank you for your understanding and support.

Getting Started

Adding the dependency

Maven repo

Currently we do not have a Maven repo set up, so you will need to use CurseMaven for the time being.
Of course modrinth is an option too, but we will only be covering CurseForge here.

Fabric

Fabric API

The Fabric version of SI: Essential requires Fabric API!
Building the Mod requires Fabric Loom 1.15-SNAPSHOT or higher.

Gradle dependency

build.gradle / build.gradle.kts
// Groovy
modImplementation "curse.maven:sies-1306319:7900770"
modImplementation "net.fabricmc.fabric-api:fabric-api:0.141.2+1.21.11"

// Kotlin
modImplementation("curse.maven:sies-1306319:7900770")
modImplementation("net.fabricmc.fabric-api:fabric-api:0.141.2+1.21.11")

fabric.mods.json

fabric.mods.json
"depends": {
  "fabricloader": ">=0.18",
  "minecraft": "1.21.11",
  "fabric-api": ">=0.141.2+1.21.11",
  "sies": ">=2.3.0"
}

NeoForge

Gradle dependency

build.gradle / build.gradle.kts
// Groovy
modImplementation "curse.maven:sies-1306319:7900774"

// Kotlin
modImplementation("curse.maven:sies-1306319:7900774")

neoforge.mods.toml

neoforge.mods.toml
[[dependencies.your_mod_id]]
modId="sies"
type="required"
versionRange="[2.3.0,)"
ordering="AFTER"
side="BOTH"

Next steps

For your next steps, we recommend setting up our custom Logger and (re)writing your configs using the Configuration API.
If you run into any issues, need help setting everything up, or don't understand something, don't hesitate to message us on Discord or create a ticket on our Support page (Coming soon).

On this page