# Welcome

Welcome to the MCGSoft Wiki. Here most information will all be documented for all premium MCG Plugins

Select a Plugin below to go to the documentation

{% content-ref url="/pages/QVAuS41lCJa8jOMeAY3c" %}
[MCG Mine-Net](/mcg-mine-net)
{% endcontent-ref %}

{% content-ref url="/pages/-Lm0YPwx9LBzhAg4EsgW" %}
[MCG Minestore](/mcg-minestore)
{% endcontent-ref %}

{% content-ref url="/pages/-Lm0gprzTV73jBgyFz4K" %}
[MCG StarCraft](/mcg-starcraft)
{% endcontent-ref %}

{% content-ref url="/pages/-LmVhtcxfnZELf4Sk4xw" %}
[MCG UCDM](/mcg-ucdm)
{% endcontent-ref %}

{% content-ref url="/pages/-MEwRUJ5L1XmIt50n\_bZ" %}
[MCG Streamer GUI](/mcg-streamer-gui)
{% endcontent-ref %}

{% content-ref url="/pages/-MTLwtIRK-PTR4AO13dO" %}
[MCG MineBuddy](/mcg-minebuddy)
{% endcontent-ref %}

{% content-ref url="/pages/-MfwTFArPZ1R7fvSrs3g" %}
[MCG Ultimate Quester](/mcg-ultimate-quester)
{% endcontent-ref %}

{% content-ref url="/pages/juRIwAxFxcwcnakxbRXb" %}
[MCG Menu (all plugins)](/mcg-menu-all-plugins)
{% endcontent-ref %}


# MCG Streamer GUI

## For twitch registration for use with this plugin please visit :

{% content-ref url="/pages/-MeV-7tXsMuGuGbQbE\_B" %}
[Twitch app setup](/mcg-streamer-gui/twitch-tokens-client-data)
{% endcontent-ref %}

{% content-ref url="/pages/-MgPIDc\_f1wY8xmjN02b" %}
[Subscriber Rewards](/mcg-streamer-gui/subscriber-rewards)
{% endcontent-ref %}

{% content-ref url="/pages/-Mgod3zYGglZ\_EiUkSAR" %}
[Channel Points System](/mcg-streamer-gui/channel-points-system)
{% endcontent-ref %}

{% content-ref url="/pages/AOC7PqGeu7Pbdsdf8z1W" %}
[Placeholders](/mcg-streamer-gui/placeholders)
{% endcontent-ref %}

## Permission Nodes:

For the management gui and channelpoints management you need : **MCGSR.admin**\
for  Streamers to use Drops : **streamer.drops**\
For streamers to bypass the cooldown on broadcasts: **streamer.bypassbroadcast**

## Placeholders:

The following placeholders can be used in coupon commands:

* {player} < name of the user
* {coupon} < name of the used coupon
* {random16} < random number between 0 and 16
* {random32} < random number between 0 and 32
* {random64} < random number between 0 and 64

A extra placeholder is there for ChannelPointRewards

* {custominput} < the custom message written by the reward claiming viewer

And the {player} is replaced by {channel}\
&#x20;For the Go online Go Offline commands system

<br>

## Commands:

| Command                                                               | Information                                                                                                                                                           |
| --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| /streamergui                                                          | shows help on how to use the command                                                                                                                                  |
| /streamergui manager                                                  | opens the management GUI                                                                                                                                              |
| /streamergui control                                                  | opens the streamer GUI (you must be added as streamer)                                                                                                                |
| /streamergui list                                                     | Shows all live streamers                                                                                                                                              |
| /claimreward                                                          | Shows help for the claim command                                                                                                                                      |
| /claimreward \[product/coupon] \[code]                                | Claims the code for the given coupon                                                                                                                                  |
| /linktwitch \[twitchnick]                                             | <p>Links the user to a twitch nick<br>(\*only one link for each user only 1 link for each twitch nick)</p><p>NOTE there is no validation if thats their nickname.</p> |
| /streamergui apply                                                    | If enabled checks if u are linked with twitch and checks if u are able to get a rank for the followers you have                                                       |
| /streamergui checkplayer \[name]                                      | Check the provided players followercount if he ever applied otherwise returns nothing found                                                                           |
| /streamergui ChannelPoints \[streamer] \[add/remove/info] \[rewardid] | Adds removes or shows info for RewardID in the channel points system for the user                                                                                     |
| /sgui linktwitch                                                      | As a streamer starts linking your twitch for more features                                                                                                            |

## The config:

```yaml
warnstreamerifempty: true #Warn the streamer his streamerdrops is empty on join
forcefield: #forcefields push players away when enabled from the streamer
  strength: 2 #The force! that players get shot and pushed back the higher the stronger keep a eye out to high is killing players
  enabled : false
  color:  #the color of the particles
    r: 0
    g: 255
    b: 286
gooffline: #runs command when streamer goes offline
  enabled: false
  commands: "say {channel} just gone offline!|giveall apple {random32}"
goonline: #runs command when streamer goes live
  enabled: false
  commands: "say {channel} just gone live!|giveall apple {random32}"
MCGSubscriberlink: #Subscriber actions
  enabled: false #enable or disable subscriber system
  tier1: 
    enabled: true #enable tier 1
    actions: #commands to run on trigger
    - "CMD#say hey thanks for the tier1 subscription {player} !"
    - "WHITELIST#player"
  tier2:
    enabled: true
    actions:
    - "CMD#say hey thanks for the tier2 subscription {player} !"
    - "WHITELIST#player"
  tier3:
    enabled: true
    actions:
    - "CMD#say hey thanks for the tier3 subscription {player} !"
    - "WHITELIST#player"
  prime: #the subscription when using prime free sub
    enabled: true
    actions:
    - "CMD#say hey thanks for the PRIME subscription {player} !"
    - "WHITELIST#player"
  unsub: #when someone unsubscribes or sub ends
    enabled: true
    actions:
    - "CMD#say hey thanks for the tier1 unsub {player} !"
    - "BLACKLIST#player"
    - "UNSUBKICK#player"
discordHook:
  webhook: "" #channel hook for notifications
  botname: "MCG Streamer Notifier"
  boticonurl: "" #the avatar from the bot
  livechatfeedhook: "" #channel hook for live chat
  uselivechatfeed: true #Send the stream chat to discord
  useTTS: true #Speak out loud whats send
  enabletagging: true #enable group tagging
  taggroup: streamnotifier #Group to tag in the message
  color: #message color discord
    r: 0
    g: 0
    b: 255
  notifications: #Enable notifications on discord for the following events
    follow: true
    subscribe: true
    hypetrain: true
    raids: true
    livechat: true
    donation: true
    status: true
    bits: true
    cheers: true
style: #alter the looks of chat messages
  nopermissions: "#DE0000"
  streamernamecolor: "#007EDE"
  generalinfocolor: "#2FA5FF"
  commandcolor: "#287DBD"
  commandinfocolor: "#60A5DA"
  commandargumentcolor: "#4F86AF"
  linkcolor: "#0FC7C8"
  completedcolor: "#0FC860"
  failedcolor: "#C83A0F"
  rewardcolor: "#BEC80F"
  livemessage: #alter the looks of the live message
    prefix: "----"
    suffix: "----"
    header: "Currently Live!"
skins: #alter the looks of public gui's
  channel: http://textures.minecraft.net/texture/66f012b95a955c927ab7ebeb766b62d2ac11cc90b1414637290c2b47ec1a970d
  broadcast: http://textures.minecraft.net/texture/a1304d0e2719f26af78e97b2504d40862c06b355e890e4545a82e08e6a3e4ff0
  delete: http://textures.minecraft.net/texture/21bb8bb7cbd4614f8ec9a2748b1d3f1eb9250dc7b7ef317e31ccc798246ce5ec
  streamerdrops: http://textures.minecraft.net/texture/bae5b90c10692e11fd10dc3d5aac6d232b3b3e41bae2520be9bcf94a36138cf1
  close: http://textures.minecraft.net/texture/f57faf143df2978c7baa80c205d16e872e5c31e6ddbde4ace489fd2775781869
  togglechat: http://textures.minecraft.net/texture/7f9a224c4b5fd65e49b9b061f7653556087d35856ae4258a4dc96a46ff38b326
  togglefollows: http://textures.minecraft.net/texture/bf06fdfb50043d5e47806b826f01f9d83b770da0f89b0d812714e2b15dfd7ea5
  togglesubscribe: http://textures.minecraft.net/texture/76df46d2107b45bbde2908862167d3214c030c719d167d6f7fedab2dba3d17f1
  togglehypetrains: http://textures.minecraft.net/texture/31e6940e3ed52eae038a526ca91bf59c05fe11ff14afd2d7e50bca9b69fe7993
  toggledonations: http://textures.minecraft.net/texture/1a868ca3a93681a05c08de55174f9c2749c3df2ebcf2871d493de433424b912
  togglebits: http://textures.minecraft.net/texture/7bf49f4e0bc03e6ea0de217b861268ff2e466bc30d7288779bdad76005066362
  togglecheers: http://textures.minecraft.net/texture/3d75cf9a46b93c000f0f4479a28f78eb20139cd1a38ccd311da924cbd69adfb
  toggleraids: http://textures.minecraft.net/texture/1e4e30e885abdfdd4c1656b7eaa45e67960acd5429e9ce99baa39070eafed8e5
  togglebroadcast: http://textures.minecraft.net/texture/56b6dc0db9ddd270b2a47850e3aafe75f8b492a33d80b77fd00c7d1bde35efa4
  forcefields: http://textures.minecraft.net/texture/844296e2c4366bbe6114347e963f2a8f2ef74186695804767843eef7d7171282
twitch:
  oauthtokenIRC: TOKEN # Deprecated can be removed from v4 and up
  clientID: YOUR_CLIENT_ID # both come from the twitch dev 
  clientPW: YOUR_CLIENT_SECRET # both come from the twitch dev 
  debug: true
  secondsHB: 900 # the run for drops and other stuff DO NOT LOWER! (lowering hits the limit fast and the plugin will stop working until the cooldown ended)
  listeners: # listen  to these events.
    follow: true
    subscribe: true
    hypetrain: true
    raids: true
    livechat: true
    donation: true
    statusbroadcast: true
    moderationfeed: false
    bits: true
    cheers: true
    channelpoints: true
  autorank:
    ranks: # the ranks u can get with followercount
      streamer: 1000
      prostreamer: 5000
    removeranksondelete: # if the streamer is deleted remove these ranks
      - streamer
      - prostreamer
    enabled: false # enable the use of autoranking 
  rewardsystem:
    rankup:
      enabled: true # enable a player being rewarded on rankup
      commands: "broadcast {player} has become a streamer!|give {player} feather {random64}"
    Bits: # Event based rewards for bits can specify a range or value using -100 or -100-200
      enabled: true
      commands: "broadcast {player} has given bits!|give {player} apple {random64}"
    Bits-100:
      enabled: true
      commands: "broadcast {player} has given 100 bits!|give {player} apple {random64}"
    Bits-240-300:
      enabled: true
      commands: "broadcast {player} has given between 240 and 300 bits!|give {player} apple {random64}"
    Bits-500:
      enabled: true
      commands: "broadcast {player} has given 500 bits!|give {player} apple {random64}"
    CheerBomb:
      enabled: true
      commands: "broadcast {player} has Triggered a CheerBomB!|give {player} apple {random64}"
    Donate:
      enabled: true
      commands: "broadcast {player} has Donated!|give {player} apple {random64}"
    Follow:
      enabled: true
      commands: "broadcast {player} has followed!|give {player} apple {random16}"
    Subscribe:
      enabled: true
      commands: "broadcast {player} has Subscribed!|give {player} apple {random32}"
    ReSubscribe:
      enabled: true
      commands: "broadcast {player} has Re-Subscribed!|give {player} apple {random16}"
    Raid:
      enabled: true
      commands: "broadcast {player} has Raided the stream!|give {player} apple {random16}"
Streamerdrops:
  survivalbased: false # if the drops are survival based (e.g. the streamer must provide its own rewards)
  enabled: true # are drops enabled at all??
  Onlyone: true # if a player is watching multiple streamers should he get 1 or multiple rewards
  Drops:
  - APPLE:5
  - OAK_LOG:2
  - GOLD_INGOT:3
  - GOLD_NUGGET:10
  - IRON_INGOT:2
  - STEAK:3
  - EGG:8
  - SNOW_BALL:16
  - DIRT:5
  - STONE:4
  - DIORITE:8
  - ANDESITE:8
  - GRANITE:8
  - WHEAT:8
  - SEEDS:8
  - MELON_BLOCK:1
  - GOLDEN_APPLE:1
  - OAK_SAPLING:1
```


# Video demo's

{% embed url="<https://youtu.be/MxQd-ESz_sg>" %}
Covers the major update features
{% endembed %}

{% embed url="<https://youtu.be/x7B3GySpuhs>" %}
Origional demonstration first versions
{% endembed %}


# Twitch app setup

## Before you start edit the config only if the server is OFFLINE!

## The clientID and Client Secret

Welcome to the quick setup guide. keep in mind twitch can change their page on their end any time this tutorial is made on 18-8-2021 if something changes let me know on discord (mmuziek)

Lets follow the steps to setup V4 and up from MCGStreamerGUI

#### Step 1 Go to twitch Devs and login:

{% embed url="<https://dev.twitch.tv>" %}

#### Step 2 When on your Console click register your application

#### Step 3 Enter the name of your server in the name field

#### Step 4 enter <https://twitchlink.mcgsoft.eu/confirm> in the Oauth return url field

#### Step 5 set the category to Game intergration and click make app

#### Step 6 Click manage on the button next to the just created app

