Included Piqueserver Scripts

This is an Overview over the scripts that currently ship with piqueserver


piqueserver.scripts.afk script

Kicks a player if inactive for too long.


time_limit = "15min"

Code author: hompy

piqueserver.scripts.aimbot2 script

Detects and reacts to possible aimbot users.


  • /accuracy <player> shows player’s accuracy per weapon
  • /hackinfo <player> shows player’s accuracy, K/D ratio and how often their cross-hair snaps onto another players head admin only


collect_data = true # saves hits and shots of each weapon to a csv file

Code author: ?

piqueserver.scripts.airstrike2 script

Airstrikes. Boom!


  • /airstrike or /a allows a player to call an airstike
  • /givestrike <player> gives a player the ability to call an airstike immediately admin only

Code author: hompy

piqueserver.scripts.antijerk script

Kicks jerks for ‘PRESS ALT-F4 FOR AIRSTRIKES’ and so on.


ban_duration = "15min"

Code author: ?

piqueserver.scripts.autohelp script

Helps Deuces automagically when they ask in the chat for help.

Code author: ?

piqueserver.game_modes.babel_script module

Original script by Yourself Anti grief by izzy Return intel dropped from platform bug fix by a_girl

Release thread:

How to install and configure:

  1. Set game_mode to “piqueserver.game_mode.babel” in config.txt
  2. Add “piqueserver.scripts.babel_script” to scripts list in config.txt
  3. Set cap_limit to “10” in config

piqueserver.scripts.badmin script

Badmin is an bot admin.

It automates common admin tasks such as:

  • Banning griefers
  • Banning aimbotters
  • Banning racists

Since it is automatic it won’t always get it right.


  • /badmin shows which badmin options are enabled/disabled admin only
  • /investigate <player> shows a player’s grief score, K/D ratio and hit accuracy admin only


It depends on the (for grief detection), (for k/d ratio), (hit accuracy) scripts.

Code author: ?

piqueserver.scripts.blockinfo script

A tool for identifying griefers.


“blockinfo” must be AFTER “votekick” in the config script list


  • /griefcheck or /gc <player> <minutes> gives you when, how many and whos blocks a player destroyed admin only


griefcheck_on_votekick = true
irc_only = false

Code author: hompy

piqueserver.scripts.daycycle script

Gives Ace of Spades a daycycle (using the fog).


  • /dayspeed <speed> sets day speed admin only
  • /dayspeed gets day speed admin only
  • /daytime <time> sets day time admin only
  • /daytime gets day time

Code author: hompy

piqueserver.scripts.demolitionman script

Restocks the user when reloading / throwing a nade.


  • /toggledemo toggles demolition

Code author: learn_more (MIT LICENSE)

piqueserver.scripts.dirtnade script

Makes grenades create blocks.

Code author: hompy

piqueserver.scripts.disco script

Ever wanted a disco in Ace of Spades?


  • /disco toggles disco

Code author: mat^2

piqueserver.scripts.flagreturn script

Makes the flag returnable in Quake-like fashion.

Code author: mat^2 & learn_more

piqueserver.scripts.geoip script

Gets a player’s location info using a geoip database. Location is formatted as a list of regions ordered by hierarchy (i.e. City, Region, Country)


This script depends on geoip2 package and piqueserver --update-geoip needs to be executed after installing the package.


  • /from get active player’s location
  • /from <player> get player’s location info

Code author: ?

piqueserver.scripts.grownade script

Turns your grenades into magical kv6-growing seeds. Or beans!

Use /model <filename> to load model files. These must be placed inside a folder named kv6/ in the config directory. A full path would look like this: ~/config/kv6/filename.kv6. Then it can be loaded with /model some_model

Wildcards and subfolders are allowed. Some examples:

/model building*

Loads all models that start with “building”, like “building1” and “buildingred”:

