> For the complete documentation index, see [llms.txt](https://kb.heathen.group/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.heathen.group/old-kb/assets/system-core/learning/asset-developers.md).

# Asset Developers

{% hint style="success" %}

#### Like what your seeing?

Support us as a [GitHub Sponsor](/old-kb/where-to-buy/become-a-sponsor.md) and get instant access to all our assets, exclusive tools and assets, escalated support and issue tracking and our gratitude.\
\
These articles are made possible by our [GitHub Sponsors](/old-kb/where-to-buy/become-a-sponsor.md) ... become a sponsor today!
{% endhint %}

## Introduction

So you want to use System Core as a dependency for your assets? That's great!

{% hint style="success" %}
Yes the MIT license with its common clause does allow you to create assets that are dependent on System Core. The common clause simply aims to prevent people from copying or deriving from System Core code to release a competitor to System Core paid or otherwise.

If you would like to make a better System Core to compete with us … again that is great, competition makes the world go round!\
But you need to start from your own code not ours.
{% endhint %}

This article will help you get started, there isn't much to cover but what there is; is important to know!

## Dependency

System Core should only ever be installed via Package Manager! You can check rather System Core is installed and what version is installed using the Package Manager namespace in Unity.

[To learn more, read this article.](/old-kb/assets/tips-for-asset-developers/package-manger-in-c.md)

## Conditional Compile

System Core creates a script define `HE_SYSCORE` when it is installed properly. You can use this script define to drive conditional compilation for example.

```csharp
#if HE_SYSCORE
    //System Core is installed and available
#else
    //System Core is not installed, maybe you should ask them to install it?
#endif
```

## Derived System Core

So you really want to make your own flavour of System Core. No problem, while you cant publish it to complete with System Core proper you can certainly fork and make your own for your own use.

Keep in mind that other assets may be checking for specifically one of Heathen's versions via the Package Manager. An alternative to creating your own version of System Core is to extend System Core.

## System Core Extension

The best method for adding your own spin to things.

This works out better because:

* Other assets dependent on specific versions of System Core wont have issue with your extension like they would with a derivative.
* Since its an extension you can publish it however you like including for sale ... in fact we encourage that :)

This is simply creating your own asset that is dependent on System Core and extends its classes, interfaces, etc.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://kb.heathen.group/old-kb/assets/system-core/learning/asset-developers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
