Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for TubYoub

Velocity Plugin that enables the Proxy to dynamicly Start and Stop Servers that are managed with the Pterodacytl Panel

Report VelocityPteroPower?

VelocityPteroPower

Static Badge
forthebadge

Buy Me A Coffee

This Plugin is under active development and may have critical Bugs

This is a Plugin for Velocity Servers which can dynamically start and stop servers that are managed with the Pterodactyl Server Panel


Please join the Discord if you have questions!

This Project is a port of the BungeePteroPower

Features

  • start a Server manually with /ptero start
  • stop a Server manually with /ptero stop
  • restart a server manually with /ptero restart
  • reload the config using /ptero reload
  • stop all servers that are idling (no players online, exceptions configurable)/ptero stopIdle
  • stop all servers /ptero forcestopall



  • The plugin will automatically start a Server that a player is trying to connect (if the server is configured in the config file)
  • The plugin will automatically schedule a server shutdown if a server is empty for a certain amount of time (time is configurable in the config file)
  • scheduled shutdowns will be canceled if a player joins the server that is scheduled to be shutdown
  • The plugin will never exceed the RateLimit of the Panel API
  • The plugin will automatically start servers when a player connects through a forced host(and redirect the player to a configured limbo Server in the meantime)
  • automatic checks for new updates of the plugin

Permissions

  • ptero.start Permission for the /ptero start command
  • ptero.stopPermission for the /ptero stop command
  • ptero.restart Permission for the /ptero restart command
  • ptero.reload Permission for the /ptero reload command
  • ptero.stopIdle Permission for the /ptero stopIdle command
  • ptero.forcestopall Permission for the /ptero forcestopall command

Installation

To install the Plugin on your Velocity Server put the .jar in your plugin folder and restart/start your server.

Example config

################################
#      VelocityPteroPower      #
#         by TubYoub           #
################################

# Version of the configuration file
fileversion: 7

# Check for updates
# If true, the plugin will check for updates on startup.
# If a new version is available, a message will be sent to the console and to players with the permission "ptero.reload".
checkUpdate: true

# Choose which logging level should be used
# It depends on how much you want you're console to be filled with information from VPP
# For production you can safely set it to a higher level but for development/testing it is recommended to use a lower level
# 10 = Debug
# 20 = Info
# 30 = Warning
# 40 = Error
#default: 20
loggerLevel: 20

# How many Threads should be used to check the server status
# The more threads the more requests can be handled at the same time
# more threads = more resources used
# restart the server so changes take effect
# default: 10
apiThreads: 10

# print updated Rate Limit from the API response to console
# default: false
printRateLimit: false

# Choose the method to check if a managed server is online and ready.
# "VELOCITY_PING": Uses Velocity's built-in ping functionality. Requires the server
#                  to be registered in Velocity's config and accessible from the proxy.
#                  Less resource-intensive, doesn't use API rate limits. Might report
#                  online slightly before the server is fully joinable.
#                  Some simple Limbo servers might not report any Ping back suing this method.
# "PANEL_API": Uses the Pterodactyl/Pelican panel API to check the server's state.
#                    More accurate for actual server state ("running"), but uses API
#                    requests and counts towards rate limits.
# Default: "VELOCITY_PING"
serverStatusCheckMethod: "VELOCITY_PING"

# How long the ping to the server lasts, to check if its is online, until it times out (in milliseconds)
# default: 1000 (1 second)
pingTimeout: 1000

# How many retrys to shut down the server if the previous one failed
# default: 3
shutdownRetries: 3

# How long to wait before retrying to shut down the server (in seconds)
# default: 300
shutdownRetryDelay: 300

# How long to wait before shutting down the server if no player joined the server(in seconds)
# default: 300
# -1 = disabled
idleStartShutdownTime: 300

# How long to wait before allowing a player to start a server again (in seconds)
# default: 10
playerStartCooldown: 10

# Server Name from your limbo
# should be a configured server so it can be automatically started
# changeMe = not configured so limbo server won't be used
limboServer: changeMe

# How long (in seconds) the plugin should wait for the first check if the server is online
# The joinDelay (configured for each server) is still applied when the server is online before a
# player is automatically connected (so it doesn't affect this)
# Maybe consider changing this to a lower value if you have for example a
# limbo which is lightweight and starts fast
# default: 10
startupInitialCheckDelay: 10

# Servers to ignore when the stopIdle command is used
# THIS DOES NOT AFFECT forceStop
stopIdleIgnore:
  - hub
  - lobby
  - limbo

# If a player should receive a message when a server is not found in the config
# message will always be send to console
# default: false
serverNotFoundMessage: false

# Pterodactyl configuration
pterodactyl:
  # The URL of your pterodactyl panel
  # If you use Cloudflare Tunnel, you need to allow the ip in the bypass setting.
  url: http://192.168.178.74:2462/
  # The client api key of your pterodactyl panel. It starts with "ptlc_".
  # You can find the client api key in the "API Credentials" tab of the "Account" page.
  apiKey: ptlc_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

# Per server configuration
servers:
  #server name
  hub:
    
    # Pterodactyl server ID
    # You can find the Pterodactyl server ID in the URL of the server page.
    # For example, if the URL is https://panel.example.com/server/1234abcd, the server ID is 1234abcd.

    id: 1234abcd
    
    # The time in seconds to stop the server after the last player leaves.
    # If you don't want to stop the server automatically, set it to -1.
    # If you set it to 0, the server will be stopped immediately after the last player leaves.

    timeout: -1
  test:
    id: abcd1234
    timeout: 5
  fitnacraft1:
    id: ab12cd34
    timeout: 180
  mcforge1:
    id: 1111abcd
    timeout: -1

Support

If you have any issues, please report. And if u have any suggestions, feel free to open an issue.

Contributing

I currently have no plans to get co-contributer's on this project, but if you have any suggestions, feel free to open an issue

License

This project is licensed under the MIT License.

forthebadge

Information

CategoryAdmin Tools
Published onApril 18, 2024
LicenseMIT
Downloads46
Stars0
Watchers0
Addon

Pinned Versions

Members

Avatar for TubYoub

TubYoub

Owner