#### Step 7 copy the ClientID to the ClientID field in the config.yml

#### Step 8 click new secret code and copy that code to the client PW field in the config.yml

#### And ur done!

```yaml
  clientID: YOUR_CLIENT_ID < The client ID
  clientPW: YOUR_CLIENT_SECRET < the client Secret
```

{% hint style="danger" %}
Always enter these details when the server is OFFLINE.\
On startup it needs those credentials to work if its running it will corrupt the plugin.

The tokens are generated ingame using the /linktwitch command per streamer so also for yourself if u wanna be a streamer too! this is not enforced it can run without but you will have less features.

The Return url for OAuth must be <https://twitchlink.mcgsoft.eu/confirm> if its not that it will not work!
{% endhint %}


# Subscriber Rewards

Sometimes you as twitch partner are offering subscriptions to your user. after many people requesting this i added it Commands and actions for the subscriptions!

### How does it work?

Twitch handles subscriptions in  4 tiers (tier 1 , tier 2 , tier 3 and Prime)\
the prime one is a free tier 1 subscription they get when they use their prime sub.\
the others are self explanitory.

### How do i set it up?

```yaml
MCGSubscriberlink:
  enabled: false << enable or disable the entire system
  tier1:
    enabled: true << enable or disable this tier
    actions: << The actions to execute (see below)
    - "CMD#say hey thanks for the tier1 subscription {player} !"
    - "WHITELIST#player"
  tier2:
    enabled: true
    actions:
    - "CMD#say hey thanks for the tier2 subscription {player} !"
    - "WHITELIST#player"
  tier3:
    enabled: true
    actions:
    - "CMD#say hey thanks for the tier3 subscription {player} !"
    - "WHITELIST#player"
  prime:
    enabled: true
    actions:
    - "CMD#say hey thanks for the PRIME subscription {player} !"
    - "WHITELIST#player"
  unsub: << called when someones sub expires or is unsubscribed
    enabled: true
    actions:
    - "CMD#say hey thanks for the tier1 subscription {player} !"
    - "BLACKLIST#player"
    - "UNSUBKICK#player"
```

### The actions?

| Action    | Arguments | Example                   | ?                                                                             |
| --------- | --------- | ------------------------- | ----------------------------------------------------------------------------- |
| CMD       | command   | CMD#give {player} apple 1 | Executes given command                                                        |
| BLACKLIST | player    | BLACKLIST#player          | Removes player from the whitelist                                             |
| WHITELIST | player    | WHITELIST#player          | Whitelists player on your server                                              |
| UNSUBKICK | player    | UNSUBKICK#player          | Kicks the player from the server usefull after blacklisting to prevent rejoin |


# Placeholders

### Note placeholders are working from version 4.4.0 and on

#### The placeholders (PLACEHOLDERAPI)

Note all placeholders start with MCGSG\_\*placeholder\*

<table><thead><tr><th width="237">Placeholder</th><th>Result</th><th width="186">Example</th><th data-type="checkbox">Player based</th></tr></thead><tbody><tr><td>MCGSG_status_*streamerid*</td><td>Shows online / offline for streamer provided</td><td>MCGSG_status_mmuziek</td><td>false</td></tr><tr><td>MCGSG_hasdrops_*streamerid*</td><td>returns if it has drops enabled</td><td>MCGSG_hasdrops_mmuziek</td><td>false</td></tr><tr><td>MCGSG_channel_*streamerid*</td><td>returns channel url</td><td>MCGSG_channel_mmuziek</td><td>false</td></tr><tr><td>MCGSG_linked</td><td>returns if viewer is linked to a streamer</td><td>MCGSG_linked</td><td>true</td></tr><tr><td>MCGSG_followers</td><td>Returns followercount</td><td>MCGSG_followers</td><td>true</td></tr><tr><td>MCGSG_twitchnick</td><td>Returns linked twitch nick</td><td>MCGSG_twitchnick</td><td>true</td></tr><tr><td>MCGSG_hasclaim</td><td>Returns if user has rewards to claim</td><td>MCGSG_hasclaim</td><td>true</td></tr><tr><td>MCGSG_checksub</td><td>Returns subscription status for their linked channel</td><td>MCGSG_checksub</td><td>true</td></tr></tbody></table>


# Channel Points System

### What is it?

Many Twitch users enable Points for their channel the viewers can earn them while watching or special events and use them in a gui on twitch to choose their own reward from Emoji to custom rewards.\
This system allows to give CUSTOM rewards ingame for what the user gets

### How can i use it?

The streamer itself can only turn it on or off a ADMIN with the admin perm node can add rewards in form of commands.

### Im a admin how do i manage the rewards for streamer X?

Follow the table below **Note all normal placeholders are working here but there is a extra one for user input given on twitch&#x20;*****{custominput}***\
***The placeholders are {player} {random16} {random32} {random64} {custominput}***

| Command                                      | Function                                                                            | Result                                                                                                                       |
| -------------------------------------------- | ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| sgui channelpoints streamerx add myreward    | Adds a command for streamerX for the reward with id myreward (GUI asks for command) | The command from the GUI is added to the Reward with name myreward                                                           |
| sgui channelpoints streamerx remove myreward | Removes the entire reward named myreward                                            | the reward named myreward is removed including all added commands for it                                                     |
| sgui channelpoints streamerx info myreward   | Spits out information about the reward                                              | The list of commands is shown for myreward for the streamer if there is no reward with that name it will return a empty list |


# MCG Minestore

The complete Ingame Minecraft Donation Store system

{% hint style="danger" %}
This plugin is no longer supported And will not receive any more updates!
{% endhint %}

{% content-ref url="/pages/-Lm0YjnLLHqOUV3NPZl\_" %}
[Requirements](/mcg-minestore/requirements)
{% endcontent-ref %}

{% content-ref url="/pages/-Lm0YlyW40fOFQc3jq0F" %}
[How to Install](/mcg-minestore/how-to-install)
{% endcontent-ref %}

{% content-ref url="/pages/-Lm0aow2OfZvE46Bxy5p" %}
[The product Manager](/mcg-minestore/the-product-manager)
{% endcontent-ref %}

{% content-ref url="/pages/-Lm0fEtbwncQkmzPpqau" %}
[WEB Modules](/mcg-minestore/web-modules)
{% endcontent-ref %}

{% content-ref url="/pages/-Lm0fjI14F6U8J5qYuFs" %}
[The MCG Minestore API](/mcg-minestore/the-mcg-minestore-api)
{% endcontent-ref %}


# Requirements

## The require check

Of course every plugin has its requirements.\
This plugin also has some special requirements the following list apply's for this:

* Java 7 +
* PHP 5.6 +
* SQLite V3
* CGI
* CURL
* SPIGOTMC 1.13+ (older version can work but is not supported)
* Write Access on webserver
* Some webserver space.

## The easy way!

If you already have a webserver.\
You can also download the special made requirecheck.\
Once uploaded simply browse to it and it will show if your webserver meets the requirements.

{% file src="/files/-Lm0\_3cIKnbl9QYZOjFH" %}
Requirecheck
{% endfile %}


# How to Install

## Prepairing the system.

The preparation is the most easy part.\
Simply start the server with the plugin in the plugins folder.

The plugin will make some files within his own folder inside the plugins folder.\
upload the MCGSetup.php file to the webserver.\
Note that the url to that file must be a root dir and not a subdir so for example (shop.mysite.com) is correct but (mysite.com/shop) is not.

once uploaded enter the game and join your server.\
enter the following command\
/donate admin install (with the minestore.admin permission)\
And follow the ingame instructions.


# The product Manager

## Managing Category's

### What are category's?

category's are basically groups that you can put your products under.\
A flag to sort different products into their groups.

### Creating a category

open the admin menu /**donate admin manage** and click **productmanager**\
next Click add category now enter the name using the gui keyboard. \
After that click ok and its added to the system.\
**NOTE:** you can change the looks of the category icons in the config.yml

### Removing a category

open the admin menu /**donate admin manage** and click **productmanager**\
next click remove category and enter the name of the category you wish to remove using the gui keyboard\
after that click ok and its removed from the system\
**NOTE:** if there are products in the category they are lost on removal

### Creating a product:

Creating a product requires some skill however its a easy job using the MCG Product assistant:\
open the admin menu /**donate admin manage** and click **productmanager**\
Click create product.\
This current screen you are now on contains many buttons. Each with their functionality:

* **Name**: the product name
* **Description**: a short description of your product
* **category**: where the product must go in (category see above)
* **Costs + and -** : these alter the product costs by whole and decimal costs.
* **Expiry**: set a timeframe for expiry of the product.
* **Expiry actions**: set actions that run once the product expires.
* **Clear Expiry**: clears the expiry action list
* **Actions**: set actions that run once the product is paid.
* **Add feature**: add a icon to the product page showcasing the features of the product.
* **view Features**: view the features in a gui and remove them by click.
* **set perm**: sets a permission required to get this product
* **Set stock:** sets the products on stock this limits sales until it runs out of stock.
* **clear stock:** resets the stock system to disabled

### The action system

The action system is a unique system to MCGMinestore.\
What it does it binds a CharacterdID to a argument for execution.\
Other plugins can add actions very easy.\
Note it has support for placeholderAPI placeholders.\
also if not using Placeholderapi the placeholder {player} will be replaced by the buyer name\
here are the default ones:

* M:amount > gives money to the buyer
* C:command > Console command
* I:itemname-amount > gives specified item of amount to the buyer
* P:permission > gives permission (VAULT)
* R:rankname > Sets the rank of the buyer to rankname (VAULT)
* AR:rankname > Adds the given rank to the buyer

  (VAULT)
* CM:message > Sends  a message to the buyer
* CMG:message > Sends a Global message
* XP:xplevels > Gives defined XP Levels to the buyer


# WEB Modules

Web Modules are Scripts that run on your webserver to extend the after payment process.\
For example basic Discord modules are already downloadable on our website.

More info on how to write modules can be found at : <https://minestore.mcgsoft.eu/MAPI.html>


# The MCG Minestore API

Some people wanna extend the plugins functionality.\
There are already many addons out there but mabe its still missing something!\
Code your own! its as easy as any other plugin api.\
For the JavaDocs click the link below

<http://docs.minestore.mcgsoft.eu/>


# MCG Mineweb

Web Panel for showcasing products

### How to install?

Installing is quite easy. Simply upload the contents of the zip file to the folder on your server where you wanna have the webstore.\
after that edit the config.php. see explanation below:

{% code title="config.php" %}

```php
//CONFIG AREA ONLY TOUCH ON INSTALL!
$devkey = "00000000";  //devkey from minestore installation
$weburl = "http://mysite.com"; // url for this webpage (just base url not the scriptnames)
$cartmode = true; // Use a cart system or single product mode
$securitylock = false; // After updating the products turn this to true to prevent others from adding products.
$showcats = true; // Shows categories in the header otherwise show all products
```

{% endcode %}

### How to update the webstore with product

First go to the config.yml of the server and adjust the devkey if not already and make sure you use the same one on the config.php from the webstore and on the server. (DO NOT ALTER API KEY\
then enter the minestoreonlineurl this is the url from where you put the webstore files for example <http://mywebsite.com/store\\>
and set minestoreonlineenabled to true\
Now make sure the  server restarts first!\
When the server is back online run /donate admin uploadmineweb\
and if all goes well you should see its updated. if not check the server console or web console for errors.

### I wanna update the existing store do i need to delete anything?

No you dont re run the uploadmineweb command and it clears the products cats and images and remakes them. easy peacy

{% hint style="info" %}
If you ever want a product to be hidden online but not in-game. remove the productname.product file from the products folder. keep in mind the category can also be hidden by removing the category file from the cats folder
{% endhint %}


# MCG StarCraft

Welcome to the starcraft wiki! select your genre below

{% content-ref url="/pages/-LrjptCZGN\_cmyqdXys7" %}
[For players](/mcg-starcraft/for-players)
{% endcontent-ref %}

{% content-ref url="/pages/-LrjoTMSFsG96xzd02lX" %}
[For admins](/mcg-starcraft/for-admins)
{% endcontent-ref %}


# Requirements

## Minimum Requirements

* Spigot 1.14 > or PaperSpigot 1.14 >
* 2 GB Ram
* A permission management plugin is recommended
* 1 GB Disc space (depending on worlds size limit or not)

## Recommended Requirements

* PaperSpigot 1.14 >
* 4 GB Ram
* Luckperms permissions management
* 10 GB Disc Space  (depending on worlds size limit or not)


# For players

{% hint style="info" %}
Wanna get up 2 speed fast ? watch the basic training guide : <https://www.youtube.com/watch?v=9RqbvFo4JzI>
{% endhint %}

As you wanna get going please select one of the guides that guides you correctly

{% content-ref url="/pages/-Lrju4ZzcsVArRbuzI3q" %}
[Machine Usage](/mcg-starcraft/for-players/machine-usage)
{% endcontent-ref %}

{% content-ref url="/pages/-LrjwJ\_hVtvbrbL8SEsV" %}
[Collectable resources](/mcg-starcraft/for-players/collectable-resources)
{% endcontent-ref %}

{% content-ref url="/pages/-MdhGtzp3bfCzHLH1wMr" %}
[Space Stations](/mcg-starcraft/for-players/space-stations)
{% endcontent-ref %}

{% content-ref url="/pages/-Lrjq-G-3j8qcBZKEETs" %}
[Building plans](/mcg-starcraft/for-players/building-plans)
{% endcontent-ref %}

{% content-ref url="/pages/-MSmw0yMT9Ui771wC7ai" %}
[Player Rockets](/mcg-starcraft/for-players/player-rockets)
{% endcontent-ref %}

**There is only one command if enabled by the server administrator:**\
*/space getrecipebook*\
Will give a recipe book with all building and crafting recipes.


