# Prepare

We configure development environment in the section.

## People

1. You need to be intellectually complete and have the ability to think for yourself
2. In order To better solve The problems you will encounter, it is recommended to first read [How To Ask Questions The Smart Way](http://www.catb.org/~esr/faqs/smart-questions.html)
3. Then you need to master [the most basic CSharp knowledge](https://www.w3schools.com/cs/index.php)
4. If you can, it is recommended to master [basic Git usage](https://www.w3schools.com/git/)

## Basic Environment

* Worldbox Game
* Install NeoModLoader

## Code Editor

Here are a few options, in order of recommendation:

1. `Rider`. Paid, but student certification/open source project available
2. `Visual Studio Community`. Free
3. `Visual Studio Code`. Free, lightweight, but cumbersome for beginners to configure
4. `Notepad`. Free, lightweight, no-configuration, just dumb

## Game Source Code

Here, I recommend both of them

* `ILSpy` gets readable code and exports symbolic files (.pdb)
* `DnSpy` UI is nice, the buttons are highlighted when you hover over them (ILSpy is not), and when you look at the IL code you see the index directly

## Game Resources

* `AssetRipper` exports game as a Unity project

## Debug

* `BepInEx` Enable `Logging.Console` in `BepInEx\config\BepInEx.cfg`, console built in game is terrible.
* `UnityExplorer` a BepInEx plugin. You should search for what it can do by yourself.

## Example Code

There are some open NeoMod repositories:

* [ModExample](https://github.com/WorldBoxOpenMods/ModExample/) A pure example code repository. It will include all content in the documentation


---

# Agent Instructions: 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:

```
GET https://worldboxopenmods.gitbook.io/mod-tutorial-en/make-mod/start.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
