Piqueserver

Latest version: v1.2.0

Safety actively analyzes 688572 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

1.2.0

Features
* 774 Make the server send its supported extensions to the client
* 775 Send extensions in HELLOLAN
* 777 Add `on_client_info()` event

Improvements
* 776 Lower the compression level to 5
* 780 Add map_extensions.py authors

Fixes
* 770 Add missing space between message and username
* 771 Rework broken `friendly_fire_on_grief()` logic
* 778 Drop grenades with invalid velocity and keep calculations in sync
* 783 Replace improper uses of the Twisted logger

**Full Changelog**: https://github.com/piqueserver/piqueserver/compare/v1.1.1-post2...v1.2.0

1.1.1post2

This release fixes packaging issues. It contains no changes from 1.1.0

1.1.0

Release Notes

Deprecations
- Now piqueserver warns for deprecated functions, **`protocol.send_chat()` -> `protocol.broadcast_chat()`** and **`protocol.send_contained()` -> `protocol.broadcast_contained()`**. You still can use these functions, but in future the legacy functions will be removed. (f8061ec193bf78ef0a6acfea4034979622f95e9d)
- Removed support for EOL python versions (72d449a85009f297c60ed3bef8b36e99ed36aed8

Improved World Update
World update now warns when server delays to start a world update, and warns if it took too long for finishing world update. Instead of looping through 32 players, just loop from 0 to the highest player id online, helping to save processing. (575)

Anticheating
- Check for impossible shots through the fog (707)
- Cap grenade velocity (708)
- Cap grenade fuse to 3s (746)

Savemap.py
- Added `/savemap` and `/rmsaved` commands, and `save_at_shutdown` config option. (590)
- Added `always_save_map` option for saving map when advance rotate or server shutdown. (594)
- Hide `.saved` suffix from masterlist map name. (631)

Gamemodes Update
- Added tdm.py option `score_percentage` to show score as a percentage. (748)
- Added ffa.py option `isolate_player` to isolate player in blue team vs all. (750)
- Fix onectf.py not checking for map extensions. (609)
- Fix arena.py gamemode crashing when other scripts uses `on_world_update()` (730)

Scripts Update
- New alias for `/advancemap`, use `/advance`. (5ef5adbe0ab0d0e54fe09eccddb1a480ce943a12)
- Show remaining kills left for getting an airstrike. (710)
- Show players IDs on votekick, to avoid confusion (717)
- Fix error on analyze.py when not giving a target player. (606)
- Fix badmin.py failing when checking for rifle percentage. (613)
- Fix daycycle.py overriding local variables. (d78b63c72e634fe775eadbda8b6705c57b5d9063)
- Fix rollback.py setting dirt blocks to black. (727)
- Fix votekick.py not allowing to votekick players with on their names. (737)

Misc
- `/set_location` centralizes players on block (576)
- Added `/load_map` command for instant map advance. (594)
- Moved RateLimiter class to util file (8fbf42f42980e6470cc9d852146b3a6dafed4a0d)
- Use RateLimiter for chat antispam (ef9fb66d1073e12ff5f03701b2677215fdbf53c6)
- Speed up client detection (723)
- Truncate too long messages causing server lag (733)
- Truncate too long os_info on version info packet, causing server crash (741)
- Doesn't allow players to flood `send_lines()`, causing server lag. (722)
- Allow to use `/switch` on spectators, or specify switch team. (738)
- Added support to custom chat messages for any client that supports extensions. (747)
- Added limit to block line place. (758)
- Added command antispam, to prevent server lag. (721)
- Support Python 3.9 (9d7e73da7e7c1df5b8176a670e639533e9e7d42b)
- Fix bug when disabling web server logging, webserver not being able to start (2d080923d7d2231b244ceddf6c01fb625d19e9ec)
- Fix error when not passing a tips array on config (580)
- Fix bans disappearing when temporary bans reachs an end. (729)
- Fix empty player names throwing errors on console, and player being stuck on limbo. (b10c38193d7ed26c20e4af30a14d99cedf899061)
- Fix grenade being sent on blockaction packet for griefing. (734)
- Fix admins not able to use `/move` on players. (736)
- Fix error when trying to use Python 3.11 (742)

1.0.0

Not secure
Release Notes

Piqueserver has hit 1.0.0! This release has been around a year in the making and is accordingly jam-packed with new features:

TOML config
JSON is hard to write and doesn't support comments. Many beginners had lots of issues with the strict syntax of the JSON format and we could not show useful comments describing the options directly in the config file. We've switched the default config to TOML, which is an `.ini` inspired format that is easier for humans to read and work with.

JSON is of course still supported, but only recommended if you are using another program to generate piqueserver configs.

New config engine

We've added a new config engine that allows you to declare options and sections in code, then automatically fetch and validate the values. Declaring options in advance also allows us to tell you about options which are unused, helping you catch typos.

Logging with log levels

Piqueserver's logging was always a pain when debugging the server or scripts. Piqueserver now emits low-level debug messages for things such as grenade throws, player spawns, etc.

Since these messages are not of interest to most users, they are turned off by default. You can enable them with:


[logging]
loglevel = "debug"


Time Values in Config

Piqueserver now supports setting time values with time units, instead of opaque values:


tips_frequency = "5min12sec"


Lots of Windows fixes

While Windows was theoretically supported before, support should have improved a lot now. Please report any bugs in our issue tracker!

Removal of python2 support

As announced previously, this is the first version will not support python2.x. We are also removing support for python3.4 in this release. This is also the last release to support python 3.5.

Improved docs

Our docs at https://piqueserver.readthedocs.io have improved a lot. Instead of only being useful for devs, they now contain documentation for all config options, scripts and of course setting up Piqueserver. Have a read!

Multi-threaded map generation

People on lower-powered hardware have complained about map generation taking too long and timing out players. We've moved those to a new thread for a smother experience switching maps.

HELLOLAN

HELLOLAN is an AoS 1.x feature that allows you to auto-discover servers on your LAN. It is currently only supported by [BetterSpades](https://github.com/xtreme8000/betterspades)

GeoIP2

Piqueserver now supports the new GeoIP2 format, the downloads for the old format were shut off. It is also now downloaded and checked securely. Thanks bieito98!

Data saving on world updates

While not intended, it is possible to save bandwidth when sending out world updates by only sending updates for players that are actually connected. We now do this. We have tested this, but it might occasionally cause issues with Voxlap. If you have issues with players moving to weird positions after this update, let us know!

Release Notification

A big thing we wanted to add before a full release is release notifications to ensure all users of piqueserver are made aware when a new release is available and can upgrade soon. Update notifications will be displayed on login and on the console.

UTF-8 Support

OpenSpades' UTF-8 support allowed sending unicode in chat messages between players, but the server wasn't able to send any unicode itself. This has now been fixed. Thanks MuffinTastic !

Infiltration

Infiltration can now be configured via the regular config, in the `[infiltration]` section:

toml
[infiltration]
Attackers get attacker_score_multiplier points for taking and capturing
the intel.
attacker_score_multiplier = 10

Defenders gain 1 point for every defender_score_interval seconds that the
intel remains untouched.
defender_score_interval = "30sec"

The ratio of attackers to defenders. Be aware that setting this
incorrectly might prevent players from joining
attacker_ratio = 1.6


Updated Push

1AmYF Updated the push game mode to the latest version, as well as enabling it to be configured in your piqueserver config.

Extension Support

Piqueserver will now query any client that isn't OpenSpades <= 0.1.3 for it's [extension support](https://github.com/piqueserver/aosprotocol/blob/f78e69c292d5a5e48fbfc64f02134b1be4194ae6/extensions.md). This will, allow extending the protocol with new weird and wonderful things.

Refactoring

As always, a lot of our work goes into improving and renovating the insides of piqueserver. This does not affect users, but is always prerequisite to making more changes in the future.

Misc
* `--copy-config` will now not fail if the directory already exists. Instead, it will attempt to create any files that don't yet exist
* farbuild exploit mitigation is improved and less susceptible to latency
* fixed several DOS exploits (crashes caused by malicious players)
* updated status server to new bootstrap version
* the status server now returns the correct MIME type for the overview
* no longer make all users admins if no passwords are given
* add development dockerfile
* decrease size of docker container
* the `analyze` script is now part of the default distribution
* the `commands` command lists available command
* more commands now have a help message
* a bug was fixed that prevented joining the spectator team on ARM
* add `--version' option to view installed version
* you can now use asyncio in piqueserver in addition to twisted
* fixed `afk.py` kicking users accidentally
* log the kick reason when kicking and log performance of map advances
* show voxlap in `/client` command
* Inspired by recently found crashes, piqueserver can now be compiled with AddressSanitizer and UndefinedBehaviourSanitizer using the `USE_UBSAN` and `USE_ASAN` environment variables.

1.0.0rc1

Release Candidate

This is the first release candidate for RC1. We have a few more things we want to get into this release, but are tagging the current state as a preview of what's to come and to allow people to test it easier.

This prerelease can be installed via pip directly from git: `pip install git+https://github.com/piqueserver/piqueserverv1.0.0rc1`

Release Notes

Piqueserver has hit 1.0.0! This release has been around a year in the making and is accordingly jam-packed with new features:

TOML config
JSON is hard to write and doesn't support comments. Many beginners had lots of issues with the strict syntax of the JSON format and we could not show useful comments describing the options directly in the config file. We've switched the default config to TOML, which is an `.ini` inspired format that is easier for humans to read and work with.

JSON is of course still supported, but only recommended if you are using another program to generate piqueserver configs.

New config engine

We've added a new config engine that allows you to declare options and sections in code, then automatically fetch and validate the values. Declaring options in advance also allows us to tell you about options which are unused, helping you catch typos.

Logging with log levels

Piqueserver's logging was always a pain when debugging the server or scripts. Piqueserver now emits low-level debug messages for things such as grenade throws, player spawns, etc.

Since these messages are not of interest to most users, they are turned off by default. You can enable them with:


[logging]
loglevel = "debug"


Time Values in Config

Piqueserver now supports setting time values with time units, instead of opaque values:


tips_frequency = "5min12sec"


Lots of Windows fixes

While Windows was theoretically supported before, support should have improved a lot now. Please report any bugs in our issue tracker!

Removal of python2 support

As announced previously, this is the first version will not support python2.x. We are also removing support for python3.4 in this release.

Improved docs

Our docs at https://piqueserver.readthedocs.io have improved a lot. Instead of only being useful for devs, they now contain documentation for all config options, scripts and of course setting up Piqueserver. Have a read!

Multi-threaded map generation

People on lower-powered hardware have complained about map generation taking too long and timing out players. We've moved those to a new thread for a smother experience switching maps.

HELLOLAN

HELLOLAN is an AoS 1.x feature that allows you to auto-discover servers on your LAN. It is currently only supported by [BetterSpades](https://github.com/xtreme8000/betterspades)

GeoIP2

Piqueserver now supports the new GeoIP2 format, the downloads for the old format were shut off. It is also now downloaded and checked securely. Thanks bieito98!

Data saving on world updates

While not intended, it is possible to save bandwidth when sending out world updates by only sending updates for players that are actually connected. We now do this. We have tested this, but it might occasionally cause issues with Voxlap. If you have issues with players moving to weird positions after this update, let us know!

Refactoring

As always, a lot of our work goes into improving and renovating the insides of piqueserver. This does not affect users, but is always prerequisite to making more changes in the future.

Misc
* `--copy-config` will now not fail if the directory already exists. Instead, it will attempt to create any files that don't yet exist
* farbuild exploit mitigation is improved and less susceptible to latency
* fixed several DOS exploits (crashes caused by malicious players)
* updated status server to new bootstrap version
* the status server now returns the correct MIME type for the overview
* no longer make all users admins if no passwords are given
* add development dockerfile
* decrease size of docker container
* the `analyze` script is now part of the default distribution
* the `commands` command lists available command
* more commands now have a help message
* a bug was fixed that prevented joining the spectator team on ARM
* add `--version' option to view installed version
* you can now use asyncio in piqueserver in addition to twisted

0.1.3

Not secure
Changes

This is a bug-fix release, so don't expect any grand new features.

Move Command

The `/move` command and `/goto` command have long done very similar things. Thanks to esplemea and perpolo, these have now been merged into one. All possible syntax placements are:

/move A4 Move yourself to sector A4
/move 256 256 30 Move yourself to specific coordinates
/move targetPlayer A4 Move targetPlayer to sector A4
/move targetPlayer 256 256 30 move targetPlayer to specific coordinates

This is the first of a number of changes made by Students of the KTH Stockholm as part of their studies.

`--copy-config` Enhancements

In the past, `--copy-config` would fail if you already had a directory in that location. Now it will create a backup and update the folder structure instead.

Bugfixes

A few very old bugs allowed users to do fun things like crash the server and teleport to random locations. These bugs have been fixed. We will be keeping a lookout for more of those.

Other Small Things

- Scripters can now more easily add new packets
- The status server now shows the client version

Python 2

This is the last ever release for python2, which makes us very very happy. If you need any assistance in moving your servers or scripts to py3, or for anything else really, you can always [talk with us](https://github.com/piqueserver/piqueserver#point_right-chat-with-us) and we'll help.

Installation from PyPi

Python 2.7 or 3.4+ and `pip` are required.

To install the latest version using `pip3`:

bash
$ pip3 install --upgrade piqueserver Installs latest piqueserver from PyPi


Installation with Docker
Please see our [wiki page](https://github.com/piqueserver/piqueserver/wiki/Docker) about Docker.


Installation from the source code
Python 2.7 or 3.4+, `pip` and `virtualenv` are required.

To build:

bash
$ virtualenv -p python3 venv && . ./venv/bin/activate Activate virtualenv session
(venv) $ pip install -r requirements.txt Install requirements
(venv) $ python setup.py install Build and install piqueserver
(venv) $ deactivate Deactivate virtualenv session


(replace `-p python3` with `-p python2` if you intend to run piqueserver in Python 2)

Running

Running pique is a easy as:

bash
$ piqueserver OR
$ piqueserver -d YOUR_CONFIGS_FOLDER_LOCATION

The default configuration directory location is `~/.config/piqueserver/`.

The configuration directory for any piqueserver instance can always be specified using the `-d` option, thus allowing for per-instance configurations.

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.