/model my_trees/*

Loads all models inside a folder named “my_trees”

When you have many models loaded, each grenade will pick a random one to grow. To stop littering the map with random objects just type /model.


THE PIVOT POINT in kv6 files determines the first block to be placed. The rest of the model will then follow, growing around it.

The pivot point MUST be sitting on a block, or the model won’t load. Checking ‘Adjust pivots’ in the Tools menu in SLAB6 will show handy coordinates. To be sure, you can move the pivot to half of a block, e.g.: (4.50, 4.50, 8.50)

In a tree kv6, for example, the pivot point would lie on the lowest block of the tree trunk, so that it grows up and not into the ground.

Works best with 0.75 kv6 models.

You can adjust FLYING_MODELS and GROW_ON_WATER to allow growing in the air and on water, respectively. These are disabled by default so you can fly high and sprinkle tree-growing grenades without worrying about unseemly oddities.



flying_models = False # if False grenades exploding in midair will be ignored
grow_on_water = False # if False grenades exploding in water will do nothing

Code author: hompy

piqueserver.scripts.map_extensions script

Provides extensions to the map metadata (e.g. water damage).

Code author: ?

piqueserver.scripts.mapmakingtools script

piqueserver.scripts.markers script

Pinpoint players and bookmark tunnels without making the enemy aware. Markers attempt to help teams communicate and so, cooperate.

Markers are just symbols built with blocks at the very top of the map, which only your team can see. They’ll show up on your teammates’ map and minimap, and can be brought up in a number of ways.

  • Double-tapping the SNEAK key lets you quickly spot an enemy’s location.
  • When your intel is stolen a marker is dropped where it just was, shadowing its position and eliminating “I forgot where it was” situations.
  • Enemy positions are automatically revealed when the intel is captured, mimicking the old ‘radar’ reward.
  • Say !tunnel in teamchat to make an arrow where you’re standing, instruct other players to do something for a change with !build, or meet up with someone else using !here.

Players can type /clear to get rid of markers on their own screen. Admins can disable or enable placing of new markers using /togglemarkers. /togglemarkers <player> toggles only that player’s ability to do so.

Any functionality can be disabled switching off SHADOW_INTEL, REVEAL_ENEMIES, VV_ENABLED and CHAT_MARKERS below.


  • /clear clears all markers admin only
  • /togglemarkers <player> toggles a player’s ability to place markers admin only
  • /markers gives instructions

Code author: hompy

piqueserver.scripts.match script

Match script, useful for public matches. Features verbose announcements on IRC and a custom timer.


  • /timer starts timer admin only
  • /stoptimer stops timer admin only
  • /startrecord starts a fresh records admin only
  • /stoprecord clears the current record admin only
  • /saverecord save record to a file admin only

piqueserver.scripts.medkit script

Gives a specified amount of medkits on spawn


  • /medkit or /m utilizes available medkits to heal


medkits = 1 # no. of medkits
medkit_heal_amount = 40 # how much hp. it gives

Code author: Booboorocks998 & mat^2

piqueserver.scripts.memcheck script

Runs the garbage collector at a given interval and displays any uncollected garbage found.

Code author: mat^2

piqueserver.scripts.minefield script

Minefield map extension.

Allows mappers to specify the map bounds, outside of which players will trip mines. Breaking blocks (when standing close to the field) also triggers a mine.


This script conflicts with smartnade script.


  • /minedebug toggles debug mode admin only

example extension from mapname.txt:

>>> extensions = {
...     'minefields' : [
...         #this minefield defines the border:
...         {
...             'border' : 1,
...             'left' : 59,
...             'top' : 154,
...             'right' : 451,
...             'bottom' : 355,
...         },
...         # this specifies an additional minefield (and shows a simpler
...         # syntax)
...         {
...             'area' : (183, 126, 224, 233),    #top left
...             'height' : 60 # this specifies until which block mines are
...                           # enabled (so you can build over it)
...         }
...     ]
... }

Code author: learn_more (MIT LICENSE)

piqueserver.scripts.nointelonwalls script

Prevents taking intel through walls

Version 2(2017.12.25)

Code author: kmsi<>

piqueserver.scripts.nospadingwalls script

piqueserver.scripts.paint script

Lets you change the color of the block you are looking at. With block tool selected, pick a color, then hold down sneak key (<V> by default) to paint.


  • /paint <player> enables painting mode for that player.

Code author: hompy

piqueserver.scripts.passreload script

Allows reloading config on the fly


  • /reloadconfig reloads the config (also updates rights) admin only

Code author: Danke

piqueserver.scripts.protect script

Protects areas against block destroying/building.


  • /protect <area coordinates> puts an area under protected status admin only
  • /protect clears all protected areas admin only

Code author: hompy

piqueserver.scripts.rampage script

Killing KILL_REQUIREMENT other players in under TIME_REQUIREMENT seconds sends you into a rampage lasting RAMPAGE_DURATION seconds. The rampage refills and drastically increases your weapons’ rate of fire.

By default this means 3 kills in under 8 seconds to activate. For reference, lines disappear from the killfeed 10 seconds after they appear.

Intended for use in frantic last team standing or free for all matches.

Code author: hompy

piqueserver.scripts.rangedamage script

Changes the damage values depending on distance.


pct_per_block = 0 # percentage per block?
multiplier = 1

pct_per_block = 0
multiplier = 1

pct_per_block = 0
multiplier = 1

Code author: ?

piqueserver.scripts.rapid script

/rapid [player] will put the player in rapid mode, speeding up all tools including weapons.

RAPID_BLOCK_DELAY determines how fast block placement should be. Lowering this value is not recommended except for local use. Ping to the server is the effective lower limit: if this value is set to 0.1 (0.1 seconds = 100ms), users with ping above that won’t have the same advantage as the rest of the players.

Set ALWAYS_RAPID to TRUE to automatically get rapid when you login.

Code author: hompy

piqueserver.scripts.ratio script

Shows K/D ratio


“ratio” must be AFTER “votekick” in the config script list


  • /ratio <player> shows K/D ratio

Code author: TheGrandmaster & mat^2

piqueserver.scripts.analyze script

Shows a detailed analysis of a players shots


  • /analyze or /an <target> to show a detailed analysis of a players shots if they hit someone. Shows hit player, distance, dT in milliseconds (Delta Time- Time since previous shot that hit someone. Useful for detecting multiple bullet or rapid hacks), weapon, which body part it hit, and a basic counter that displays the number of hits of that type.
  • /analyze or /an to disable it

Code author: a_girl

piqueserver.scripts.rollback script

Rollback rolls back the map to it’s original state by placing and removing changed blocks. This takes ages. Use with care.


  • /rollmap <map name> changes the map to the given map in a rolling fashion admin only
  • /rollmap <map name> <sector> changes the sector of the current map to the given map’s sector in a rolling fashion admin only
  • /rollback starts a rollback on the current map admin only
  • /rollbackcancel cancel an on-going rollback admin only


/rollmap will take a long time if number of differing blocks is too high.


rollback_on_game_end = false

Code author: hompy

piqueserver.scripts.runningman script

Links any two teammates so that they explode if they stray away from each other. An incredibly unnerving method of encouraging teamplay.

Enable by doing /runningman or by setting ENABLED_AT_START = True Linking is automatic at spawn and tries to find new partners every two deaths. Use /unlink [player] to toggle yourself or someone from being linked.

May not work well with squads.

Code author: hompy

piqueserver.scripts.savemap script

Adds a /savemap command to save the current state of the map. You can specify any name with an argument, without it the map will be saved with the ‘.saved’ suffix. With /rmsaved you can delete a ‘.saved’ version of this map.


# automatically load the saved map on map load
load_saved_map = true
# automatically save map at shutdown
save_at_shutdown = false
# automatically save map at map rotation or server shutdown
always_save_map = false

piqueserver.scripts.smartnade script

Smartnade script


This script conflicts with minefield script.

Code author: ?

piqueserver.scripts.spadenadefix script

Prevents spade-nade bug

version 2(2017.12.23)

Code author: kmsi<>

piqueserver.scripts.spawn_protect script

Protects spawned players for a specified amount of seconds.


protection_time = "3sec"

Code author: ? & kmsi <>

piqueserver.scripts.spectatorcontrol script

Lets you set restrictions on spectators.

Original documentation:

This script will hopefully give server owners some control over what spectators do on there server. As of now since the release of v0.75, Goon Haven has had issues with spectators idling and using global chat to send information to a team so that they may know enemy positions or what the enemy is doing, etc. This script can block spectator chat as well as kick spectators after so much time as passed.

Additionally, server owners who also give out “guard” or “mini-mod” positions can add the right “specpower” to the group rights in to have the guards/minimods be immune to the spectator kick and chat restrictions.

Oh, and admins are also automatically immune to spectator kick and chat restrictions.

Hope you enjoy! Tocksman


no_chat = false # determines whether spectators can chat or not in your server
kick = false # determines whether spectators will be kicked after remaining for so long
kick_time = "5min" # how long a spectator may remain before they are kicked

Code author: Tocksman (made for Goon Haven)

piqueserver.scripts.squad script

BF-like squad system.


  • /squad <key> to join a squad
  • /follow <player> to spawn near a specific player


respawn_time = "10sec"
auto_squad = true

Code author: Triplefox

piqueserver.scripts.strongblock script

Blocks built by players are twice as hard to break.

  • You can remove your own blocks as if they weren’t strong.
  • Dirt-colored or buried blocks (those that turn into dirt) become normal blocks.

Code author: hompy

piqueserver.scripts.timedmute script

Allows muting players for a set amount of time.


  • /tm <player> <seconds> <reason> mute a player for set amount of time admin only


Default time 5 minutes, default reason None

piqueserver.scripts.trusted script

Adds the ability to ‘trust’ certain players, i.e. they cannot be votekicked or rubberbanded.


  • /trust <player> gives trusted status to a player

Code author: mat^2 & hompy

piqueserver.scripts.votekick script

Allows users to start votekicks


  • /votekick <player> <reason> start votekick against a player
  • /y votes yes
  • /togglevotekick or /tvk toggles votekicks on/off globally
  • /togglevotekick or /tvk <player> toggles votekicks on/off for specific players
  • /cancel cancels a votekick


# percentage of total number of players in the server required to vote to
# successfully votekick a player
percentage = 35

# duration that votekicked player will be banned for
ban_duration = "30min"

public_votes = true

Code author: James Hofmann a.k.a triplefox

piqueserver.scripts.votemap script

Allows players to vote for maps.


  • /votemap initiates map voting
  • /vote <map name> vote for a map
public_votes = true
extension_time = "15min"
player_driven = false
autoschedule = false
percentage = 80

Code author: James Hofmann a.k.a triplefox (GPL LICENSE)

piqueserver.scripts.welcome script

Greets specified people entering with messages


welcomes = { nota = "Hi notafile", feik = "Hi feik" }

piqueserver.scripts.zoc script

Zones of control: Dropped intel and tents exert influence over nearby area, restricting player ability to destroy.


radius = 32
attack_distance = 64
block_undo = 10
block_cost = 5
points_per_tick = 1
point_cap = 30
grenade_cost = 30