90 lines
3.7 KiB
Markdown
90 lines
3.7 KiB
Markdown
---
|
||
title: Plugin Development
|
||
description: Information about creating and maintaining plugin for SE Launcher (CringeLauncher)
|
||
published: true
|
||
date: 2025-07-07T13:40:59.987Z
|
||
tags:
|
||
editor: markdown
|
||
dateCreated: 2025-07-07T12:39:12.054Z
|
||
---
|
||
|
||
# Plugin Development
|
||
|
||
Client plugins in **SE Launcher (CringeLauncher)** are designed to be significantly more powerful than regular Steam Workshop mods. They have the ability to **modify game behavior at runtime**, access **internal APIs**, and even **patch the game code**, including sensitive components like the **DirectX 11 renderer** of the game engine. This allows for extensive customization and feature development well beyond the capabilities of the vanilla modding system.
|
||
|
||
> **Note**: Prior experience with **C# programming** is **required** to start developing plugins.
|
||
|
||
You can start learning C# here:
|
||
- [Get started with C#](https://learn.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/)
|
||
- [Introduction to C# in .NET](https://learn.microsoft.com/en-us/dotnet/csharp/)
|
||
|
||
---
|
||
|
||
## Getting Started
|
||
|
||
To begin developing plugins for SE Launcher, follow the steps below:
|
||
|
||
### 1. Choose and Install an IDE
|
||
|
||
You will need a C#-capable integrated development environment. Below are some popular free options:
|
||
|
||
- **Visual Studio 2022 Community Edition**
|
||
[https://visualstudio.microsoft.com/vs/community/](https://visualstudio.microsoft.com/vs/community/)
|
||
|
||
- **JetBrains Rider (Free for Non-Commercial Use)**
|
||
[https://www.jetbrains.com/rider/](https://www.jetbrains.com/rider/)
|
||
|
||
- **Visual Studio Code + C# Extension**
|
||
Download VS Code: [https://code.visualstudio.com/](https://code.visualstudio.com/)
|
||
Install the C# extension: [https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit)
|
||
|
||
### 2. Install Plugin Templates
|
||
|
||
To create a plugin project, you need to install the official templates. Open a terminal or command prompt and execute:
|
||
|
||
```bash
|
||
dotnet new install CringePlugins.Templates --nuget-source https://ng.zznty.ru/v3/index.json
|
||
```
|
||
|
||
|
||
After installation, the **SpaceEngineers Plugin Template** will be available in your IDE’s "Create New Project" menu.
|
||
|
||
### 3. Create and Launch the Plugin
|
||
|
||
Create a new project using the installed template. Once the project is created, you can start debugging the game directly from your IDE.
|
||
|
||
Here are typical hotkeys to start a debug session:
|
||
|
||
- **Visual Studio**: `F5` to start debugging, `Shift + F5` to stop
|
||
- **Rider**: `Shift + F9` to debug, `Shift + F10` to run
|
||
- **VS Code**: `F5` to start debugging
|
||
|
||
---
|
||
|
||
## What Next?
|
||
|
||
Once you’ve created your initial plugin project, here are the next steps to explore and extend your plugin:
|
||
|
||
1. **[Navigating Game Code](./development/decompiling-game)**
|
||
Learn how to decompile the game to understand its internal structure.
|
||
|
||
2. **[How to Create Configs](./development/plugin-configs)**
|
||
Learn how to use the launcher's built-in config system to make your plugin configurable.
|
||
|
||
3. **[Creating UIs](./development/plugin-ui)**
|
||
Explore different built-in UI frameworks supported by the launcher for developing user interfaces.
|
||
|
||
4. **[Patching Game Code](./development/patching)**
|
||
Understand how to use the Harmony library to write runtime patches for the game.
|
||
|
||
5. **[Publishing](./development/publishing)**
|
||
Instructions on preparing and publishing your plugin.
|
||
|
||
5.1 **[Publishing to Official PluginHub](./development/publishing/guidelines)**
|
||
Follow the guidelines to submit your plugin to the official PluginHub.
|
||
|
||
5.2 **[Distributing via Your Own Source](./development/publishing/custom-source)**
|
||
Learn how to host and distribute your plugin independently.
|
||
|
||
---
|