---
description: This page conatins a list of all modules in S-Core.
---

# Modules

## Spawn

You can use the <kbd>/setspawn</kbd> command to set the spawn and <kbd>/spawn</kbd> to teleport to it.

Also the plugin provides an automatic teleportat feature. It teleports players to spawn on Join, First-Join, Respawn, and Height-change (Y-coordinate). Everything can be configured in the config.yml.

{% code title="config.yml" %}
```yaml
# Settings for auto spawn teleport
autoSpawnTeleport:
  # Teleport the player to the spawn on first join
  onFirstJoin: true
  # Teleport the player to the spawn on join
  onJoin: true
  # Teleport the player to the spawn on death
  onRespawn: true
  # Teleport the player to the spawn when the player height is below the given value
  onHeight:
    enabled: false
    height: -64
```
{% endcode %}

## Custom placeholders

This is a feature to customize placeholders to your liking. Currently the plugin just provides a bit of placeholders. For example you can format the 'money\_formatted'-placeholder as you want and return colored world names using the 'world'-placeholder.

You can see the playe secton for custom placeholders below.

{% code title="custom-placeholders.yml" %}
```yaml
# Here you can configure player placeholders
# Format: %sCore_player_{PLACEHOLDER}%
player:
  world:
    enabled: true
    # Here you can define the translations for specific worlds
    # You can also use color codes (e.g., <green>, <red>, etc.) for the translations
    translations:
      "world": "<green>Overworld"
      "world_nether": "<red>Nether"
      "world_the_end": "<dark_aqua>End"
  money:
    enabled: true
    # Here you can define how many fractional digits should be displayed
    fractionalDigits: 2
  money_formatted:
    enabled: true
    decimalFormat:
      # Here you can define the format of the balance
      format: "#,###.##"
      # Here you can define the decimal separator
      # Samples:
      # 'ENGLISH' -> '1,000.00'
      # 'FRENCH' -> '1 000,00'
      # 'GERMAN' -> '1.000,00'
      locale: 'ENGLISH'
```
{% endcode %}

## Gamemode

This module provides two things. First is the <kbd>/gamemode</kbd> command.

