> For the complete documentation index, see [llms.txt](https://m-ahmed310.gitbook.io/fignet/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://m-ahmed310.gitbook.io/fignet/getting-started.md).

# Getting Started

## Setting up standalone server

Install .NET core template of FigNet from nuget.org (<https://www.nuget.org/packages/fignet.core.template>) or run command below in power shell

```bash
dotnet new --install fignet.core.template
```

Create a new project and Hit play.

![create a new project](/files/-MklA5frHnL4ORL_Ubnp)

![template structure](/files/-MklAoFD7wCX1x5fLQPi)

| Folders Structure |                                                         |
| ----------------- | ------------------------------------------------------- |
| lib               | Contains FigNet assemblies                              |
| Messages          | Contains network operations (messages) and handlers     |
| Misc              | Contains default logger, serializer and utility scripts |
| Modules           | Contains tell a joke module (added to server as plugin) |

## Unity Client

Create new a project and import [FigNet](https://assetstore.unity.com/packages/tools/network/fignet-207935) from asset store

* Go to Player Settings and set API Compatibility Level to **NET 4.x.**
* Open Demo scene (Assets/FigNetSample/Demo) and Hit play&#x20;

<div align="center"><img src="/files/-MklHMOUqE9rw-22P6py" alt="Available FigNet Providers"></div>

![Demo in action](/files/-MkldCDfFUkBpQTa5Isd)

![Project structure and Scene setup](/files/-MklifWMshwfYQCTwBdO)

1. **FigNetProviderLoader**.cs is used to load provider in above case LiteNetLibProvider
2. **ClientManager**.cs is the entry point of client application, it keeps IClientSocket running
3. **ConnectionManager**.cs it receives network events of IClientSocket by Implemention IClientSocketListner &#x20;

## Unity Embedded server

&#x20;Import FigNetCore.package in your project.

* Go to Player Settings and set API Compatibility Level to **NET 4.x.**
* Attach ServerManager.cs to empty gameobject&#x20;

{% hint style="info" %}
**ServerManager.cs:** creates a IServerSocket instance based on setting in ServerConfig.xml
{% endhint %}
