Quest system for CS:GO servers without dependencies with a in-game skin shop based on kgns/weapons
plugin.
This system is based on the internal UDP log system present in the Source engine.
A daemon is used to ensure configured servers have the needed convars for this system to work. The daemon is also used to collect each UDP packet coming from the servers, process them and store in a Redis queue.
Once the log packets are processed and stored, a job, scheduled to run each minute, is dispatched to compute and update individual quest progresses.
Quests types are implemented with special classes that define how and which events (coming from the CS:GO servers) are processed into quest progresses. Quest modifiers can also be implemented in order to increase quest variety and difficulty.
Quests are count based (kill count, damage count, etc) and have a reward once completed. They can also have a deadline and entry cost.
Quests are created by the administrator manually, and once available, must be individually started by users (even quests without entry costs).
This project is mostly abandoned since it needed some serious rework on the main quest processing job to avoid unecessary database load. Since then, CSGO:Pipeline was fully implemented as a centralized CS:GO event processing system.
Since this project did not get much usage from my servers, it never received an update to work with CS:GO Pipeline, which would solve part of the performance problems.
- PHP 7.x
- NodeJS
- MySQL/MariaDB
- Redis
- CS:GO server