Squad Control Panel (SQCP) is a simple Open-Source solution for administrating your Squad game server written in Node JS (Express) and Vue JS (Vuetify Framework), utilizing the RCON protocol and MySQL database.
Features list bellow the News section.
11 of June 2023 - Hello everyone, I've finally found some free time to re-work the project from the ground up, which I've started doing in C#.
I've decided not to use TypeScript, because I want to get better at ASP.NET Core and C# in general. The work I am doing is going to be available in branch: https://github.com/milutinke/sqcp/tree/v2
21 of July 2022 - Hello everyone, in the coming months I'll be rewriting the project code base, the back end will be using Squad JS for RCON and live updates feature and the code base will be rewritten in Typescript using the following architecture:
Request <-> Express <-> Controller <-> Service <-> Repository <-> DAO
.
Technologies which I plan to use for back end:
The frontend will most likely be written in Vue 3 but using Quasar this time instead of Vuetify. I'll also make a docker image.
Planned features:
Some additional plans:
NOTE: Since the project will be completely rewritten from 0, I'll not be providing backwards compatibility with the old database in the code base itself. I'll probably make a separate tool for porting old bans, logs and roles to the new system for those who do not know how to export SQL.
As for the old codebase, it will be moved to a legacy branch once the new one is tested and stable.
When I start, donations would be very appreciated since I need to get a VPS and a server for testing.
Also, if you're interested, feel free to contribute with ideas of your own by opening an issue or making a pull request. If there is interest I could make a public Trello board and complete explanation of the planned architecture.
If you want to see how it looks like, click here
To learn how to setup the panel, click here
Squad as a game does not support any GUI options for player management (as of now), player Steam ID or name auto-completion, action (command execution) logging, admins from my gaming community Balkans Special Forces (BSF) have struggled to keep up with lots of player requests at the same time, no matter how many admins were online. Player names and Steam IDs have to be typed out in the commands every time, this can get really boring and painful, especially when there are players with non-English alphabet characters in their name. So, I came to an idea to make a GUI tool for server management. In the beginning, it was rather a simple PHP script written using Squad RCON PHP, but due to some game updates and a lack of maintenance, the library was not working as intended, so I've decided to write this project using Node JS and Squad JS (RCON part) which is a reliable library. I then had a lot of ideas that could make the lives of server owners and admins easier, so I've implemented them, but I kept this project simple, I've not implemented every single in fear that it would become too bloated. In the future, I will add some more features, but for now, this should be enough, at least for our (BSF) needs and I do not have much time because of the university. You have complete freedom to use and change this according to your needs and to contribute and make it better.
Backend:
Frontend:
Common:
My idea for this project is to be a community project, so I am looking for active contributors who would like to improve this project and bring more ideas.
Because I was taught to use SVN and Redmine, I am not that familiar with Git, so I will have to learn how to setup CI and tests in this ecosystem.
If someone is willing, you can share some ideas with me and help me do it.
PS: I also need to organize the Pull Requests categories. And, do not forget to run yarn prettier
If you like this project and you have found it useful, and you are willing to support it, you can donate using Pay Pal or ETH. Thank you!
0xa8121Ee49A83f0541ca71D4B4cbEa3a0AEE70f7d
MIT License
Copyright (c) 2022 Milutinke
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.