# Player Rockets

## How to get started!

First of lets check the requirements:

* A normal Chest
* A Oak\_Sign (By default server owner can change this)
* A launchpad

{% hint style="info" %}
if you do not have a launchpad and do not know how to build it checkout the [Building plans page!](/mcg-starcraft/for-players/building-plans)
{% endhint %}

#### How to make your rocket

First start building the rocket as u wish. keep in mind the rocket may not extend higher then 15 blocks above the lauchpad and may also not be bigger then the launchpad.

Now make sure there is a chest in the rocket thats reachable to put fuel in.

Write down the coordinates of the middle block of the launchpad.

And last step go to the area where u wanna stand at launch (cockpit)

Place the oaksign against the wall and write the following:

```
[rocket]
x/y/z
(where XYZ are the coordinates u just wrote down)
```

if all goes well and u click the sign it should give you either a error if something is wrong or a final score!

if the score is on the sign u can also see the base fuel usage on the last line of the sign if u put fuel in your chest and click the sign again you can start launching!


# Space Stations

From 2.7 and up

if you are in a world without air or with radiation / temperature levels higher then ur suit. or maybe with low gravity.\
Building a spacestations allows to have NO effects while in the base.\
A space Station can be build in any shape as long as it uses Airgenerators.

### How do i create a air generator?

A loom = a air generator. simply make a loom and ur set.

### How do i enable or use the air generator?

place down the loom where u want air/gravity/protection this can be either in the floor or the ceiling.\
Make sure if its in the floor that the bottom of the loom is enclosed and if its in the ceiling that the top of the loom is enclosed.\
Next SHIFT right click the loom it will show green sparkles with the radius its generating air in.\
The loom will remember the Status so if the server restarts there is still air there.

### How do i remove a air generator?

Simply destroy the loom.

### What happens if i do not cover one side?

If u do not cover the top if on ceiling or the bottom if in the floor then it always refers back to a floor layout thus so only generating air on top of it


# The Story

### What is the story?

Scattered around all pois you will find logs.\
The logs tell a story once you find them all.

### What is the story about?

The story is about 3 astronauts who where the first to go to space in MC.\
They have a whole adventure with eachother and all individually leave logs around the pois.

### How many logs are there?

30 for Peter.\
38 for Kyla\
28 for Twain

### How are the logs delivered?

They will be written books in the loot chests.


# Space suit upgrading

Well going into space requires some different suit equipment per location you go to.

There  are 4 upgrades for all different types below you will see them all

| Airtank upgrades                                                   | fueltank upgrades/jetpack                                         | radiation protection                      | Temperature protection               |
| ------------------------------------------------------------------ | ----------------------------------------------------------------- | ----------------------------------------- | ------------------------------------ |
| 4                                                                  | 4                                                                 | 4                                         | 4                                    |
| Increases time you have air but requires more aircanisters to fill | first upgrade adds jetpack next ones enlarge the fuel tank to fly | protects against radioactive environments | protect agains very hot environments |
| Helm                                                               | Boots                                                             | Chestplate                                | leggings                             |

### How to upgrade the suit

1. Make the upgrade you need (note that you start at 1 you cannot upgrade to 3  at once)
2. put on your space suit
3. Shift leftclick a anvill while holding the upgrade for the suit.
4. Suit upgraded!

To check if the suit is upgraded simply look at the item itself it should increase the number on the level of protection or size

The upgrades work in 1 direction you cannot downgrade or upgrade by skipping levels.\
Its always 1 > 2 > 3 > 4

### Rare materials

The suit upgrade each uses rare materials to upgrade it. for example silicon comes from braincoral.\
emeralds are also something you need to find or trade. so be prepaired that its not easy to get them all

The space suit once fully upgraded is a very handy tool on all worlds. especially the jetpack it allows flight if you have fuel in the suit, becarefull tho if ur suit run out in mid air u will fall!

### Crafting recipes for the upgrades and suit:

