Skip to content

Latest commit

 

History

History
89 lines (73 loc) · 4.58 KB

README.md

File metadata and controls

89 lines (73 loc) · 4.58 KB

Maintenance PRs Welcome In Beta

ko-fi

Singularity

The easiest mod to sync server data across your velocity network!

Singularity is unique when it comes to the world of network sync mods/plugins. While tools like InvSync or HuskSync require an external database to work, Singularity does not. All data transfers are done over the network, with velocity acting as a data broker. This allows for extremely rapid synchronization and dead simple setup/configuration.

To get started, simply install singularity on your velocity proxy and install the appropriate version on your backend server (fabric, forge, paper).

NOTE: Velocity currently requires Protoweaver and SQLib to be installed alongside. This process can hopefully be removed in the future and have these dependencies packaged inside the velocity jar.

Get the latest dev build from here!

Features

  • Player data sync
  • Player statistics sync (in progress)
  • Player advancements sync (in progress)
  • Operator sync
  • Whitelist sync
  • Ban sync
  • Network wide user cache
  • Mod API
  • Single network wide config
  • Optional external database support (MySQL, MariaDB, Postgres)

Config

To configure singularity, create a singularity.yaml file under plugins/singularity on your velocity instance.

Example config:

# Define your sync groups. Data will only be synced between servers in the same group
# Server names are as defined in your velocity.toml
groups:
  smp: |
    serv-1
    serv-2
    serv-3
  lobby: |
    lob-1
    lob-2
    
# Define your Group rules. These are what control what data is synced per server. Mods can add custom rules.
# Any settings that are not defined here will use their default values.
smp:
  singularity.stats: true
  singularity.advancements: true
  
lobby:
  singularity.location: true # This setting is false by default
  singularity.spawn: true    # This setting is false by default

Currently, these are all the available settings:

Setting Default Value Info
singularity.attributes true player attributes
singularity.credits true if player has seen credits
singularity.effects true player status effects / on fire
singularity.ender true player ender chest
singularity.food true player hunger
singularity.gamemode true player gamemode
singularity.health true player health points
singularity.inventory true items in player inventory
singularity.location false player position in the world
singularity.parrot false player shoulder parrots
singularity.score true player score
singularity.scoreboard true player scoreboard tags
singularity.spawn false player spawn point
singularity.team true player team
singularity.vehicle false entity the player is riding
singularity.xp true player experience level

Importing existing data

The import system is currently pretty bare bones, but it is present. On one of your backend server, create a folder called import_playerdata in the root server directory. Here you can place existing player.dat files from an old world. The data from these files will automatically be imported into your network when the server launches and connects to your proxy.

NOTE: Be sure to delete these files before you let players join your server, as any data inside the import_playerdata folder will overwrite any playerdata currently in the network the next time the server reboots. This system will be improved in the future.