Skip to content

MrNavaStar/Singularity

Repository files navigation

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
  • Player advancements sync (in progress)
  • Operator level sync (in progress)
  • Whitelist sync (in progress)
  • Ban sync (in progress)
  • Network wide user cache (in progress)
  • Mod API
  • Config
  • External database support

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.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.score true player score
singularity.spawn false player spawn point
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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages