diff --git a/README.MD b/README.MD
new file mode 100644
index 0000000..4f8b65a
--- /dev/null
+++ b/README.MD
@@ -0,0 +1,156 @@
+# GHAST TOOLS
+
+Набор вспомогательных инструментов для Bukkit API.
+_Основан на версии Bukkit API 1.12._
+
+## Использование
+
+Перед началом использования, необходимо в вашем Bukkit-плагине прописать подобный код:
+
+```java
+void onLoad() {
+ GhastTools.setPlugin(this);
+}
+```
+
+Это необходимо сделать, т.к. весь инструментарий основан на статических (static) методах.
+
+Все методы данного набора инструментов объеденены в классы, выполняющие роль группировщиков.
+
+### GhastTools
+
+Методы общего назначения или без определённой группировки.
+
+#### loadConfig
+
+Загрузка файла настроек плагина - `config.yml`.
+
+```java
+YamlConfiguration config = GhastTools.loadConfig();
+```
+
+По-умолчанию "гаст" пытается файл найти в папке плагина - `getDataFolder()`.
+Если файла там нет, то выгружает встроенный (имеющийся в `.jar` файле плагина) в эту папку и загружает его.
+
+```java
+YamlConfiguration config = GhastTools.loadConfig(false);
+```
+
+Если передать параметр `false`, то при отсутствии файла `config.yml` в папке плагина,
+будет загруден исключительно встроенный файл настроек.
+
+### AssetsManager
+
+Методы по работе с файлами плагина (_"ассетами"_).
+
+У каждой группы методов один и тот же набор входных параметров:
+
+- `resourceName` - наименование и путь к файлу в папке плагина
+- `defaultResourceName` - наименование и путь к файлу в плагине.
+ _Опционально. По-умолчанию равнен `resourceName`_
+- `saveDefault` - необходимость скопировать содержимое файла из `defaultResourceName` в файл `resourceName`.
+ _Опционально. По-умолчанию равен `true`_
+
+Правила поиска файлов так же одинаков для каждой группы:
+
+- В начале файл ищется в папке плагина
+- Если файл отсутствует в папке плагина, то...
+ - если `defaultResourceName` не равен `null`...
+ - если `saveDefault` равен `true`, то файл из плагина будет выгружен в папку плагина и от туда загружен в память.
+ - если `saveDefault` равен `false`, то данные будут взяты из файлв в плагине.
+ - если `defaultResourceName` равен `null`, то будет брошено исключение `AssetsException` с описанием ошибки вида "Файл X не найден".
+
+#### getAsInputStream
+
+```java
+InputStream inputStream = AssetsManager.getAsInputStream("translate.ru.yml", "translate.yml", false);
+```
+
+#### getAsReader
+
+```java
+Reader reader = AssetsManager.getAsReader("translate.ru.yml", "translate.yml", false);
+```
+
+#### getAsString
+
+```java
+String string = AssetsManager.getAsString("readme.txt", "readme.txt", StandardCharsets.UTF_8, false);
+```
+
+У этой группы есть дополнительный _опциональный_ параметр - `charset` - в котором указывается кодиривка получаемой строки.
+_По-умолчанию равен `StandardCharsets.UTF_8`_
+
+### BuildHelper
+
+Набор методов облегчающих размецение объектов на карте.
+
+#### placeSkull
+
+```java
+Location location = ...;
+Skull skull = BuildHelper.placeSkull(location, BlockFace.NORTH)
+```
+
+#### placeSignWall
+
+```java
+Location location = ...;
+Sign signWall = BuildHelper.placeSignWall(location, BlockFace.NORTH)
+```
+
+### CommandManager
+
+Регистрация комманд.
+
+Имеется два варианта использования: упрощённый
+
+```java
+CommandManager.register("start", (sender, args) -> sender.sendMessage("hello!"));
+```
+
+и подробный:
+
+```java
+CommandManager.create("start")
+ .useOnlyPlayer()
+ .executer((sender, args) -> sender.sendMessage("hello!"))
+ .register();
+```
+
+_TODO добавить описание подробного режима_
+
+## Подключение
+
+### Gradle
+
+```groovy
+repositories {
+ maven { url 'https://dmx-mc-project.gitlab.io/maven-repository/' }
+}
+```
+
+```groovy
+implementation group: 'ghast', name: 'ghast-tools', version: '1.9'
+```
+
+### Maven
+
+```xml
+
+
+ dmx-mc-project
+ https://dmx-mc-project.gitlab.io/maven-repository/
+
+
+```
+
+```xml
+
+
+ ghast
+ ghast-tools
+ 1.9
+
+
+```
\ No newline at end of file