# Gens Server Setup - \[4.250]

## Installation

*Follow these steps to properly install the Gens Setup and make it work on your Minecraft server.*

* **Download Required Plugins:**
  * Navigate to the [Dependencies Tab](https://builtbybit.com/resources/gens-server-setup.35497/field?field=dependencies) on the product page.
  * Click **"Link Here"** next to each plugin to download the required version.
* **Set your Server Version:**
  * If you're using a server host, set your version to **1.21.8**. ViaVersion and ViaBackwards are already included in the Server Setup, so players using older or newer versions will still be able to join your server.
* **Prepare Server Files**:
  * **Delete all existing server files** (if there are any).
  * **Upload** the "Gens Setup - \[v4.250].zip" file to your server.
  * **Unzip** the file, it will create a folder containing everything needed.
  * **Move the contents** of the unzipped folder into your main server category.
  * Drag and Drop the dependencies your downloaded into the **plugins** folder
* **Verify Paper Installation**:
  * If you are using a server host, the **paper-1.21.8.jar** file should be added automatically.
  * If you server doesn't, download the latest **Paper 1.21.8** build from [PaperMC.io](https://papermc.io/downloads/all?project=paper)
  * Paper is the server software that this server was built and tested on, other server software (like **Velocity**, **Purpur**, **Sponge**, **etc..)** should work, but its not guaranteed and may cause some issues.
* **Need Help?**:

  * If you encounter any issues, join my [Discord Server](https://discord.gg/7kvJ5m4CDW) and create a support ticket.
  * If you're using different server software and something isn't working, open a ticket — we'll do our best to help you.

## **Branding**

*This section explains how to change all links and default server names to your own server name.*

* **Branding with Skript:**
  * **Open the Misc.sk file:**
    * Navigate to `/plugins/skript/scripts/Other/Misc.sk` in your server files.
    * Open this file with any editor (Notepad, Visual Studio Code, Anything!)
  * **Update Social Links:**
    * In this file, L**ines 1 to 10** contain placeholder for social media links (Discord, Youtube, Instagram, Twitter)
    * Replace these links with your corresponding ones.
  * **Set your Server's name:**
    * On **line 13**, find the variable defining the server's name.
    * Change this to your own server name.
  * **Update your Webstore link:**
    * Go to `/plugins/skript/scripts/Menus/Store.sk`
    * Open the file and find Line 2
    * Replace the value with the URL of your webstore
  * Save all files and restart the server after you have done all these changes.
* **Branding with TAB Plugin:**
  * **Locate the config file:**
    * Go to `/plugins/TAB/config.yml` in your server files.
  * **Find the server name:**
    * Open `config.yml` with a text editor and press **CTRL+F** to open the search box
    * Search for the text ꜱᴇʀᴠᴇʀɴᴀᴍᴇ.ɴᴇᴛ
  * **Convert your Server IP to small caps:**
    * Visit [Disk.gg](https://disk.gg/small) and enter your server IP.
    * Copy the smallcaps version generated by the website.
  * **Replace the server name:**
    * in `config.yml,` replace `ꜱᴇʀᴠᴇʀɴᴀᴍᴇ.ɴᴇᴛ` with your smallcaps Server IP from step 3.
  * Save the file with **CTRL+S** and use the command `/tab reload` to apply the changes without restarting the server.
* **Branding with MiniMOTD:**
  * **Locate the config file:**
    * Go to `plugins/MiniMOTD/main.conf` in your server files.
  * **Change the server name:**
    * Open `main.conf` with a text editor.
    * On **Line 9,** find `ServerName` and replace it with your server's name.
  * **Update version info (optional):**
    * At the end of **Line 9**, you will see a version number like `[4.125]`
    * Change it to your current server version, for example `[1.0]`
  * **Change the Season text:**
    * On **Line 10,** you'll see `ꜱᴇᴀꜱᴏɴ ɪɪ`
    * Replace it with `ꜱᴇᴀꜱᴏɴ ɪ` or you preferred text using the smallcaps tool from before - [Disk.gg](https://disk.gg/small)
  * Save your changes with **CTRL+S**, and use the command `/minimotd reload` to apply the changes.
* **Branding with AdvancedBan**
  * **Locate the messages file:**
    * Go to `/plugins/AdvancedBan/Messages.yml` in your server files.
  * **Find the default Discord link:**
    * Open the file with a text editor and press **CTRL+F** to search for `discord.gg/servername`
  * **Replace it with your Discord Invite:**
    * Press **CTRL+H** to open the replace tool.
    * Replace all `discord.gg/servername` with your actual Discord invite link.
  * Press **CTRL+S** to save the file, then use the command `/advancedban reload` to apply the changes:

## Customization:

*This section explains how to customize the core features of the setup.*

**Boosters:**

* Location: `/plugins/skript/scripts/Mechanics/Boosters.sk`
* At the top of the file, you can add new boosters using this following syntax : `registerBooster(<unique id>, <name>, <multiplier>, <time>, <type>, <item>, <light color>, <dark color>)`
* Types can only be the following : Money, Tokens, XP, SkillXP and Gems *(Gems only work with enchantments, not store purchases)*
* You can find a bunch of examples in this file, which are used to register the current boosters.

**Generators:**

* Location: `/plugins/skript/scripts/Mechanics/Gens.sk`
* At the top of the file, you can add new generators using this following syntax : `registergen(<unique id>, <item>, <name>, <price>, <upgrade price>, <drop>, <drop price>, <light color>, <dark color>)`
* To remove a generator, just delete the line from the file.
* You can find a bunch of examples in this file, which are used to register your generators!

**Shop:**

* **Products:**
  * Location: `/plugins/skript/scripts/Menus/Shop.sk`
  * Add new items using this syntax: `shopProduct(<id>, <colorednamed>, <price>, <itemtype>, <lore>, <section>, <amount>)`
  * The ID is unique to each section, starts at 1 for new sections
  * If you want to skip a line in the lore, use **%nl%**
* **Sections:**
  * Add new sections with: `newSection(<id>, <command or ui>, <coloredname>, <lore>, <item>, <menu name>, <section>, <command>)`
  * *The last parameter should only be used when the second parameter (command or ui) is set to command.*
* **Custom Products (Commands):**
  * Add custom items that run commands on purchase with: `customProduct(<id>, <coloredname>, <price>, <item>, <lore>, <section>, <amount>, <console command>)`
* Examples are included in the file to guide you.
* *Make sure to put **\<coloredname>**, or **\<lore>** under strings **" "***

**Events:**

* Location: `/plugins/skript/scripts/Mechanics/Events.sk`
* Add new event using this syntax : `registerevent(<id>, <event name>, <start message line>, <description>, <end message line>)`
* Use [disk.gg/center](https://disk.gg/center) to center text in parameters.
* **Note:** To make the event work, you need to merge it into the corresponding file by checking the event name, for example:

  ```skript
  if {Event::Name} contains "Money Rain!":
       add 100 to player's balance
  ```

**Enchantements:**

* Location: `/plugins/skript/scripts/Mechanics/Enchating.sk`
* Add new enchantements using this syntax: `RegisterEnchantment(<id>, <enchantment>, <lore>, <name>, <max level>, <startingcost>, <increase multiplier>, <item>, <type>, <light color>, <dark color>, <description>, <prestige requirement>)`
* **Note:** to make the enchantments work, you need to add this piece of code inside one of the 4 mechanics. (Barn, Farming, Fishing, Mining)

  ```skript
  set {_a} to float tag "Enchants;<enchantment>" of custom nbt of player's tool
  if {_a} is set:
      #! do rest
  ```

**Need Help?**:

* If you encounter any issues, join my [Discord Server](https://discord.com/invite/aDYYPsha2E) and create a support ticket.