The command arguments are first the gamemode wich you want to be set in (0, 1, 2, 3 also work) and second the target (you don't need to specify one).

## Auto broadcaster

As the name suggests it send messages in sepcified intervals to all players. You can also choose between to modes: SEQUENTIAL: It sends the messages in the exacrt order in wich they're specified in the config; RANDOM: It sends the messages in random orders

You can take a look on the config-section below:

{% code title="config.yml" %}
```yaml
# Settings for auto broadcaster
autoBroadcaster:
  # Toggle the auto broadcaster
  enabled: true
  # The interval in seconds between each message
  interval: 900
  # The type of broadcasting
  # Available types:
  # -> 1 = SEQUENTIAL
  # -> 2 = RANDOM
  type: 1
  # The sound to play when broadcasting
  sound:
    enabled: true
    sound: ENTITY.PLAYER.LEVELUP
    volume: 1.0
    pitch: 1.0
  # The messages to broadcast
  messages:
    website:
      - "%prefix%"
      - "%prefix% <gray>Check out our website at <underlined>www.example.com</underlined>!"
      - "%prefix%"
    discord:
      - "%prefix%"
      - "%prefix% <gray>Join our Discord server at <underlined>discord.gg/example</underlined>!"
      - "%prefix%"
```
{% endcode %}

## Custom messages

You can either remove or edit the minecraft vanilla messages.

The config-section for that can be found in the `config.yml` and looks like this:

{% code title="config.yml" %}
```yaml
# Messages for the custom messages
customMessages:
  join:
    # Overrides the default join message if enabled
    enabled: true
    # Message displayed when a player joins
    # Set to 'null' to disable the message
    message: "%prefix% <green>→ <gray>Player <white>%player% <gray>has joined!"
  quit:
    # Overrides the default quit message if enabled
    enabled: true
    # Message displayed when a player leaves
    # Set to 'null' to disable the message
    message: "%prefix% <red>← <gray>Player <white>%player% <gray>has left!"
  death:
    # Overrides the default death message if enabled
    enabled: true
    # Message displayed when a player dies
    # Set to 'null' to disable the message
    message: "%prefix% <dark_red>☠ <gray>Player <white>%player% <gray>has died!"
```
{% endcode %}

## Invsee

Here's not much to say about that. You can just use <kbd>/invsee \<player></kbd> to look in the players inventory. Currently I sadly don't know how to let you edit the players inventory, so its just view-only.

## MSGs

This feature provides a simple msg system. It contains a <kbd>/msg</kbd> and a <kbd>/reply</kbd> command.

In the config-section you can of course edit the messages but furthermore you can set the player-message color and define an regex for valid msgs.

{% code title="config.yml" %}
```yaml
# Settings for the msg system
msg:
  # HEX-Color for the message text
  textColor: "#FFFFFF"
  # These characters are allowed in the message
  allowedCharactersRegex: "^[A-Za-z0-9ÄÖÜäöüß_\\-+&/\\[\\](){}\\\\?!.;,:´`^°#'|<>\"$€@%=*~\\\\ ]+$"
  # The format for the message
  # Warning: If you remove the '%player%' or '%target%' placeholder an error will occur
  self-target: '<white><hover:show_text:"<gray>Click to response."><click:suggest_command:/msg %player% ><dark_gray>[<yellow><b>MSG</b><dark_gray>] <dark_gray>[<gray>%player% <dark_gray>› <gray>You<dark_gray>] <white>'
  target-self: '<white><hover:show_text:"<gray>Click to send another message."><click:suggest_command:/msg %target% ><dark_gray>[<yellow><b>MSG</b><dark_gray>] <dark_gray>[<gray>You <dark_gray>› <gray>%target%<dark_gray>] <white>'
```
{% endcode %}

## Server links

This module allows you to add custom serverlinks to your server.

It will add this button to the Game Menu:

<figure><img src="https://207190096-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2GygN3n67Z1NhsqTuCS0%2Fuploads%2FRSPIG7ese3y5MaftLMxp%2Fgrafik.png?alt=media&#x26;token=e0d7e539-115e-46a5-9078-a01094145b73" alt=""><figcaption></figcaption></figure>

For example, these are the default links:

<figure><img src="https://207190096-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2GygN3n67Z1NhsqTuCS0%2Fuploads%2Fb2yWo5J80XyCkAkXhcUN%2Fgrafik.png?alt=media&#x26;token=4851a3d7-9a61-41d2-b3f2-2096daba8d71" alt=""><figcaption></figcaption></figure>

You can add as many as you want in the `config.yml` under serverLinks.

{% code title="config.yml" %}
```yaml
# Settings for server links
# You can add as many links as you want
serverLinks:
  # The website link
  website:
    title: "<yellow><b>Website"
    link: "https://www.example.com"
  # The Discord link
  discord:
    title: "<blue><b>Discord"
    link: "https://discord.gg/example"
```
{% endcode %}

## Warps

This module is pretty simple. It just works as a simple warp system.

This includes the following commands: <kbd>/setwarp</kbd>, <kbd>/warp</kbd>, <kbd>/delwarp</kbd>, <kbd>/warps</kbd>

## Custom actions

As the name suggests it allows you to execute actions on certain events. At the moment it only includes onJoin & onRespawn.

This is the default config:

{% code title="config.yml" %}
```yaml
# Settings for custom join actions
# Here you can also use PlaceholderAPI placeholders
customActions:
  # Here you can specify as many actions as you want
  # But remember that it can cause lag if you have too many actions
  # If you don't to use any action, just set it to 'join: []'
  join:
    - '[MESSAGE] %sCore_prefix% <gray>Welcome to the server, <yellow>%player_name%<gray>!'
    - '[TITLE] <green><b>WELCOME;<yellow>%player_name%'
    - '[ACTIONBAR] <green>Welcome to the server, <yellow>%player_name%<gray>!'
    - '[PLAYER_COMMAND] /spawn'
    - '[SOUND] ENTITY_PLAYER_LEVELUP;1.0;1.0'
  respawn:
    - '[MESSAGE] %sCore_prefix% '
    - '[MESSAGE] %sCore_prefix% <gray>Welcome back, <yellow>%player_name%<gray>!'
    - '[MESSAGE] %sCore_prefix% '
    - '[PLAYER_COMMAND] /spawn'
```
{% endcode %}

## Custom commands

With this module, you can create your own commands. This is nothing for more complex commands, but for simple text-commands it is perfect. It uses the same system as **Custom actions**.

You can create as many commands as you want in `custom-commands.yml` :

{% code title="custom-commands.yml" %}
```yaml
discord:
  # The command to trigger this command.
  command: 'discord'
  # The aliases for this command.
  # Set this to '[]' to disable aliases.
  aliases: [ 'dc' ]
  # The actions to perform when the command is executed.
  actions:
    - '[SOUND] ENTITY_PLAYER_LEVELUP;0.9;1.1'
    - '[MESSAGE] %sCore_prefix%'
    - '[MESSAGE] %sCore_prefix% <gray>Join our Discord server: <white><underlined><click:open_url:https://discord.gg/your-discord-link>https://discord.gg/your-discord-link</click></underlined></white>'
    - '[MESSAGE] %sCore_prefix%'
```
{% endcode %}

## Tablist

Here you can define a tablist header and footer. Furthermore, you can edeit the players list-names to show stuff like their ranks or clans. It also updates in an set interval to keep it up-to-date.

{% code title="config.yml" %}
```yaml
# Settings for the tablist
tablist:
  # Enable or disable the custom tablist header and footer
  enabled: true
  # Update interval in ticks (20 ticks = 1 second)
  updateInterval: 20
  # Custom player list names
  playerListNames:
    # Enable or disable custom player list names
    enabled: true
    # The format of the player list name
    format: "%sCore_player_rank_prefix%%player_name%%sCore_player_rank_suffix%"
  # The header of the tablist
  header:
    - " "
    - "<gold><b>Welcome to the Server!"
    - "<gray>Enjoy your stay!"
    - " "
  footer:
    - " "
    - "<gray>Players online: <yellow>%server_online%<gray> | Max players: <yellow>%server_max_players%"
    - "<gray>Server version: <yellow>%server_version%"
    - " "
```
{% endcode %}

## Scoreboard

This module allows you to display information in the side-bar. It can be used to e.g. show the players their balance. Note that this scoreboard is limited to 16 lines.&#x20;

{% code title="config.yml" %}
```yaml
# Settings for the custom scoreboard
scoreboard:
  # Enable or disable the custom scoreboard
  enabled: true
  # Update interval in ticks (20 ticks = 1 second)
  updateInterval: 20
  # The title of the scoreboard
  title: "<gold><b>Player Info"
  # The lines of the scoreboard
  lines:
    - ""
    - "<gray>Player: <white>%player_name%"
    - "<gray>Health: <red>%player_health%<gray>/<red>%player_max_health%"
    - "<gray>Level: <green>%player_level%"
    - " "
```
{% endcode %}

## Chat

This is a very complex module with the following features: chat-format, chat-clear, chat-lock, chatfilter (block empty messages, anti caps, anti spam, chat-delay, block invalid characters & anti swear) and emojis. You can configure each feature in the config and bypass the chat-filter using the <kbd>sCore.bypass.chatfilter</kbd> permission.

{% code title="config.yml" %}
```yaml
# Settings for the custom chat
chat:
  format:
    # Enable or disable the custom chat format
    enabled: true
    # The format of the chat message
    # You can use PlaceholderAPI placeholders here (and %message% placeholder)
    format: "%sCore_player_rank_prefix%%player_name%%sCore_player_rank_suffix% <dark_gray>: <gray>%message%</gray>"
  chatclear:
    # The empty messages to send when the chat is cleared
    emptyMessages: 300
  chatlock:
    # Is the chat locked? (Can also be toggled with the /chatlock command)
    isChatLocked: false
  chatfilter:
    # Should empty messages be blocked?
    # Example: If a player sends a message with only spaces or color codes
    noEmptyMessages: true
    # Blocks messages with more than the given amount of uppercase letters
    antiCaps:
      # Enable or disable the anti-caps feature
      enabled: true
      # The percentage of caps that is allowed
      percentage: 50
      # The minimum length of the message to check for caps
      minLength: 7
    # Should identical messages be blocked?
    antiSpam: true
    # Blocks sending messages too fast
    chatDelay:
      # Enable or disable the chat delay
      enabled: true
      # The delay in seconds before a player can send another message
      delay: 3
    # Blocks messages with invalid characters
    blockInvalidCharacters:
      # Enable or disable the invalid characters check
      enabled: true
      # The regex pattern for allowed characters
      # Help: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
      allowedCharsRegex: "^[\\p{L}\\p{N} ,;.:_#'+~´`?=(){}\\[\\]&%$\"²³!^°<>|€@\\-]*$"
    # Blocks messages wich contain swear words
    antiSwear:
      # Enable or disable the anti-swear feature
      enabled: true
      # Should the anti-swear filter ignore case sensitivity?
      ignoreCase: true
      # The list of words to block
      # You can add as many words as you want
      blockedWords: [ "test", "test2" ]
  features:
    # Replaces text-emojis like ":)" with actual emojis
    emojis:
      # Enable or disable the emoji replacement
      enabled: true
      # The list of text-emojis to replace
      # You can add as many emojis as you want
      emojiMap:
        ":)": "😊"
        ":(": "😢"
        ":D": "😄"
        ";)": "😉"
        ":P": "😛"
        ":o": "😮"
        ":/": "😕"
        "xD": "😆"
        "_/": "✅"
        "<3": "❤️"
```
{% endcode %}

## Nametags

This module allows you to customize the players nametag. You can add a prefix and a suffix.

{% code title="config.yml" %}
```yaml
# Settings for the nametag system
nametag:
  # Enable or disable the nametag system
  enabled: true
  # The format of the nametag
  prefix: "%sCore_player_rank_prefix%"
  suffix: "%sCore_player_rank_suffix%"
  # The update interval in ticks (20 ticks = 1 second)
  updateInterval: 20
```
{% endcode %}

## Ranks

With this module you can create placeholders for your ranks (prefix, suffix & displayname). Nothe that this system requires LuckPerms (the ranks must also be named like your LuckPerms groups).

{% code title="config.yml" %}
```yaml
# Settings for the rank system
ranks:
  # Should the ranks be sorted by their LuckPerms rank weight?
  sortTablistByRank: true
  # Settings for the ranks
  # [!] Note: This rank system utilizes LuckPerms, the ranks need to be named like the LuckPerms groups.
  ranks:
    default:
      displayName: "<gray>Default</gray>"
      prefix: "<gray>Default <dark_gray>| <white>"
      suffix: ""
    admin:
      displayName: "<red>Admin</red>"
      prefix: "<red>Admin <dark_gray>| <white>"
      suffix: ""
```
{% endcode %}

## Util Commands

This module provides various util commands. For now, it just has the commands <kbd>/heal</kbd>, <kbd>/feed</kbd> and <kbd>/fly</kbd>.
