Stargate

A network-aware Stargate portal plugin for PaperMC, with sign-based dialing and cross-server travel over Velocity or BungeeCord.

Modules

Module What it is
stargate-common Shared models + JDBC storage (SQLite / MySQL) used only by the Paper plugin
stargate-paper The actual gate plugin — install this on every backend server
stargate-velocity Proxy companion for Velocity — install on the proxy only if using cross-server gates
stargate-bungee Same, for BungeeCord/Waterfall

Build everything with ./gradlew build. Jars land in each module's build/libs/.

Building a gate

  1. Build a ring out of any block in gate.frame-materials (default: obsidian, gold block, birch/oak planks — matches an obsidian+gold arch design). Leave the middle hollow.
  2. Embed a few blocks of gate.chevron-unlit-material (default black stained glass) into the ring — these light up to gate.chevron-lit-material (default glowstone) as the gate dials.
  3. Place a sign on the outside of the frame with:
    • Line 1: [Stargate]
    • Line 2: network name (blank = default network)
    • Line 3: gate name (blank = auto-generated)
    • Line 4: hidden to keep it out of the cycle list, otherwise blank

The plugin flood-fills the frame from the block behind the sign, confirms it's a fully enclosed ring, and registers the gate. If nothing happens, the ring isn't sealed or none of its blocks match frame-materials.

Using a gate

  • Right-click the sign: cycles the destination shown on line 3 among the other gates on the same network.
  • Left-click the sign: dials the shown destination — chevrons light in sequence, then the interior fills with gate.iris-material (default water). Walk into it to teleport. It auto-closes after dialing.open-seconds.

Multi-world

Gates are addressed by network name, not world — a gate on any loaded world can dial any other gate on the same network regardless of world, exactly like same-server cross-world travel in the original Stargate mod.

Cross-server (Velocity / Bungee)

  1. Set storage.type: mysql in every backend server's config.yml and point them at the same database — this is how servers see each other's gates.
  2. Give each backend a unique server-id in config.yml that matches its name in the proxy config (velocity.toml / config.yml servers list).
  3. Set cross-server.enabled: true on every backend.
  4. Drop stargate-velocity (or stargate-bungee) into the proxy's plugin folder.

When a player dials a gate hosted on another backend, the Paper plugin asks the proxy (over the stargate:teleport plugin channel) to connect the player to that server; once they land, the proxy forwards a delivery message so the destination server's Stargate instance teleports them to the gate's exit point.

Permissions

  • stargate.use (default: true) — dial/cycle gates
  • stargate.create (default: op) — build new gates
  • stargate.destroy (default: op) — break your own gates
  • stargate.admin (default: op) — reload, break/manage any gate

Commands

  • /sg list [network]
  • /sg destroy (look at a gate's sign)
  • /sg reload
S
Description
No description provided
Readme
390 KiB
Languages
Java 100%