Quake

A Minecraft minigame

Overview

Quake is a Spigot minigame developed by Upperlevel (a Github organization of two developers). It has been created with Hypixel’s Quake in mind and though as a public, highly customizable, porting of it.

preview_0

preview_1

preview_2

preview_3 Using LeaderHeads

Features

Follows an overall list of its features:

Try it

Connect to the following Minecraft server, bring at least one friend, and start playing!

Usage

Installation

Once bought, all you have to do is extract the .zip content inside of your server’s plugins folder. Keep in mind the required dependencies, that are:

Arena setup

The arena setup consists of a series of commands that permits Quake to know where and how it has to interact with your maps. You may use the following sequence every time you need to create a new map.

Obviously there are several more commands, but these are the required ones to get your arenas working.

Database setup

Quake relies on the database in order to save player’s statistics, selected and bought purchases. These are the supported backends:

You can configure the desired one in the db.yml file, inside of the plugin’s folder. The configuration file will look like this:

# The type of database to use, could be one of:
# - sqlite
# - mysql
# - mariadb
type: 'sqlite'

# Additional info that may be requested by the chosen database.
# Concretely, are needed only if the database isn't sqlite.
#host: 'localhost'
#port: 3306
#database: "quake"
#user: "quake"
#password: "12345"

Gamemode config

The game can be configured in two modalities: local and bungee mode.

Local mode (default) – One server

In local mode, when players join the Quake’s server they get teleported to the, so called, hub. This is a place where they can choose which arena to join. In local mode the arenas can only be on the same server as the hub. When the game inside of an arena ends, all of the players are sent back to the hub location.

You can set the hub location through the command: /q sethub.

Bungee mode – Multiple servers

Using bungee mode, you’re able to span Quake on multiple servers. You are requested to set the hub server’s name – where players are sent when they end a match – and the name of the arena that will be automatically joined when players join the server.

You can change the default modality and these values in uppercore.yml.

Other configs

The strong point of Quake is that, as a public plugin, it has been thought to be highly customizable. Its main configurations are config.yml and uppercore.yml, and counts 3200+ lines together.

PlaceholderAPI binding

On enable, Quake registers an extension to PlaceholderAPI that contains a few placeholders:

DB schema

If you’re a developer (maybe more if you are a web developer), you may be interested in getting Quake information out of the database.

The DB’s job is just to store player information (stats and shop purchases) and consists of one table named profiles. The profiles’ schema goes like that:

CREATE TABLE `profiles` (
  id VARCHAR(128) PRIMARY KEY
  name VARCHAR(256) NOT NULL UNIQUE

  kills INT
  deaths INT
  won_matches INT
  played_matches INT

  selected_barrel VARCHAR(1024)
  selected_case VARCHAR(1024)
  selected_laser VARCHAR(1024)
  selected_muzzle VARCHAR(1024)
  selected_trigger VARCHAR(1024)

  selected_hat VARCHAR(1024)
  selected_chestplate VARCHAR(1024)
  selected_leggings VARCHAR(1024)
  selected_boots VARCHAR(1024)

  selected_kill_sound VARCHAR(1024)

  selected_dash_power VARCHAR(1024)
  selected_dash_cooldown VARCHAR(1024)

  purchases JSON
)

The purchases field is a JSON array containing the IDs of the purchases bought by the player.