CommonAPI-CommonAPI icon

CommonAPI

A modding library for Dyson Sphere Program. Currently is under development.

Last updated 6 days ago
Total downloads 3628
Total rating 0 
Categories
Dependency string CommonAPI-CommonAPI-1.2.0
Dependants 9 other mods depend on this mod

This mod requires the following mods to function

xiaoye97-BepInEx-5.4.11 icon
xiaoye97-BepInEx

BepInEx5.4.11 mod plugin framework, Mod框架

Preferred version: 5.4.11
xiaoye97-LDBTool-1.8.0 icon
xiaoye97-LDBTool

A pre mod for add and edit Proto data, show Proto data, config mod Proto id, custom localization, custom build bar. 一个用于添加修改查看Proto数据、自定义Mod Proto ID、自定义翻译、自定义建造快捷栏的前置Mod。

Preferred version: 1.8.0
CommonAPI-DSPModSave-1.1.0 icon
CommonAPI-DSPModSave

Library that allows to store mod save data separately from vanilla saves

Preferred version: 1.1.0

README

CommonAPI

A modding library for Dyson Sphere Program. Provides multiple features to make adding custom content to DSP easier.

List of features

  • Easily register new items, recipes and more using ProtoRegistry system
  • Create new buildings with custom behavior and custom UI using ComponentSystem
  • Register new recipe types. This allows to create new machine types without writing almost any code.
  • Register and use custom tabs.
  • Register new KeyBinds that players can rebind
  • Easily create new systems that exist in each Planet or Star. An example of such system is ComponentSystem
  • Picker Extension tool allows to extend behavior of Item and Recipe pickers. For example use any filter defined by a function.
  • Support translation for at least for English, Chinese and Franch by using String Protos

Full list of modules and other utilities can be found here. More will come in the future. If want write your own module and add it to the list you can open a Pull Request. Contrubitions are welcome.

Installation

With Mod Manager

Simply open the mod manager (if you don't have it install it here), select CommonAPI by CommonAPI, then Download.

If prompted to download with dependencies, select Yes. Then just click Start modded, and the game will run with the mod installed.

Manually

Install BepInEx from here
Install LDBTool from here
Install DSPModSave from here

Unzip folder patchers into Dyson Sphere Program/BepInEx/patchers/CommonAPI/ (Create folder named CommonAPI)
Unzip folder plugins into Dyson Sphere Program/BepInEx/plugins/CommonAPI/. (Create folder named CommonAPI)

Feedback and Bug Report

Feel free to contact me via Discord (Kremnev8#3756) for any feedback, bug-reports or suggestions.

How can I support this mod

If you like what I do and would like to support me you can donate.
If you want other means to support me, you can message me on discord about it.

How develop mods using CommonAPI

All features are written as self-contained modules (Inspired by R2API). By default NO modules are loaded. To use a module at the top of your BepInEx plugin class add an attribute CommonAPISubmoduleDependency. That will ensure that specified modules are loaded. Make sure you don't ask to load modules that you are not using.

How to setup development environment

  1. Download and install CommonAPI and its dependencies
  2. Create development environment. You can find how to do that here
  3. Add LDBTool, DSPModSave and CommonAPI assemblies to your references. You can use NuGet to get them. You can find them by typing DysonSphereProgram.Modding into nuget package search.
  4. You also likely will need a Unity Project. You can find instructions on setting that up here

Usage Example

[BepInPlugin(GUID, NAME, VERSION)]

[BepInDependency(CommonAPIPlugin.GUID)]
[CommonAPISubmoduleDependency(nameof(ProtoRegistry), nameof(CustomDescSystem))]
public class MyPlugin : BaseUnityPlugin
{
    public const string MODID = "myplugin";
    public const string GUID = "org.myname.plugin." + MODID;
    public const string NAME = "My Plugin";
    
    void Awake()
    {
        //Make use of modules here
    }
}

This library is still under development.

Changelog

v1.1.0

  • Renamed CustomPlanetSystem to PlanetExtensionSystem
  • Renamed CustomStarSystem to StarExtensionSystem
  • Add show locked item and recipes feature to PickerExtensionModule
  • Improved Icon Generator

v1.0.1

  • Fix issues selecting recipes in Assembler UI

v1.0.0

  • Initial Release

Available versions

Please note that the install buttons only work if you have compatible client software installed, such as the Thunderstore Mod Manager. Otherwise use the zip download links instead.

Upload date Version number Downloads Download link  
2021-11-29 1.2.0 1331 Version 1.2.0 Install
2021-11-26 1.1.0 852 Version 1.1.0 Install
2021-11-19 1.0.1 1315 Version 1.0.1 Install
2021-11-19 1.0.0 130 Version 1.0.0 Install