bedrock-phanatics / quark
A server software for Minecraft: Bedrock Edition written in PHP
Requires
- php: ^8.4
- php-64bit: *
- composer-runtime-api: ^2.0
- ext-chunkutils2: ^0.3.1
- ext-crypto: ^0.3.1
- ext-ctype: *
- ext-curl: *
- ext-date: *
- ext-encoding: ~1.0.0
- ext-gmp: *
- ext-hash: *
- ext-igbinary: ^3.0.1
- ext-json: *
- ext-leveldb: ^0.2.1 || ^0.3.0
- ext-mbstring: *
- ext-morton: ^0.1.0
- ext-openssl: *
- ext-pcre: *
- ext-phar: *
- ext-pmmpthread: ^6.1.0
- ext-reflection: *
- ext-simplexml: *
- ext-sockets: *
- ext-spl: *
- ext-yaml: >=2.0.0
- ext-zip: *
- ext-zlib: >=1.2.11
- adhocore/json-comment: ~1.2.0
- axolotl-pm/bedrock-block-upgrade-schema: ~5.4.1+bedrock-1.26.50
- axolotl-pm/bedrock-data: ~6.9.0+bedrock-1.26.50
- axolotl-pm/bedrock-item-upgrade-schema: ~1.19.0+bedrock-1.26.50
- axolotl-pm/bedrock-protocol: dev-master#73afa2edf8442cab202ae237aa99792e57f1bdcf
- axolotl-pm/xoroshiro128pp: ^0.1.0
- netresearch/jsonmapper: ~v6.0.0
- pocketmine/binaryutils: ^0.2.1
- pocketmine/callback-validator: ~1.0.4
- pocketmine/color: ^0.3.0
- pocketmine/errorhandler: ^0.7.0
- pocketmine/log: ^0.4.0
- pocketmine/math: ~1.0.0
- pocketmine/nbt: ~1.2.0
- pocketmine/raklib: ~1.2.0
- pocketmine/raklib-ipc: ~1.0.0
- pocketmine/snooze: ^0.5.0
- ramsey/uuid: ~4.9.0
- symfony/filesystem: ~6.4.0
Requires (Dev)
- phpstan/phpstan: 2.1.46
- phpstan/phpstan-phpunit: ^2.0.0
- phpstan/phpstan-strict-rules: ^2.0.0
- phpunit/phpunit: ^10.5.24
Suggests
None
Provides
None
Conflicts
None
Replaces
This package is not auto-updated.
Last update: 2026-11-02 09:36:49 UTC
README
Quark
A performance-first, PvP-first Minecraft: Bedrock Edition server written in PHP.
Quark is built for servers where tick stability and responsive combat matter equally. It keeps expensive work bounded, removes avoidable hot-path overhead, and prioritizes latency-sensitive PvP feedback without changing Minecraft's combat rules. Quark 6 also introduces native redstone, bounded TNT processing, optional Snappy network compression, and an independent API namespace.
Join our Discord!
Important
Quark 6 requires 64-bit PHP 8.4 or 8.5 and Quark-compatible native extensions. It is a breaking release and does not load PocketMine-MP plugins without migration.
Features
- Performance-first runtime design focused on stable tick times under real server load.
- PvP-first networking that flushes synchronous hit feedback before the normal end-of-tick packet flush.
- Native redstone with world policies, runtime overrides, and per-tick safety limits.
- Optional Snappy packet compression with automatic zlib fallback.
- Configurable TNT limits across all core ignition sources.
- Configurable synchronous and asynchronous packet compression.
- Adaptive garbage collection and memory controls.
- Hardened inventory transactions and damage handling.
- Quark-owned PHP namespace, root Composer package, configuration, tooling, and release artifact.
Faster combat feedback
When network.combat-low-latency-feedback is enabled, Quark immediately flushes the synchronous effects of a successful hit to the involved players instead of always waiting for the normal end-of-tick network flush. At 20 TPS, this can save most of one 50 ms tick in the best case, depending on when the hit occurs, server load, and network conditions.
This improves how quickly hits feel visible to players; it does not reduce Minecraft's attack cooldown, alter hit registration rules, or guarantee a fixed millisecond improvement.
See the complete Quark 6.0.0 changelog and PocketMine-MP 5.47 migration guide.
Existing installations can inspect required changes with --migration-dry-run and migrate with --migrate-legacy before starting Quark 6.
Requirements
- A 64-bit operating system
- PHP 8.4 or 8.5
- The extensions listed in
composer.json ext-snappywhen using Snappy compression
Supported PHP builds are published through Bedrock-Phanatics/PHP-Binaries.
Installation
Install dependencies for development:
composer install
Build the production server:
composer make-server
Start Quark:
php Quark.phar
On first launch, review config/server.toml and config/plugins.toml before exposing the server publicly.
Configuration
Core settings are in config/server.toml; plugin loading rules are in config/plugins.toml. Notable server sections include:
network— compression, batching, latency, encryption, and MTU behaviormemory— limits, garbage collection, and memory dumpsredstone— world policy and component-processing limitstnt-limits— active entity and ignition limitscrash-dumps— crash details in the console and local.txtreportsauto-updaterandtimings— external services
The templates are server.toml and plugins.toml.
Plugin development
Quark plugins use the quark\ PHP namespace and target quark/quark through Composer. Plugins written for PocketMine-MP 5.x must be migrated and rebuilt.
Declare plugin API 6.0.0. Quark does not advertise Composer compatibility with pocketmine/pocketmine-mp; its external pocketmine/* and axolotl-pm/* library identifiers remain unchanged.
See the Quark 6 folder plugin and script plugin examples.
Before submitting changes, run:
vendor/bin/phpstan analyze --no-progress --memory-limit=2G vendor/bin/phpunit --bootstrap vendor/autoload.php --fail-on-warning tests/phpunit composer update-codegen
Project repositories
| Repository | Purpose |
|---|---|
| Quark | Server source and releases |
| ext-bedwire | Native Bedrock protocol, transport and NBT |
| PHP-Binaries | Supported PHP runtimes |
Upstream PMMP resources
These links belong to PocketMine-MP and are useful as upstream references; they are not Quark services or Quark release channels.
- PocketMine-MP API documentation
- PocketMine-MP translations on Crowdin
- PocketMine-MP releases and downloads
License
Quark is distributed under the GNU Lesser General Public License v3.0. It incorporates and derives from open-source projects whose copyright and license terms remain applicable.
The redstone implementation is based substantially on Cosmoverse/Redstone, created by Muqsit.