{% content-ref url="/pages/-LrjtndBKU8DBuxEStos" %}
[Broken mention](broken://pages/-LrjtndBKU8DBuxEStos)
{% endcontent-ref %}


# Machine Usage

### The air Compressor

Using the aircompressor is straightforward.

1. Make a air canister (recipe in the packager build)
2. put the canister in the chest note it may only be 1 canister per slot
3. click the sign it should say compressing and the filled canister is in the chest.

### The packager

1. Click the sign.
2. Click the item you wanna make.
3. see what the recipe needs.
4. put the required items in the barrel.
5. click the sign and the item you wanna make
6. voila your item is made!

### The Refinery

Using a refinery can be a bit tricky but is also straightforward.

1. Collect chorus\_Fruit.
2. put the Chorus Fruit in the refinery chest.
3. Click on the sign if its not enough it tells you how much you have/miss also it animates the tank.
4. if there are enough in the chest it crafts a fuel canister ready to use!

#### ***FAIR WARNING! the server owner can change the required fuel item contact them if its not working!***

### The suit filling mechanism

if u wanna breath in space you need the oxygen generated by the compressor.\
so use it hold the filled aircanister in your hand and click a end\_rod.\
Do note u need a full iron suit for it to work.\
the iron suit must be fully equipt to breath and fill the suit.

### The rocket launch program

Follow the steps carefully!

1. make sure you have build a launchpad with the rocket directly on it.
2. it does not matter if u build a bridge to the cockpit.
3. once ready add fuel to the chest in its tail the easy access point is underneath the wings you only have to remove the red\_sand and replace it once ur done.
4. enter the rocket and press the button
5. you have to be facing the inner direction looking at the glass and not the door opening when pressing the button.
6. In the menu that pops up you can select where u wanna go. but be prepaired some worlds require you to have air or are hard to move around in make sure you are equiped for the world you wanna go to.
7. finally click the button for the world u wanna go to and see yourself launch!
8. it always generates a iron  block underneath your feet when arriving to prevent fall damage.
9. in this progress the rocket and part of the launchpad are lost. to return repeat the steps on the world u are in.


# Collectable resources

There are currently 3 resources that can be collected.

### Titanite

Titanite is a harder metal found in iron\_ore.\
When mining iron\_ore there is a chance you lose the iron but get a titanite ore instead.

### Conduit

Conduit is a goldish power conducting metal found in Gold Vines.\
When mining gold\_ore there is a chance you lose the gold but get a Conduit ore instead.

### Silicon

Silicon is a mineral that can only be found in brain coral\
The warm ocean to be exact. the only way to get it is by mining Brain Coral Blocks.

![](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-Luqgq8UUus3t7VT9iw0%2F-Luqgzq0QWm0Z2CtAL-c%2Fcollect1.png?alt=media\&token=6fb8075a-158b-4756-8a80-97cc94262fba)


# Building plans

Get to know how you build something!\
Small note : The signs must be birch!\
\
WARNING! the server owner can change the building designs if the build is not working for you please contact the server administrator of the server you play on!

{% tabs %}
{% tab title="Compressor" %}
![Layer 1](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjhWSLFZXCrdyDDbSY%2F-MKjhn16oXI79vWEFmn_%2Fcom%20l1.png?alt=media\&token=4168bbdc-7ed5-45ea-9e55-9c217f7ca1be)

![Layer 2](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjhWSLFZXCrdyDDbSY%2F-MKjhpzCFJBJH_6UKLIc%2Fcom%20l2.png?alt=media\&token=37080423-6f44-4289-a48d-b3f467682a8f)

![layer 3](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjhWSLFZXCrdyDDbSY%2F-MKjhxnMNCDp89dQUmSW%2Fcom%20l3.png?alt=media\&token=864018ed-e52e-4853-b7af-ae639ce91f12)

![layer 4](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjhWSLFZXCrdyDDbSY%2F-MKji0XqthnJhTGvxw49%2Fcom%20l4.png?alt=media\&token=39a407dd-5243-41b8-9186-c40116a3ef41)

![Sign layer](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjhWSLFZXCrdyDDbSY%2F-MKji9ByN-3drRjlSNRb%2Fcom%20l5.png?alt=media\&token=bbcc9e53-4aaf-40ce-8c05-b1713ae307b6)
{% endtab %}

{% tab title="Refinery" %}
![Layer 1](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjjg7bIWEFzLNkax3O%2F-MKjjjN6XeUtQm9WccE8%2Ffuel%20l1.png?alt=media\&token=a9fc9462-ee9e-46b9-9694-835ed5159991)

![Layer 2](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjjg7bIWEFzLNkax3O%2F-MKjjnZsY4DciwYMsm2A%2Ffuel%20l2.png?alt=media\&token=5c42f308-3300-4ff7-b0a9-03032f018479)

![Layer 3](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjjg7bIWEFzLNkax3O%2F-MKjjrXdBrAICUbTNWsc%2Ffuel%20l3.png?alt=media\&token=5af7aa33-9196-490c-a855-3f8e225a502f)

![Layer 4](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjjg7bIWEFzLNkax3O%2F-MKjjur-qrQ18DMpudDf%2Ffuel%20l4.png?alt=media\&token=77854c0e-7e59-40da-a54a-686b23c353bf)

![Layer 5](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjjg7bIWEFzLNkax3O%2F-MKjjzoEMKb38T4Suz52%2Ffuel%20l5.png?alt=media\&token=3196586c-ceaa-4c05-a707-9a9ad39a8937)

![Layer 6](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjjg7bIWEFzLNkax3O%2F-MKjk6HJHqRa8n6jb6WE%2Ffuel%20l6.png?alt=media\&token=ade583a4-ecfe-4bf0-9e2b-2fe2cd675a51)

![Layer 7](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjjg7bIWEFzLNkax3O%2F-MKjkD8WwkoVq0TQT44i%2Ffuel%20l7.png?alt=media\&token=b493d171-03bd-41ae-b054-d238da492c6d)

![Layer 8](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjjg7bIWEFzLNkax3O%2F-MKjkHcywPOYqUBSYZVo%2Ffuel%20l8.png?alt=media\&token=802112d4-2008-499c-82af-da63614c7dd1)

![Layer 9](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjjg7bIWEFzLNkax3O%2F-MKjkMOWMsgxLe7hdvyF%2Ffuel%20l9.png?alt=media\&token=f37a905e-3343-4512-8461-942b30936a34)

![Sign layer](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjjg7bIWEFzLNkax3O%2F-MKjkPmIJfo29BVOVK3Z%2Ffuel%20l10.png?alt=media\&token=6189d477-354d-4df0-b95d-fbc5e1756c4e)
{% endtab %}

{% tab title="Launchpad" %}
![Single layer](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MKjkUx0uuGxBadvGN83%2F-MKjkXiAAyQJ2tw_5xJd%2Fplatform.png?alt=media\&token=194b21a3-ac15-41f9-9ea4-6690bf65d68c)
{% endtab %}

{% tab title="Packager" %}
![Layer 1](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MYdjt2sfTV7cHPVZSK7%2F-MYdlJVBq9IUwDoiu0bw%2F1.png?alt=media\&token=20918718-ee80-48bc-8e68-e036e0a1324a)

![Layer 2](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MYdjt2sfTV7cHPVZSK7%2F-MYdlLSkVpmDSMJa6FLa%2F2.png?alt=media\&token=902c6020-317c-49e3-91dd-2662051070a5)

![layer 3](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MYdjt2sfTV7cHPVZSK7%2F-MYdlPjs9gRACpQqsVFy%2F3.png?alt=media\&token=b2712050-bae8-451a-8d78-dc5c7baabbbb)

![layer 4](https://3988830678-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0WumrBipRlxxQ58JG%2F-MYdjt2sfTV7cHPVZSK7%2F-MYdlS7ti03nfr6oyVOb%2F4.png?alt=media\&token=3a70587e-4f43-4dff-b19b-cf78197a38bc)
{% endtab %}
{% endtabs %}


# For admins

Based on version 2.0

{% hint style="info" %}
Get up to start visit <https://youtu.be/6iK-dTtyJQE> for a admin tutorial!
{% endhint %}

{% hint style="success" %}
Need preset biomes worlds? Dungeons? POIs? check <http://starcentral.mcgsoft.eu>

NOTE (this website is deprecated and will soon be moved to plugins.mcgsoft.eu)
{% endhint %}

Find more info about :&#x20;

{% content-ref url="/pages/-M2ijwBsEFN-D0wgBKbh" %}
[World and Galaxy Control](/mcg-starcraft/for-admins/world-and-galaxy-control)
{% endcontent-ref %}

{% content-ref url="/pages/-M2ilfvmF5jz-PRcvTK3" %}
[Altering Buildings](/mcg-starcraft/for-admins/altering-buildings)
{% endcontent-ref %}

{% content-ref url="/pages/-M5q6SGQYzdlei9ESdJn" %}
[Worldguard support](/mcg-starcraft/for-admins/worldguard-support)
{% endcontent-ref %}

{% content-ref url="/pages/-M5q3CG5NpADsJMcWB1W" %}
[POI Management](/mcg-starcraft/for-admins/poi-management)
{% endcontent-ref %}

{% content-ref url="/pages/-MLC8N6bBcIYbKNGn1hM" %}
[Creating worlds](/mcg-starcraft/for-admins/creating-worlds)
{% endcontent-ref %}

{% content-ref url="/pages/-MLCDzKkvNz7DMecAzGQ" %}
[Dungeons](/mcg-starcraft/for-admins/dungeons)
{% endcontent-ref %}

{% content-ref url="/pages/-M3g5RwfkeD\_xISI9IkI" %}
[The Config File](/mcg-starcraft/for-admins/the-config-file)
{% endcontent-ref %}

## What Are the permissions?

As simple as **MCGSC.admin** nothing more nothing less

\
*For world access :*\
defaulting to world.worldname\
can be changed in the worldconfig file if they **do not have** that perm they **WONT see** the planet on the map.

**To translate the items check :**

{% content-ref url="/pages/-LxfIklj4ON9YWLtvReq" %}
[Translate](/mcg-starcraft/for-admins/translate)
{% endcontent-ref %}

## What are the commands (per version 2.0)

| Command                                         | result                                  | example usage                        | allowed variables                                                                                                                                                                                                                                                                                                                                                                                                          |
| ----------------------------------------------- | --------------------------------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| spaceadmin tp \[worldname]                      | teleports to given world                | spaceadmin tp aquatic                | world,aquatic,radiated,rocky,organic                                                                                                                                                                                                                                                                                                                                                                                       |
| spaceadmin give \[itemname]                     | gives provided item by name             | spaceadmin give airtankfull          | <p>airtankfull,airtankpoluted,airtankcarbon<br>,airtankempty,fueltankfull,titaniteore,conduitore,airupgrade1,airupgrade2,airupgrade3</p><p>,airupgrade4,fuelupgrade1,fuelupgrade2,fuelupgrade3,fuelupgrade4,<br>radiationupgrade1,radiationupgrade2,radiationupgrade3,radiationupgrade4<br>temperatureupgrade1,temperatureupgrade2,temperatureupgrade3,temperatureupgrade4,silicon<br>,thermoglue,titaniteplate</p><p></p> |
| spaceadmin generatestructure \[buildname]       | generates the building template         | spaceadmin generatestructure rocketn | <p>rocketn,rockete,rockets,rocketw</p><p>compressorn,compressorw,compressors,compressore</p><p>fueln,fuels,fuelw,fuele</p><p>buildplate</p>                                                                                                                                                                                                                                                                                |
| spaceadmin setair \[amount < 100] \[playername] | sets the air a person has. up to 99 max | spaceadmin setair 50 mmuziek         | <p>1 - 99 for air</p><p>any ingame name (online player recommended)</p>                                                                                                                                                                                                                                                                                                                                                    |
| spaceadmin giverecipebook \[playername]         | gives the recipebook to a player        | spaceadmin giverecipebook mmuziek    | any ingame name (online player only)                                                                                                                                                                                                                                                                                                                                                                                       |
| spaceadmin GUI                                  | opens the control gui                   | spaceadmin gui                       | None                                                                                                                                                                                                                                                                                                                                                                                                                       |

## What are airgenerators and what do those files do?

The airgenerator folder stores all air generators placed by your players.\
Deleting one doesnt delete the airgenerator but deactivates them on restart. \
If they are deactivated the player can click the generator again and it works again creating a new file.\
Each file has a Size of around the 10 KB (depending on the coordinates) if the coordinates are in the 1000 or more digits then it might increase a bit


# Dungeons

## What are dungeons in difference to a POI?

a dungeon is a building that extends beyond the boundry's of a POI.\
the dungeon exists of many chunk based tiles that will be connected randomly on generation.

### Ok? so how do i create a dungeon?

Depends? wanna make a dungeon where u are use /spaceadmin makedungeon\
or use the GUI for it

### What are dungeon tiles and can i make my own design?

Dungeon tiles are basically chunks with a max height of 16 so 16x16x16 cube.\
making tiles is little harder then a POI but i will try to explane for more indeph learning watch the admin tutorial link on the main page.

### Creating a dungeontile

Each tile can have 4 exists North East South West in that order. this is the thing to remember.\
making a dungeon requires each possible combination to be present in the theme u want.\
the current combinations are written as coords like 0-0-0-0 this means no exits 1-0-0-0 means only the north exit is open to connect to another part of the dungeon.

The spaceadmin command is /spaceadmin createdungeontile 0 0 0 0 < where the 0 can be 1 or 0 depending if that side is open (the formatting n e s w)

using the GUI its more easy!

#### Making the dungeon of your tiles

When u made all the tiles needed u need a themefile the themefile configurates which tiles to use for which exits and such. take a look this is the default file:

```yaml
ylevelmin: 10 #the minimum y level the dungeon spawns
ylevelmax: 30 #the max y level the dungeons spawns
connecttosurface: true #should this dungeon have a staircase at the middle
chancetospawn: 3 #the chance that a dungeon spawns
extendchance: 20 #the chance that a dungeon grows the higher the more chance for a big dungeon
groundmaterial: STONE #this is a important one if u dug a dungeon in stone enter stone NEVER set this to air. as this block will be ignored when building it.
stairmaterial: LADDER #if the connecttosurface is true this is the material for the ladder
wallmaterial: ANDESITE #if the connecttosurface is true this is the material for the pipe the ladder is in
connectoptions: #the input below are FILENAMES for the tiles u made be sure to enter at least 1 tile in ALL options
  entrance: base #the entrance of your dungeon
  1-1-1-1:
    - 1-1-1-1 #the tile with all exits open
  1-0-0-0:
    - 1-0-0-0 #the tile with just the north exit open
    - 1-0-0-0b
    - 1-0-0-0c
    - 1-0-0-0d
  0-1-0-0:
    - 0-1-0-0
    - 0-1-0-0b
    - 0-1-0-0c
    - 0-1-0-0d
  0-0-1-0:
    - 0-0-1-0
    - 0-0-1-0b
    - 0-0-1-0c
    - 0-0-1-0d
    - 0-0-1-0e
  0-0-0-1:
    - 0-0-0-1
    - 0-0-0-1b
    - 0-0-0-1c
  1-1-0-0:
    - 1-1-0-0 #the tile with the north and east exit open
  0-1-1-0:
    - 0-1-1-0
  0-0-1-1:
    - 0-0-1-1
  1-0-0-1:
    - 1-0-0-1
  0-1-0-1:
    - 0-1-0-1
    - 0-1-0-1b
    - 0-1-0-1c
  1-0-1-0:
    - 1-0-1-0
    - 1-0-1-0b
    - 1-0-1-0c
  1-1-1-0:
    - 1-1-1-0
  0-1-1-1:
    - 0-1-1-1
  1-0-1-1:
    - 1-0-1-1
  1-1-0-1:
    - 1-1-0-1a
    - 1-1-0-1b
    - 1-1-0-1c
```

#### putting your dungeon in the system!

Go to the dungeons folder and create a folder with the name of your dungeon theme.\
inside that folder put the theme file and create a folder called tiles\
now but all your made and configurated tiles in the tiles folder and ur done.\
From that point after a server restart the theme can be used as dungeontheme in all worlds.


# PlaceHolders

Placeholders are usable from 2.5.2

## How to use Placeholders

We are using PlaceHolderAPI for the placeholders. if you wanna use them install placeholderAPI the MCG Starcraft will detect it on startup and load them in.\
follow instructions on the PlaceHolderAPI website for usage.

### What are the placeholders?

|                 Placeholder                 |                                 Function                                 |   Arguments  |
| :-----------------------------------------: | :----------------------------------------------------------------------: | :----------: |
|              MCGSC\_currentair              |                        Current airtank fill level                        |       -      |
|              MCGSC\_currentfuel             |                        Current fueltank fill level                       |       -      |
|                MCGSC\_maxfuel               |                           Max fuel in fueltank                           |       -      |
|                MCGSC\_maxair                |                            Max air in airtank                            |       -      |
|          MCGSC\_suitlevel\_airtank          |                               Airtank level                              |       -      |
|          MCGSC\_suitlevel\_fueltank         |                              FuelTank Level                              |       -      |
|         MCGSC\_suitlevel\_radiation         |                        Radiation protection level                        |       -      |
|        MCGSC\_suitlevel\_temperature        |                       Temperature protection level                       |       -      |
|              MCGSC\_environment             |    Environmental Level display R/T (radiationlevel / Temperaturelevel)   |       -      |
|           MCGSC\_playerprotection           | Players protection Level display R/T (radiationlevel / Temperaturelevel) |       -      |
|               MCGSC\_worldtemp              |                    Temperature level for current world                   |       -      |
|            MCGSC\_worldradiation            |                     Radiation level for current world                    |       -      |
|                MCGSC\_galaxy                |                          Galaxy the world is in                          |       -      |
|                MCGSC\_needair               |                      Do u need a spacesuit (airtank)                     |       -      |
|              MCGSC\_lowgravity              |                    Is there low gravity on this world                    |       -      |
|             MCGSC\_meteorstrikes            |                   Can Meteorstrikes happen on the world                  |       -      |
|  MCGSC\_worldinfo-\[worldname]-temperature  |                      temperature level of the world                      | \[worldname] |
|   MCGSC\_worldinfo-\[worldname]-radiation   |                         radiation level the world                        | \[worldname] |
|     MCGSC\_worldinfo-\[worldname]-galaxy    |                            Galaxy of the world                           | \[worldname] |
|    MCGSC\_worldinfo-\[worldname]-needair    |                      Do u need a spacesuit (airtank)                     | \[worldname] |
|   MCGSC\_worldinfo-\[worldname]-lowgravity  |                    Is there low gravity on this world                    | \[worldname] |
| MCGSC\_worldinfo-\[worldname]-meteorstrikes |                   Can Meteorstrikes happen on the world                  | \[worldname] |


# Creating worlds

Creating worlds is easy in MCG Starcraft click the topic below to learn about it :)


# Creating a new world

## BiomeData

{% content-ref url="/pages/-MLCAx\_UW1PAs7HsahzI" %}
[BiomeData Files](/mcg-starcraft/for-admins/creating-worlds/biomedata-files)
{% endcontent-ref %}

## Using the GUI

Ingame use the command /spaceadmin gui \
after that click the yellow flower icon.

Then click the GREEN wool block to create a new world.\
Enter its name and use the gui to fully configurate it.\
Anything changed or edited in the gui is saved DIRECTLY\
however will require a restart to take effect.

## Using the Worldsettings file

The most easy way is to copy over a world and edit it directly however here is the Gianma example with explanations: (this is not always up2date please check the worldsettings file for the current options)

```yaml
Gianma: #the worldname
  server: server #the bungeecord server if used otherwise keep it like this
  permission: world.Gianma #the permission node
  radiation: 0 #the radiation level between 0 and 4
  temperature: 4 #the temperature level between 0 and 4
  mobssystem: false #should we dress the mobs according to space?
  disabledmobs: #disable certain mobs from spawning in that world
  - SPIDER
  - WITCH
  - PHANTOM
  - ZOMBIE_VILLAGER
  - ZOMBIE
  - ENDERMAN
  - SKELETON
  - HUSK
  - STRAY
  airsystem: true #do we need a suit with air to survive?
  iconurl: [url here] #the skin texture from minecraft for the world head icon 
  iconslot: 7 #the slot in the row the icon is on the galaxy map (0-8)
  iconrow: 3 #the slot in the row the icon is on the galaxy map (0-4)
  lowgravity: true #do we have low gravity?
  enablestructures: true #Should POI's generate here?
  galaxy: Obasus #in which galaxy is this world
  meteorstrikes: true #are there occasional meteor strikes?
  preventleavedecay: true #should the leaves never decay?
  generator:
    type: MCGWG #The generator MCGWG is the custom one u can alter
    custombiomedata: roughland #the biomedatafile names seperated with ,
    liquidlevel: 40 #the layer til the ocean needs to be
    liquidtype: WATER #the blocktype for the ocean (woo DIAMOND oceans nah bad idea) 
    roughness: 8 #how steep and direct different changes are in the world
    Xscaling: 0.005 #these are scaling parimeters u need to try for yourself
    Yscaling: 0.005 #they will alter the height of hills and shape of it
    Zscaling: 0.005 #or make it completely flat its up to you
    Wscaling: 0.005
  dungeons:
    enabled: false #do dungeons spawn in here?
    themes: #Which themes should we use?
    - abandonedbase 
    loottables: #Which loot tables can be found inside of the dungeon?
    - 1
    - 2
```


# BiomeData Files

## A biome data file what is that?

The MCGWG generator is fully custom this means u can design your own biomes!\
Including tree's cactus flowers and grass its up to you!\
these biomes can be used in your world with up to 53 different biomes at once!

### What is mixmaterial name?

{% content-ref url="/pages/-MLCDDfvFEvqYX2EYXwK" %}
[MixMaterial Data](/mcg-starcraft/for-admins/creating-worlds/biomedata-files/mixmaterial-data)
{% endcontent-ref %}

## How do i create one?

First create a new file with  the name of your biome in the BiomeData folder

then put the following in that file and adjust like stated (Warning this can be outdated please check the delivered biome files for all current settings)

```yaml
topgroundmaterial: "!multisand" #the material for the top layer of the ground or Mixmaterial name
midgroundmaterial: "!multisandstone" #the material for the 2-5 layer of the ground or Mixmaterial name
maingroundmaterial: "!desertstone" #the material for the layers below that or Mixmaterial name
beachmaterial: "COARSE_DIRT" #The material for the area around the ocean
nature:
  leaves: AIR #the material that replaces default leaves or mixmaterial name
  log: OAK_LOG #the tree type material or mixmaterial name (Oak_LOG or SPRUCE_LOG or DIAMOND_BLOCK for diamond stems)
  grass: DEAD_BUSH #Material to be placed on top of the ground layer like grass or flowers or mixmaterial name
  cactus: CACTUS #the material to use as a cactus or mixmaterial name
generateminerals: #the chance/size of the minerals in the ground
  iron: 8
  gold: 5
  diamond: 1
  emerald: 1
  lapis: 2
  redstone: 4
  coal: 10
chances: #the chances for trees grass and cactusses to spawn
  cactus: 30
  tree: 50
  grass: 20
limits:
  maxcactusheight: 5 #the limit for cactus height if set heigher then 5 lay may occuer
```


# MixMaterial Data

You might be wondering what mixmaterial names are?

well basically its a collection of materials that bind to a certain name so that more customizations are possible:

### ok? well how do i create one?

Open up the themes.yml in the BiomeData folder.\
Simply  add a line like so :

```yaml
stonemix: "DIORITE,ANDESITE,STONE,GRANITE"
# materialmixname: "Materials seperated by ,"
```

as soon as the server restarts the data is loaded to worlds using it.


# Worldguard support

### What flags are there?

#### The launch flag

prevents launching a rocket in the region the flag is set deny to.

#### The mine flag

Prevents special Starcraft minerals from being gained.

### How do i add or enable worldguard support?

Its enabled by default and cannot be changed. it will activate  as soon as it finds worldguard.

### But i do not wanna use this how can i disable it then?

by default everything is set to allowed for all regions worlds and sectors. so unless u specifically set it to deny it will not alter gameplay

### How do i set the flag?

Use the /region flags command or to be specific u can enter the region name like normally in the command to specify the region.\
you will see a interactive list of flags the MCGStarCraft flags are on the last few pages.


# POI Management

{% content-ref url="/pages/-ML-41vLvj9JmvV4jz1x" %}
[Creating a POI](/mcg-starcraft/for-admins/poi-management/creating-a-poi)
{% endcontent-ref %}

### How do i add my own made poi to the system?

Copy your poi file to the POI folder.\
Next open up the poisettings file and add the name of your poi to the top list.\
once done configurate the poi like in the next topic is described.

### How do i manage the POI File

The poi file is a easy to understand file.\
First there is a list with all pois in the system then a per worldname poi list.\
each poi added to that list is build up like :\
abandoned-space-station/20-180/1/1-2-3-4\
Translated it would be:\
POI Name/Ylevelrange/chancetospawn/loottables\
So first there is the POI Name this is the name of the file til the \_poi.yml so anything before that.\
then the ylevelrange or ground\
Y levelrange means a low and max y level i may spawn in. the ground option means place it on the toplayer of the world on the ground. (this goes into terrain and on terrain but will never float fully or be underground fully.\
then the chancetospawn which is beside the main change of any poi spawning the chance this one gets spawned.\
and then the loottables its as simple as entering the loottabe number and if u want more then 1 do it with - as seperator.

### How do i add loot to my poi?

Simply place either a chest.\
or a barrel somewhere inside ur build

### Can i use spawners?

Yes when placing a spawner in your poi with a certain vanilla mob in it it will copy it exactly with that mob over.\
NOTE special spawn settings and custom mobs and such are not supported.

### How do i make my own loot table?

Make a  chest containing the loot table. the contents will be exactly copied.\
including lores displaynames colors and properties.\
Now look at the chest. and type:\
/spaceadmin poi loottable create (can also be done using the GUI)\
it will make the loottable and add it to the config with the next ID available from there u can now alter the poi file to include the new loottable in pois\
Do note it will be effective for the next generated poi. not the ones already in the world.


# Creating a POI

## Building tools:

CHEST : will be filled from the loottable

BARREL: will be filled from the loottable

SPAWNER: will be copyed over with the same mob in it

{% hint style="info" %}
&#x20;if you do not know how to add a poi and do not understand how please watch the training video here \[COMING SOON]
{% endhint %}

## Standing correctly

First Make sure the Build is completely within a single chunk.\
in order to check that  do **F3 + G ingame this will show the chunk boundry's**

Next. *go to spot 0 \~ 0 from the chunk* your build is in. **use F3 to see the  chunk location** this is a x y z within the chunk. this can be as low as 0 and as high as 15 for the x and z and 1 - 255 for y.

stand on the **same layer as the bottom of your poi build.**

Either use **the command** as described below **or** the new ***ADMIN gui*** for creating this poi

```java
/spaceadmin poi create [name]
```


# The Config File

Well its more easy then you think :)\
Do note once you change stuff in here there will be a lower support.

```yaml
#MCGStarCraft CONFIG FILE
#PLEASE NOTE ONCE YOU CHANGE THIS THERE WILL  BE A LOWER SUPPORT!
debugoutput: true # when true shows more detailed errors (normally not noticeable)
Worldsettings:
  Respawnhandler: true #should the plugin change where you respawn so u are not dieing in a endless loop?
  perworldminerals: true # When true will only allow certain minerals to be mined in certain worlds (see custom resources below)
  multiserver:
    enabled: false # if true on launch will teleport to given server instead of world
  coresettings:
    airsystem: true #when enabled causes air to go down while in space.
    jetpacks: true #overrides allow flight if you have a filled fueltank in the suit allows flying
    fuelsystem: true #when enabled causes you to need fuel to launch
    spacerealism: true #gravity (jumpboost in space slowness ect..)
    customdeath: true #alters death message depending on world. only included worlds tho others have defaults
    temperaturemodule: true #temperature protectionrequirements on certain worlds (suitupgrades)
    radiationmodule: true #radiation protection requirements on certain worlds (Suitupgrades)
    endlessmode: false #endlessly use the same rocket
    randomtp:
      enabled: false
      radius: 2000 #tp to a random location in the target world
  rocketsettings:
    fuelmaterial: CHORUS_FRUIT #material that is converted to fuel in the refinery
recipesystem:
  sendonjoin: true #will send recipes to players recipebook Do note heads will show as heads
  givebookonjoin: true #gives a recipebook on player join. (for every join)
  allowcommand: true #allows the player to use /space getrecipebook
customresources: 
  titanite:
    world: 
    - world #if perworldminerals is true you can only get this here.
    chance: 8 #the chance from x to 100 that you get it per block break
  conduit:
    world: 
    - world 
    chance: 8
  silicon:
    world: 
    - aquatic
    chance: 16
disasters:
  meteorrains: 
    enabled: true #if true this disaster is enabled
    chance: 1 #the chance it happens
    secondseveryrun: 300 #every x amount of seconds it tries once out
  rocketfailure:
    enabled: true
    chance: 5
    radius: 10 #explosion radius
  suitfailure:
    enabled: true
    chance: 1
poisystem:
  chance: 15 #POI spawn chance
  loottables: 5 #Do not touch this
  storyincluded: true #if the story is added to the loot chests or not
  loot: #Do not touch this
    '1':
```


# Altering Buildings

ADVANCED USERS ONLY!

So u wanna alter a build he? well let me warn you first.!\
Once you alter the included builds there will be a lower support as coding mistakes when making the builds are not for the developer to solve.\
If u still wanna do it then read on!

The Templates:

Every build has a template times 4 if its a directional build\
The 4 directions are N E S W (North East South West) i named them accordingly on the files.\
So for example you wanna alter the air compressor.\
You can most safely change the blocks used by simply changing the names of the materials you wanna change at the location. The data format used is as follows:\
-1/0/0/IRON\_BLOCK\
X/Y/Z/MATERIAL < From build center\
The location Uses a BUILD CENTER this will NEVER change. as so\
The Signs Buttons and Chests May never be moved. in a build.\
\
\
If you altered the build recipe. please go into the  Recipedata file and change the recipe accordingly there aswell so players know how to build it.\
The recipedata file works pretty easy.\
It works using a Legend a Layers list and some minor details see a example below:\
Legend is basically the Blocks used in the build. always 12 if not used make it a space " "\
The Layers are basically every layer of the build (Max 15) this one is adjustable so if ur build is 6 layers set layercount to 6 and add layer1 layer2 layer3 layer4 layer5 layer6 \
The data for each layer is a grid based one\
The build has a width and a length gridsize showcases the width and length of it.\
and each layer puts the letters from the legend into its place on the layer\
So AAA in the example meanse Ironblock ironblock ironblock.\
the \<BR> means new row. so a 3x3 grid of ironblocks would be\
AAA\<BR>AAA\<BR>AAA<br>

{% code title="recipebook.data" %}

```yaml
builds:
  fuelrefinery:
    legend1: "a) Iron block"
    legend2: "b) Glass"
    legend3: "c) Chest"
    legend4: "d) Emerald Block"
    legend5: "e) Sign"
    legend6: "o) Air"
    legend7: " "
    legend8: " "
    legend9: " "
    legend10: " "
    legend11: " "
    legend12: " "
    layercount: 9
    gridsize: "3x4"
    layer1: "aaa<br>ada<br>aca"
    layer2: "aba<br>bob<br>aba<br>soo"
    layer3: "aba<br>bob<br>aba"
    layer4: "aba<br>bob<br>aba"
    layer5: "aba<br>bob<br>aba"
    layer6: "aba<br>bob<br>aba"
    layer7: "aba<br>bob<br>aba"
    layer8: "aaa<br>aoa<br>aaa"
    layer9: "ooo<br>oao<br>ooo"
```

{% endcode %}


# World and Galaxy Control

## The Worldsettings file explained

{% code title="worldsettings.yml" %}

```yaml
space:  < THE WORLD NAME (SHOULD BE SAME OF FOLDER)
  server: "server"  < IF USING BUNGEEMODE THIS IS THE SERVER IT POINTS TO
  permission: "world.space" < PERMISSION TO SEE THE WORLD
  radiation: 0 < RADIATION LEVEL FOR SUIT REQUIREMENTS
  temperature: 0 < TEMPERATURE LEVEL FOR SUIT REQUIREMENTS
  mobssystem: true < SHOULD THE MOBS BE ALTERED (WEARING SPACE SUITS AND SUCH)
  airsystem: true < DO U NEED AIR OR DOES IT HAVE A ATMOSPHERE
  iconurl: "http://textures.minecraft.net/texture/fc8ea2786ace84e70f6d647a062877557c7b49adf4ed75f54b7a17ea76bfc631"  < SKIN TEXTURE URL FOR MC HEAD
  iconslot: 4 < THE SLOT BETWEEN 0 AND 8 IN THE GALAXY MAP
  iconrow: 2  < THE ROW BETWEEEN 0 AND 5 IN THE GALAXY MAP
  lowgravity: true < IS THERE LOW GRAVITY
  enablestructures: true < ALLOW SPACE STRUCTURES TO BE USED ON THAT WORLD (ROCKETS COMPRESSORS ECT..)
  galaxy: "Obasus" < THE GALAXY THIS WORLD IS IN
```

{% endcode %}

## The Galaxy file explained

{% code title="Galaxysettings.yml" %}

```yaml
Obasus: < GALAXYNAME
  multiply: 1 < MULTIPLY TRAVEL COSTS
  fuelcosts: 10 < COST IS ADDED IF U WARP TO THIS GALAXY
```

{% endcode %}


# Translate

Simple way to translate the items and armor in the lang file

To have it translated to your language you need to know the following things first!

* Once you translate any bugs that come from changes you make shall not be fixed.
* the Core language stays English. the current state only translates the items / armor and upgrades.
* translating can give broken items which means anything made before you translated will not work anymore.
* You can reload the translations ingame to see if you made mistakes at coding however to make them effective restart the server. Its best to translate while offline!
* 1 change breaks all items not having that change so keep clear once your live!
* Do not use double or single Quotes in the messages so:  Don't must be replaced by do not for example

## How to translate:

1. Stop the server - optional but recommended
2. go to the plugins folder
3. enter the MCG StarCraft Folder
4. Open the lang.yml with your pref editor.
5. change only the text between the quotation marks ( "text" )
6. Save the file but keep editor open.
7. (if the server is on turn it off)
8. (if the server was on save the file again to be certain)
9. Start the server and the new language will be loaded.

### Dont forget!

The recipes in the system require manual remake when translating.\
to do this place down a chest. and put in the first slot the end result thats translated.\
after that add all the translated ingredients in the right amounts and slots.\
When done do /spaceadmin createrecipe \[itemname] to create a recipefile \
\
After that move the customrecipefile and rename/replace the already existing recipe that needs translating. and ur done!


# MCG UCDM

{% hint style="danger" %}
This plugin is no longer supported and will receive no updates
{% endhint %}

## Requirements

Dynmap > <https://www.spigotmc.org/resources/dynmap.274/>\
UltimateClaims > <https://songoda.com/marketplace/product/ultimateclaims-the-ultimate-claiming-plugin.65>\
Spigot 1.14.4

### Usage

Just drop in your plugins folder and it works out of the box.\
Simply walk into someones claim does not matter who and it will update that claim to the map.

## Get Plugin here : <https://www.spigotmc.org/resources/mcg-ucdm-ultimateclaims-dynmap.70472/>


# MCG MineBuddy

{% hint style="danger" %}
This program is no longer supported and will receive no updates
{% endhint %}

{% content-ref url="/pages/-MTLwwhrnq1SIZfUp01J" %}
[Requirements and setup](/mcg-minebuddy/requirements-and-setup)
{% endcontent-ref %}

{% content-ref url="/pages/-MTLx-kRS\_9hf-ZJQkHX" %}
[How to add a Server and Buddy's](/mcg-minebuddy/how-to-add-a-server-and-buddys)
{% endcontent-ref %}

{% content-ref url="/pages/-MTLx04YdXM56ClvjDVx" %}
[How does the ServerLink Files work?](/mcg-minebuddy/how-does-the-serverlink-files-work)
{% endcontent-ref %}


# Requirements and setup

## Base requirements

* Windows 7 or higher
* Microsoft FrameWork 4.5 and up ([download here for free](https://www.microsoft.com/nl-nl/download/details.aspx?id=55167))
* About 20 MB free space (can increase depending on added buddy's and servers

## How to install?

1. Download the latest installer from [minebuddy.mcgsoft.eu](http://minebuddy.mcgsoft.eu)
2. run the installer with administrator rights > normally it automatically does this.
3. All done!

{% content-ref url="/pages/-MTLx-kRS\_9hf-ZJQkHX" %}
[How to add a Server and Buddy's](/mcg-minebuddy/how-to-add-a-server-and-buddys)
{% endcontent-ref %}


# How to add a Server and Buddy's

### How to add a buddy

1. Open the App&#x20;
2. Click on the green mark on the right side of the app a option screen shows.
3. Click Manage Buddies
4. Fill in the name of the buddy to add and click ok
5. The buddy is now added.

{% hint style="info" %}
Do **DELETE** **a buddy** just do the same with the same name
{% endhint %}

### How to add a Server to scan.

1. Open the app.
2. Click on the green mark on the right side of the app a option screen shows.
3. Click Manage Servers
4. Fill out the right form. fill in the IP Port and website. (extra info below)
5. And click add server (now its added)

```
IP : the adress of the server. this can be either a domain or ip (mcgsoft.eu or 00.00.00.00)

Port : normally this is 25565 but can be different for servers.

Website : the homepage. it normally automatically generates the correct url if using a domain however
if its wrong u can adjust it

Map link and Map link override : the maplink is the link used to open the worldmap if applicable.
its automatically detected if default settings for either bluemap or dynmap are used. if the server
uses a special URL enable override and enter your own url in it.
```


# How does the ServerLink Files work?

### What is MBSD or  ServerLink files?

Those files are special Data files that contain the info needed to directly add a server as connection in your MineBuddy app they are harmless plain INI documents with certain structure. (can be viewed using text editor)

### Importing MBSD Files

Importing is easy and can be done in 2 ways.

1. The easy way simply doubleclick the MBSD file and the app should open and import.
2. If step 1 fails or u wanna do it manually  go to the server manager and click import. then select the MBSD file

### Exporting MBSD files.

1. Go to the server manager.
2. Select the server you wanna export
3. click export server
4. Select a location to save
5. And voila its done!


# MCG BlueMap Essentials (Plus)

Most documentation is now valid for PLUS edition

{% hint style="warning" %}
This documentation is made for the PLUS version most apply to the old version but not everything
{% endhint %}

## How to install?

Simply put the plugin and startup the server.\
After the server started open the config file and turn on which modules u wanna use.\
once you have done that restart the server and use /**bme gui**

### Admin permission

To use the ingame commands you will need the **mcgbme.admin** permission node!

### How to manage the modules

Please use /**BME gui**

{% hint style="danger" %}
Do not edit the module files manually if possible. if you do it breaks the way the system works and causes errors if mistakes are made.

Beside that NEVER edit the files while the server is running unless you are using the ingame GUI
{% endhint %}

### How do i make Marker Signs

#### POI marker:

place a sign with : \
\[BMEPOI]\
SetName\
MarkerName

#### AREA marker:

place a sign with:\
\[BMEAREA]\
SetName\
MarkerName\
X/Z < end coordinates


# BME PLUS API

Valid from version 1.2.0

### Starting with BME Plus

Import the jar file into maven or gradle like every other plugin does.\
I do not provide a repo for it so here is a small example:

```java
<dependency>
  <groupId>MCGBluemapEssentialsplus</groupId>
  <artifactId>MCGBluemapEssentials</artifactId>
  <version>1.2.0</version>
  <scope>system</scope>
  <systemPath>PATHTOJARFILE</systemPath>
</dependency>
```

### Making a Module

Making a module must be done on every startup a good idea is to check if both BMEPlus and BlueMap are enabled and loaded and do exist:\
Bluemap is being checked by BMEPlus so you only have to check if the BME plugin is fully loaded. if not then something went wrong during startup as BMEPlus disables itself when bluemap isnt there or errors out

```java
Plugin BME = Bukkit.getPluginManager().getPlugin("BluemapEssentialsPlus");
if(BME != null && BME .isEnabled()){
 //BME is loaded and exists
}
```

Next is prepairing the data you will need to generate the areas tiles or poi icons.

```java
//For poi's
HashMap<Location,List<String>> mydata;
//For area's
HashMap<List<Location>,List<String>> mydata;
//For Chunks
HashMap<String,List<String>> mydata;




```

Lets see what they need:\
A poi just needs a location\
A area needs a list with a starting Location and Ending location like 2 opposites of a square.\
A Chunk needs a string with the X and Z of the chunk location Example: 2/5\
And they all need a List of string that contains the baloondata like so:

```java
// values are for labeling ("option/loc/title/x/y/z/world" Or
// "option/data/title/value" Or "option/pdata/value" or "option/head/title")
//!!! first item must always be a label for the icons !!!

List<String> mylist;
mylist.add("My poi label");
mylist.add("showspawn/pdata/The spawn for my poi");
mylist.add("showspawn/data/MyPoiSpawn/The spawn for my poi");
mylist.add("showspawn/head/MyPoiSpawn");
mylist.add("showspawn/loc/MyPoiSpawn/0/0/0/myworld");
```

A small example would be

```java
HashMap<Location,List<String>> mydata = new HashMap<Location,List<String>>();
HashMap<Location,List<String>> mydata2 = new HashMap<Location,List<String>>();

Location spawnlocation = getmyspawnlocation;
Location portallocation = getmyportallocation;
List<String> mylist;
mylist.add("My poi label");
mylist.add("showspawn/pdata/The spawn for my poi");
mylist.add("showspawn/data/MyPoiSpawn/The spawn for my poi");
mylist.add("showspawn/head/MyPoiSpawn");
mylist.add("showspawn/loc/MyPoiSpawn/0/0/0/myworld");

List<String> mylist2;
mylist2.add("My portal label");
mylist2.add("showportal/pdata/The portal for my poi");
mylist2.add("showportal/data/portal/The Portal for my poi");
mylist2.add("showportal/head/portal");
mylist2.add("showportal/loc/portal/0/0/0/myworld");


mydata.put(Spawnlocation,mylist);
mydata2.put(portallocation ,mylist2);
```

Like said this is a small example you can implement looping and such to prepair the data for claims and other data lists if you know coding you know how to do that.\
Now its time for making the module:

```java
BMEAPI api = BME.getBMEAPI(modulename, options, markersets);
```

Lets go over the arguments:\
Modulename = the name of your module.\
\
options a List\<String> containing the name of the config options u can use when making the baloons this is a list for the entire module\
\
Markersets this is a List\<String> of the markersets you want to provide in the end. this counts for the entire module.\
\
here is a small example:

```java
List<String> myoptions = new ArrayList<String>();
List<String> Mysets = new ArrayList<String>();

myoptions.add("showportal");
myoptions.add("showspawn");

mysets.add("portals");
mysets.add("spawns");

BMEAPI api = BME.getBMEAPI(MyModuleName, myoptions, mysets);
```

Now you have made your module it automatically created the config file for it and loaded functions in for you to use.

```
api.generatepoi(hashmapdata,setname); //for pois
api.generatepoiareas(hashmapdata,setname,areacoloringlist); //for areas
api.generatechunkareas(hashmapdata,setname,areacoloringlist,world); // for chunks
```

i explained the hashmap data types before so you know which type to use in which function however as you can see the areas need a coloring list  and the chunks also need a world.\
The coloring list can be generated using:

```java
List<Integer> generateareacoloring(int fillr,int fillg, int fillb, int stroker,int strokeg, int strokeb)
```

It returns a Integer list that u can provide as argument on the spot. if you dont want to u can use the default coloring by setting it to NULL in the argument field.\
The coloring provides the looks of the infill and outline(stroke) of the area or chunk on the map\
The world must be the world that the chunk is in this is important for the generation of the locations.

Thats it! once you do that the sets should become visible and icons should pop up!

The data doesnt update itself you need to send the hashmap again after a while thats updated with the latest data. keep in mind the faster you send it the more lag you generate so i would keep a 15 minutes timer between updates if its large and at least 5 minutes if its small.

### Some tips and tricks

#### Using options

Sometimes a POI or other marker has multiple details that can be shown however to give the user options for it you provide a list of options when creating the module.\
these options can be found back in the lines you add to the list:

```java
mylist.add("showspawn/data/MyPoiSpawn/The spawn for my poi");
```

As you can see the first text is showspawn this is the option name from the config and the same as one in the list you provide on creating the module.\
If its false in the config it skips this line to be added to the balloon. (by default all are true)

#### Using multiple types of markers in one set?

This is possible by providing the same setname for both generate functions.

#### How to delete data?

Simply restart the server and all markers and sets are gone until you create the module again.

#### What not to do?

Creating multiple modules for the same plugin is not needed always use the same instance of the api when adding data never create a new instance for every update or datalist as this will create a new module in memory over and over creating a leak.

Never use the api without checking if the api exists if BME isnt loaded crashed or not exists using the api forcefully would crash the server or generate massive errors.

Never generate to quickly after the last generation. providing the generator again in a short timeframe causes huge cpu spikes to occeur as it will loop through your hashlist while the list is small this isnt a huge problem but once the data becomes bigger it becomes a load bearing problem for the server.


# MCG Ultimate Quester

Welcome to the ultimate quester wiki page.

Follow the following links for more information:

{% content-ref url="/pages/-MfwTHwbo53j0pwbl6aB" %}
[Creating A quest](/mcg-ultimate-quester/creating-a-quest)
{% endcontent-ref %}


# Creating A quest

This is a TODO page

### The tree

A quest has a tree of objectives so called actions. the actions can be a lot and offer all the interactivity the plugin has to offer. for a list of actions possible visit the Actions page.

{% content-ref url="/pages/-MfwTLrDP\_UqSvpur6L8" %}
[Actions](/mcg-ultimate-quester/creating-a-quest/actions)
{% endcontent-ref %}

### The start Type

The start type is the TYPE setting in the quest file. it can be either sign. or NPC.\
Keep in mind the command overrules this section completely.\
if its set to NPC enter the NPCID in its npcid setting so the plugin knows which npc should trigger this one.\
the sign is setup like so:\
\[Quester]\
Questfilename

### Requirements

Every quest has requirements that needs to be meeted before the quest is triggered.\
this prevents doing a quest multiple times or makes the flow go like you want it to.

{% content-ref url="/pages/-MfwdQ1Cjw7cHqTLf3Nm" %}
[Requirements](/mcg-ultimate-quester/creating-a-quest/requirements)
{% endcontent-ref %}

### Finishactions

The end of a objective has a finish action as always it should be one of the following:

**GOTO**\
**EXIT**\
**FINISH**\
the **GOTO** must be put like so: **GOTO#objectivename** This starts an other objective in this quest.\
the **EXIT** must be put like so: **EXIT#Quest** this exits the current quest completely canceling out any progress.\
The **Finish** must be put like so: **FINISH#TAG** this exits and finishes the quest and gives the user TAG tag to his file. this tag can be used in requirements beside that the quest is marked as completed for the user also usable in the requirements


# Actions

| Action                                 | Fields                                         | Example                                                                                                                                                                     | Extra info                                                                                                                                                                                                                                                                                                                      |
| -------------------------------------- | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| question                               | <p>question<br>Answers</p><p>actions</p>       | <p>The question is the question to ask</p><p>Each answer you can click for action to run</p><p>The actions (must be same amount as answers</p>                              | Yes No 1 0 will be automatically turned to true or false (java fallback)                                                                                                                                                                                                                                                        |
| Conversation                           | <p>timing</p><p>values</p>                     | <p>The timing states the seconds between each line</p><p>the values are the conversation per line</p>                                                                       | Making it to fast results in instant messaging  the speed must be a integer not a double                                                                                                                                                                                                                                        |
| break\_block                           | <p>Material</p><p>Amount</p>                   | <p>Material must be a Spigot material the user has to break</p><p>Amount must be the amount the user has to break</p>                                                       | Use Materials from [THIS ](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html)list                                                                                                                                                                                                                               |
| place\_block                           | <p>Material</p><p>Amount</p>                   | <p>Material must be a Spigot material the user has to place</p><p>Amount must be the amount the user has to place</p>                                                       | Use Materials from [THIS ](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html)list                                                                                                                                                                                                                               |
| bring\_to\_location                    | <p>Material</p><p>Amount</p><p>WXYZ</p>        | <p>Material must be a Spigot material the user has to have</p><p>Amount must be the amount the user has to have</p><p>WXYZ = world XYZ coordinates of destination</p>       | <p>Use Materials from <a href="https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html">THIS </a>list</p><p>It will measure to 5 blocks away every 5 seconds</p>                                                                                                                                                      |
| visit\_location                        | WXYZ                                           | WXYZ = world XYZ coordinates of destination                                                                                                                                 | It will measure to 5 blocks away every 5 seconds                                                                                                                                                                                                                                                                                |
| give\_item                             | <p>Material</p><p>Amount</p>                   | <p>Material must be a Spigot material the user gets</p><p>Amount must be the amount the user gets</p>                                                                       | Use Materials from [THIS ](https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html)list                                                                                                                                                                                                                               |
| execute\_command                       | Command                                        | Command is the command to execute holds the placeholder {player} for player name                                                                                            | Runs the command set only a single command is allowed and the placeholder {player} is replaced with the players name                                                                                                                                                                                                            |
| Fish                                   | amount                                         | Amount must be the amount the user caught                                                                                                                                   | It will count everything you catch with the fishing rod during fishing including junk and other items                                                                                                                                                                                                                           |
| Fish\_item                             | <p>Amount</p><p>Material</p>                   | <p>Material must be a Spigot material the user caught</p><p>Amount must be the amount the user caught</p>                                                                   | <p>Use Materials from <a href="https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html">THIS </a>list</p><p>Note the items you can catch is not altered so entering a impossible items results in a deadlocked objective</p>                                                                                          |
| smelt\_item                            | <p>Material</p><p>Amount</p>                   | <p>Material must be a Spigot material the user must melt</p><p>Amount must be the amount the user must melt</p>                                                             | <p>Use Materials from <a href="https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html">THIS </a>list</p><p>Note the items you can smelt is not altered so entering a impossible items results in a deadlocked objective</p>                                                                                          |
| shear\_entity                          | <p>Entity</p><p>Amount</p>                     | <p>Entity is the name of the spigot entitytype</p><p>Amount is the amount the user has to shear</p>                                                                         | <p>User EntityTypes from <a href="https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html">THIS</a> list</p><p>Note the EntityTypes you can shear is not altered so entering a impossible EntityTypes results in a deadlocked objective</p>                                                                  |
| milk\_entity                           | <p>Entity</p><p>Amount</p>                     | <p>Entity is the name of the spigot entitytype</p><p>Amount is the amount the user has to milk</p>                                                                          | <p>User EntityTypes from <a href="https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html">THIS</a> list</p><p>Note the EntityTypes you can milk is not altered so entering a impossible EntityTypes results in a deadlocked objective</p>                                                                   |
| kill\_entity                           | <p>Entity</p><p>Amount</p>                     | <p>Entity is the name of the spigot entitytype</p><p>Amount is the amount the user has to kill</p>                                                                          | <p>User EntityTypes from <a href="https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/EntityType.html">THIS</a> list</p><p>Note the EntityTypes you can kill is not altered so entering a impossible EntityTypes results in a deadlocked objective</p>                                                                   |
| enchant\_item                          | <p>Material</p><p>Amount</p>                   | Material is the item enchanted and the amount is the times a item needs to be enchanted                                                                                     | <p>Use Materials from <a href="https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html">THIS </a>list</p><p>Which items that can be enchanted is up to vanilla MC to handle</p>                                                                                                                                       |
| enchant\_ite&#x6D;*\_*&#x65;nchantment | <p>Material</p><p>Amount</p><p>Enchantment</p> | Material is the item enchanted and the amount is the times a item needs to be enchanted And the Enchantment is to make it specific that it ony triggers on that enchantment | <p>Use Materials from <a href="https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html">THIS </a>list</p><p>Use enchantments form <a href="https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html">THIS</a> list</p><p>Which items that can be enchanted is up to vanilla MC to handle</p> |


# Requirements

| Requirement usage   | Example                                                                                                                       |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| PERM#myperm         | Requires the user to have mcgquester.myperm permission                                                                        |
| QPERM#myperm        | <p>Requires the user to have mcgquester.myperm permission<br>Fails silently no output is given to the player</p>              |
| TAG#mytag           | Requires the user to have the tag mytag from an other quest                                                                   |
| QTAG#mytag          | <p>Requires the user to have the tag mytag from an other quest</p><p>Fails silently no output is given to the player</p>      |
| NOTTAG#mytag        | Requires the user to not have the tag mytag from an other quest                                                               |
| QNOTTAG#mytag       | <p>Requires the user to not have the tag mytag from an other quest</p><p>Fails silently no output is given to the player</p>  |
| HASDONE#myquest     | Requires the user to have done the myquest before this quest                                                                  |
| QHASDONE#myquest    | <p>Requires the user to have done the myquest before this quest</p><p>Fails silently no output is given to the player</p>     |
| HASNOTDONE#myquest  | Requires the user to have not done the myquest before this quest                                                              |
| QHASNOTDONE#myquest | <p>Requires the user to have not done the myquest before this quest</p><p>Fails silently no output is given to the player</p> |
| HASXP#10            | Requires the user to have at least 10 XP LEVELS                                                                               |
| QHASXP#10           | <p>Requires the user to have at least 10 XP LEVELS</p><p>Fails silently no output is given to the player</p>                  |


# MCG ParkManager SE

{% hint style="warning" %}
This plugin will not be evolved further. however does still got support and updates to support the newest minecraft versions.
{% endhint %}


# Players (park visitors)

{% content-ref url="/pages/HVkBhnavGtmnkaCF4hmR" %}
[(PMP) Attractions](/mcg-parkmanager-se/players-park-visitors/pmp-attractions)
{% endcontent-ref %}

{% content-ref url="/pages/sHCQcjKP9PLEpxQdP6GN" %}
[(PMP) The smartphone](/mcg-parkmanager-se/players-park-visitors/pmp-the-smartphone)
{% endcontent-ref %}


# (PMP) The smartphone

#### The command

The command to use is always /phone

#### Apps?

The phone exists out of multiple apps. more apps are added during the development progress.\
The base apps are attractions and shows app.

#### The attractions app.

This app shows all attractions and their status and if you have the perm for it it can teleport  you to the attraction when u click on it.

#### The shows app.

The shows app shows all shows and  their times that exist in the park.


# (PMP) Attractions

#### Statuses and entry

Every attraction has a status. the gates and fastpass gates react accordingly however fastpassgates can be closed even if the attraction itself is open.\
Entering the waiting line will eventually  trigger the payment you will automatically pay the fee for the ride if possible.\
if u do not have the money needed you will be teleported back out.\
\
For trackrides there are special gates its up to the park staff to use it but its a gate that opens to enter the ride and closes so you can wait on the spot for the next run. mostly its always step in on one side and out the other.


# Admins (Park Staff)

Note this documentation is still being worked on more pages and info are added as the updates go aswell as being added if they are still missing

## Permissions

The permissions are barebone and are not very detailed as its not really needed here.\
The park system works with ranks based perms so here they are: (below the chart you se rank explanations)

<table><thead><tr><th width="297">PermNode</th><th width="287">Usage</th><th width="150">ParkRank</th><th>Result?</th></tr></thead><tbody><tr><td>MCGPMSE.manage.(ATNAME)</td><td>MCGPMSE.manage.myattraction</td><td>Park Operator</td><td>Allows management of the attraction</td></tr><tr><td>MCGPMSE.reloadrc</td><td>MCGPMSE.reloadrc</td><td>Park Owner</td><td>Reloads the cart systems for Trackrides</td></tr><tr><td>MCGPMSE.manage.*</td><td>MCGPMSE.manage.*</td><td>Park Operations Manager</td><td>Allows management of all attractions</td></tr><tr><td>MCGPMSE.teleport.(ATNAME)</td><td>MCGPMSE.teleport.myattraction</td><td>Park Vips</td><td>Allows teleporting to Attractions using the phone</td></tr><tr><td>MCGPMSE.teleport.*</td><td>MCGPMSE.teleport.*</td><td>Park Vips</td><td>Aorting to All Attractions using the phone</td></tr><tr><td>MCGPMSE.showbuilder.manage</td><td>MCGPMSE.showbuilder.manage</td><td>Park Manager</td><td>Allows creation and management of shows</td></tr><tr><td>MCGPMSE.receiveerrors</td><td>MCGPMSE.receiveerrors</td><td>Park Manager</td><td>Receives All important errors in chat</td></tr><tr><td>MCGPMSE.buildmode</td><td>MCGPMSE.buildmode</td><td>Park Manager</td><td>Allows building in the park (/phone buildmode)</td></tr><tr><td>MCGPMSE.manager</td><td>MCGPMSE.manager</td><td>Park Manager</td><td>All management perms  combined</td></tr><tr><td>MCGPMSE.security</td><td>MCGPMSE.security</td><td>Park Security</td><td>(coming soon)</td></tr><tr><td>MCGPMSE.mechanic</td><td>MCGPMSE.mechanic</td><td>Park Mechanic</td><td>(coming soon)</td></tr><tr><td>MCGPMSE.operator</td><td>MCGPMSE.operator</td><td>Park Operator</td><td>All operator perms combined</td></tr></tbody></table>

### Ranks explaned

* Park Owner > the server admin that controls everything
* Park Manager > Server admins with a lot of control like creation and editing of the park.
* Park Operator (or park operations manager) > Server staff that can manage attractions and their settings (start stop but also gates and more)
* Park Security > Coming soon specialized staff members that can hold the line like a moderator does but in a gui like giving them a fine or kicking out of the park.
* Park Mechanic > Coming soon will repair broken machines and attractions when they broke down in a event.
* Park Vip > Special Guests with a little more premium perks


# Create Attractions

Creating a attraction is pretty easy but still requires some steps.

The requirements are always the same\
A entry (waiting line)\
A Exit (the exit)\
A Entrance location\
And a at type (more on that later)

First lets create the attraction place a sign just outside the entrance (in front of the entrance to the waiting line) \
Write the following on the sign:\
createat\
ATname\
generic\
The first line states create a attraction here.\
The second must be the name u wanna use (WITHOUT SPACES!)\
And the 3th line must be the type (generic / trackride)\
\
Once you close the sign editor the sign pops and the attraction is created.\
From this point you need to use the gui for further setup.\
Using the phone is the most easy /phone > then the attractions app and click the attraction\
This is the control gui

#### Event manager

In the control gui there is a button that states event manager this is only used for trackrides\
It will give you a set of items shift clicking a block allows changing of value\
When you click a detector rail it sets it as a event trigger for example using the speed tool you can change the speed of the cart to make a fast or slow ride.\
GiveBowSet gives a set of a bow with arrow and infinity to make a target track ride.\
To stop use the exit tool<br>

#### Settings manager

This has all main settings like the costs for normal and fast pass entry aswell as the gates for all types and machines.\
The chat will give instructions once u start a certain mode\
For all gates simply enable the mode then right click any fencegate piston or door to set it as door.\
For the fastpass machines its a 2 seperate system and step process.\
For a machine its as simple as clicking the dropper/dispenser.\
For a checking machine first click the machine then the piston connected to that machine.<br>

### Attraction types?

#### Generic

A ride that can be anything that doesnt involve event rails or specialized features.\
It can be a maze to a simple bounce house. generic includes all base features just not the events and such.

#### Walkthrough

A event based ride (basically walk through the ride) works the same as a trackride but with pressureplates instead of detectorrails. (possible more triggertypes in the planning) (COMING SOON)

#### Trackride

A event based system that offers extra features for the rail based attractions using detectorrails as trigger.

CCRide

External plugin offering general amusement rides like enterprise or a ferris wheel using animations and minecarts. (extra setup needed check the CCRide page for it)

### Door types

#### Vanilla

Any fencegate  / door / piston / stickypiston / ironDoors count

#### BigDoors

Specialized trigger to use bigdoors as door see the bigdoors page for more info.


# BigDoors Support

### How to use BigDoors

Simply instead of gatetype vanilla enter BigDoors.\
Then the option to give a BigDoor ID can be used. instead of selecting the door.\
The ID in question will open/closed like the normal gates do with the status of the attraction.\
Keep in mind the animation of bigdoors can run behind if toggling to quickly not much i can do about that.


# CC Rides Support

### General rules

The plugin does not have native build in api access to CC Rides (it doesnt have one) \
so instead the Park Manager will attempt to run commands to configurate it completely.\
\
so here are some rules to prevent errors or mistakes.\
1\. only control the attraction using the parkmanager controls do not use the ccrides commands for that.\
2\. Do no Remove the ride using ccrides commands otherwise it causes misbehaviour because the attraction is gone and park manager doesnt know about it.\
3\. The implementation is tested however its prone to fail if the author of ccrides changes their commands or functionality if this happens report it to mmuziek on discord.

### how to use a ccride

Instead of generic or trackride enter ccride and on the 4th line the type of ccride. for example enterprise or ferriswheel all of them can be found on the ccride wiki.\
\
The attraction will be created and centered on the sign location you are free to move the attraction a bit after creation using the CCRides Commands. as long as you keep the rules above intact.\
\
You can adjust the looks and feels aswell as base functionality of the attractions using the ccrides commands to control the attraction use the Parkmanager gui's or signs.\
\
Some settings like autostart forced join prevent exit and such are already programmed by park manager to fit the style and such of pm if u change it it might cause issues use at own risk.


# Commands

Most of the park features are all gui based but there are still some commands.

#### /phone buildmode

Enables building and removing in the park.

#### /phone reloadrc

Reloads the train/cart system for trackrides

#### /phone toggleat (atname)

Toggles the open/closed status from a attraction given in the command

#### /phone

opens the phone gui

#### /park

opens the main park gui (MANAGEMENT)

#### /park toggle

toggles the main park gates open or closed

#### /park close

closes the park no matter the state.

#### /showbuilder main

opens the main and general show controls

#### /showbuilder showeditor edit (showname)

quick shortcut to edit a show (show must exist already)


# Shows!

### What are shows?

Shows are basically music and effects combined A show can run for example lasers waterjets lava jets fireworks and more!

#### How to create a show?

Use the shows gui (/showbuilder main) enter a name and start editing

### Channels?

Every show contains showblocks a showblock is a starting location for a effect. they must be seperated by at least 1 block and are divided by channels.\
One showblock has at least 1 channel but can have unlimited channels.\
Each channel can have multiple showblocks. this way you can make sets of effects that run at the same time on the same spots but alternate them easily.\
\
For example.\
I make a quare with 4 show blocks (each corner one) i give each of them a own channel 1 - 2 - 3 - 4 then i select the top 2 showblocks for channel 5 and the bottom 2 for channel 6 and all for channel 7.\
\
When i trigger channel 1 only the left top triggers the effect. when i trigger channel 7 all corners trigger the same effect. when i trigger 5 only the top  2 blocks trigger.

### The Effect maker.

The timeline builder (explaned below) uses pre made effects Simply click create effect in the gui and choose what type of effect to create.\
Then configurate it like you wish and click save the effect can now be used in the shows.

### The Speaker System

The plugin supports NoteBlockAPI and NBS files if u have the NBAPI plugin installed you can use the musicbox folder to load in nbs songs for each show u can add speakers simply place down noteblocks to add them and destroy the noteblock to remove when in speaker addition mode.\
In the gui you can also choose the song to play and what mode it will be played at.\
Local or Global.\
Local has a range that people need to be near the speaker to hear the music the further away the less they hear.\
Global is park wide as strong as if ur on the speaker

### The timeline builder.

This is the hardest part.\
When in the timeline builder you can scroll through the seconds and channels of the show on the top.\
The seconds starts at 0 (start of show) and ends when the highest number with effects has been reached the only exception is the music that will play until the song ends. its advised to keep both the same length.\
Then you have a row of effects you designed already when you click a effect it gets added to the current selected channel and second combination \
For example if i add myfirework to second 10  on channel 2 then 10 seconds after the show started the effect called myfirework will launch on all showblocks added to channel 2.\
When your done editing click save to apply the changes

### Show Times?

Every show has showtimes they are added and removed using signs.\
Simply place a sign (where people can see the showtimes) with the following layout.\
\[show]\
Showname\
13:00\
\
The firstline states its a showtime board.\
The second one must be the showname exactly\
the thirth one the show time (Real Life Time!)\
Its based on a 24h clock\
\
If u want a show multiple times simply create seperated signs each with their own time.\
Want multiple boards with the same time display simply remake the sign with the same time and they will both be updated with the status of the show


# MCG Mine-Net

Plugin documentation

## Main Guide

{% content-ref url="/pages/0Xx6fdIikyjXX3ns8pbO" %}
[Installation](/mcg-mine-net/installation)
{% endcontent-ref %}

{% content-ref url="/pages/8LgYT1QMNEpdgtHHTZiQ" %}
[Plugin Commands and permissions](/mcg-mine-net/plugin-commands-and-permissions)
{% endcontent-ref %}

{% content-ref url="/pages/XaoPdLfxTsKTndGgfXHj" %}
[Editing the theme](/mcg-mine-net/editing-the-theme)
{% endcontent-ref %}

{% content-ref url="/pages/ZqQ5ctlgtsVkn2TwikLH" %}
[Navigation Editor](/mcg-mine-net/navigation-editor)
{% endcontent-ref %}

{% content-ref url="/pages/fWaeRKU20uDKfr8yp0E0" %}
[Discord Manager](/mcg-mine-net/discord-manager)
{% endcontent-ref %}

{% content-ref url="/pages/BS7z6zIDGXY17dM6U7ur" %}
[FAQ](/mcg-mine-net/faq)
{% endcontent-ref %}

## Module Related

Coming soon


# Installation

## Requirements

Mine-net plugin doesnt need any other plugin for its base to work.\
However some are used for certain modules to work these dependency's are written on the modules pages.

## First steps

In order to use Mine-Net you need a mine-net website! \
Go to <https://mine-net.eu/login.php> and login with your discord account

Mine-Net will automatically create the right files for you!

## Configurating the plugin

In order to configurate the plugin we need 2 things\
A community name and the plugin key.

On mine-net go to the General & Modules page.

Fill out the top form as much as you need.\
The required fields are Server IP for either java or bedrock or both and Community Name aswell as the MC Version your server runs on.\
When your done with that click SAVE

Now go to your server and drop in the mine-net jar file afterwards start the server and stop it&#x20;

Now go into the Mine-Net folder inside the plugins folder there is a Config.yml there<br>

Enter the same servername as you entered in the community name field\
For the plugin key you can get that from your dashboard page

```
minenet:
  servername: "" < the name you gave your server
  pluginKey: "Putkeyhere!" < the pluginkey as shown on your dashboard
```

now save the config and startup the server.\
The plugin is now ready to be used with your new Mine-Net website!

### BungeeCord?

The bungeecord has the same first time setup as the spigot plugin\
after that make sure to restart any server behind the bungeecord network accordingly. if all done correctly they all show bungeemode enabled in the console meaning that they wil listen to bungeecord messages instead of selfscanning


# Plugin Commands and permissions

Commands and Permissions

The plugins installation is covered in the installation page

{% content-ref url="/pages/0Xx6fdIikyjXX3ns8pbO" %}
[Installation](/mcg-mine-net/installation)
{% endcontent-ref %}

The commands are listed below including their module and permissions required.\
Keep in mind the module must be enabled to use the commands belonging to the module

## Commands & Permissions

<table><thead><tr><th width="227">Command</th><th>Function</th><th>permission</th><th>Module</th></tr></thead><tbody><tr><td>/ban [user] [reason]</td><td>Bans [User] for [Reason] and sends it to the database</td><td>minenet.banuser</td><td>Bansystem</td></tr><tr><td>/unban [user]</td><td>UnBans [User] and removes it from the database</td><td>minenet.unbanuser</td><td>Bansystem</td></tr><tr><td>/manage bans</td><td>Provides a one time login link for managing Bans and appeals</td><td>minenet.managebans</td><td>Bansystem</td></tr><tr><td>/manage togglecmd [map/discord/web]</td><td>Turns on / off the social commands starting from next restart</td><td>minenet.managesocial</td><td>General</td></tr><tr><td>/map</td><td>Provides a quick link to the worldmap</td><td>None</td><td>General</td></tr><tr><td>/discord</td><td>Provides a quick link to the discord</td><td>None</td><td>General</td></tr><tr><td>/website</td><td>Provides a quick link to the website</td><td>None</td><td>General</td></tr><tr><td>/manage addleaderboard [name] [title] [PAPI placeholder]</td><td>Allows adding of a leaderboard with given NAME and shows on the webpage with given TITLE using PAPI Placeholders</td><td>minenet.leaderboards.add</td><td>Leaderboards</td></tr><tr><td>/manage removeleaderboard [ name]</td><td>Remove the leaderboard with given NAME</td><td>minenet.leaderboards.remove</td><td>Leaderboards</td></tr><tr><td>/manage listleaderboard</td><td>List all leaderboards and entry's each one has</td><td>minenet.leaderboards.list</td><td>Leaderboards</td></tr><tr><td>/manage getleaderboard [name]</td><td>Showcases all scores registered for provided leaderboard</td><td>minenet.leaderboards.get</td><td>Leaderboards</td></tr></tbody></table>


# Editing the theme

Editing the looks and feel of your website can be a bit tricky\
However its easy to learn and we made sure we have pre-sets!

## Using Presets

When you are on your theme-settings page you see a block called Preset-Themes\
Lets go over it!\
\
First you see a dropdown menu called themes the theme u select will be shown below that in the preview box. give it a try :)\
\
The generateheaders is a easy tool to generate headers automatically so you dont have to make them or upload them its best to keep it on while using the presets!

When you found a good preset click the load button at the bottom of the preset box.\
The page refreshes and you will see the results on the right\
you can adjust these if u like to confirm the changes click the save button below the right page area\
\
The website is now using the chosen preset!

## Manual theme editing

editing the theme one by one is the perfect way to make it entirely at your fingertips!

Lets go over the most important aspects\
\
The imgBBapi key is not required but once entered and saved it allows uploading of images required for the logo and headers\
\
The Color boxes are color pickers basically click the color you want and it sets it to that color\
\
The header URL boxes needs a URL pointing to the image you wanna use as header for the pages you set it for.\
This header is 1920 wide and about 256 Heigh by default\
\
and last but not least the logo and favicon\
The logo is square can be up to 512 pixels but is scaled down\
the favicon is the little icon in the browsertab and if u install it as app. same rule square image up to 512 pixels is best.\
\
When your done editing the list click save to confirm the changes!


# Navigation Editor

The navigation editor is for more advanced users.\
The function will be to edit the way the navigation is displayed and adding custom links and submenu's to the navigation

## Adding Custom Links

Adding links is the most easy action\
On the left of the page you will find a block called Add Custom Link.\
The first inputbox will be the displayed title\
The second Inputbox will be the link the title points to.\
Now click Add Link and its added to the navigation menu

## Adding Submenus

To add a Submenu Enter the title of the menu in the ADD Submenu box\
Then click Add Submenu\
Once done click EDIT on any link you wanna put into the submenu\
Then under Nav item location select the submenu you just created and click save.

## Fixing Urls after community name change

The links in the navigation might be invalid when you changed the community name.\
To fix this there is a button called Refresh Navigation.\
This will automatically fix all generated navigation links to match your current community name and webadress.\
When using a custom domain the links remain the same as the custom domain is a second accesspoint so they will use the old linkages dont forget to refresh when you changed your community name even when using a custom domain

## Editing Navigation links

### Changing names

To change the name of a link click EDIT beside the navigation item\
Now change the NAVIGATION ITEM TITLE and click SAVE CHANGES

### Changing URL's

You can only change urls for CUSTOM links you added yourself Generated links from modules cannot be changed.\
To change your custom url click EDIT beside the navigation item\
Now change the URL box to your liking and click SAVE CHANGES to confirm

### Nav Item Location

This is used to move the navigation item to submenus if you have them\
The default (not in a submenu) is TOP

### Nav item order

This is to sort the navigation the lower the number the higher in the list it will get.\
For the default navigation the lower the more left the item is.\
For submenus the lower the higher the item will be.\
For example Navitem1 will be on 2 and Navitem2 will be on 1.\
Then Navitem2 will be the first and Navitem1 will be the second

### Deleting Navigation items.

This can only be done for submenus and Custom links.\
Click EDIT next to the nativation item to remove\
Then click the RED button called Delete Item.\
To remove module related items disable the module that uses the link.


# Discord Manager

The discord manager is used to setup webhooks and send custom messages aswell as setting the discord link.

## Setting up the discord join url

The join url is used on the website for Join Discord buttons And also ingame using /discord.\
To set it enter a invite URL into the discord Join URL box and click Update or Save\
If you ever wanna remove the url click Disable

{% hint style="info" %}
Make sure your invite url never expires! otherwise people cannot use it anymore when it does
{% endhint %}

## Managing Webhooks

A webhook is a url that messages can be send to.\
The plugin interacts with the website that in his turn can send webhook messages to your discord.

### Getting a webhook for a channel

To get a webhook Right Click a channel and click edit channel on your discord server\
Under Intergrations tab click Create Webhook you will see a new webhook appearing.\
Click the webhook and then Click Copy Webhook URL This is the hook url we use on mine-net.

### Setting the General Webhook

After getting the webhook for the channel you want to receive messages on\
Click EDIT HOOK behind the General item in the list.\
Now Paste the Webhook you copied and click SAVE and Enable.\
The General hook is used for Custom embeds and for all messages from modules you havent set a hook for.\
To disable it again click Save and Disable hook Note when General is Disabled and other hooks arent set no messages will be send to your discord.

### Module Hooks

The Module hooks are setup the same as the General hook.\
The difference is that they bind to the module\
So for example if you set a hook for Members then any messages from the Members module will be send to that hook\
This means you can have different channels receiving different messages.

### Customizing the look for your bot.

All messages are send by the Mine-Net bot you do not need to invite the bot you can however Edit the looks.\
On the left box called Discord Bot Design you can edit its Name its AvatarURL (image url) and its Color\
When done click Save Design any new messages send will use the new design!

## Sending a Custom Message

\
When you have a General Hook set you can send custom messages. So called Embeds.\
On the left you find a box called Send Custom Embed.\
in here you can enter a Title and a message to send to the General Hook.\
Click Send Embed to send it and see it appearing in the design  you set and the title and message you just made!


# FAQ

The most common asked questions will be put here. its handy to check prior to asking support!

<details>

<summary>How do i setup the plugin?</summary>

[Installation](/mcg-mine-net/installation)

Visit Installation

</details>

<details>

<summary>I get cannot use Mine-ID? when using the registration command?</summary>

This can be 2 options.\
Either mine-ID is down (you can check that by visiting <https://mineid.mine-net.eu)\\>
Or you do not use a Java account and mojang cannot verify you as java player.\
To solve this log into a java server with your java account and try again

</details>

<details>

<summary>What are the requirements for a valid website?</summary>

Please visit <https://mine-net.eu/TOS.php> and read the Non Used Sites Guide

</details>

<details>

<summary>How do i get Support?</summary>

Please join our discord server and make a topic in  mcg-plugins (<https://mine-net.eu/discord.php>)

</details>


# MCG Menu (all plugins)

The intergrated MCG Menu functionality

### What is this?

MCG Menu is a part of the MCG Plugin security which is intergrated in all MCG plugins.\
It allows for easy error reporting and updating of all MCG Plugins.

### Commands

All commands are based on /MCG

| command       | arguments                                        | Description                                                                                           |
| ------------- | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------- |
| /MCG update   | <p>\[all / pluginname]<br>(Console friendly)</p> | Updates or installs the plugin requested or all at once. (it will update if it exists if not install) |
| /MCG reports  | <p>\[page]<br>(ingame only)</p>                  | View error reports and send them to MCG for investigation and fix                                     |
| /MCG register | <p>\[ID] \[KEY]<br>(ingame only)</p>             | Links your central account with your server. this is required for the reports to work.                |
| /MCG discord  | (ingame only)                                    | Quickly get the discord join link to chat about the plugin                                            |
| /MCG Website  | (ingame only)                                    | Provides a link to the MCG website                                                                    |
| /MCG Central  | (ingame only)                                    | Provides a link directly to MCG Central                                                               |
| /MCG thanks   | (ingame only)                                    | Shows donators                                                                                        |
| /MCG update   | (ingame only)                                    | While ingame opens a GUI  that allows you to install or update any mcg plugin                         |
|               |                                                  |                                                                                                       |

### Hey! what about my privacy?

Nothing is send or received without your concent.\
The only thing it does automatically is checking for plugin updates which u can turn off.


