Skip to content

KuiToi/KuiToi-Server

Repository files navigation

KuiToi-Server

About

[Status: Beta]
BeamingDrive Multiplayer (BeamMP) server compatible with BeamMP clients.

Why did I decide to write my own kernel from scratch?
I didn't like writing plugins in Lua after using Python; it was very inconvenient, there were always some nuances, which ultimately led me to create KuiToi!

Our site: kuitoi.su (WIP)
Our forum: forum.kuitoi.su (WIP)
Our discord: KuiToi

TODOs

  • Server core:
    • BeamMP System:
      • Private access (Without key, Direct connect)
      • Public access (With key, listing in Launcher)
      • Player authentication
    • TCP Server part:
      • Handle code
      • Understanding BeamMP header
      • Upload mods
      • Connecting to the world
      • Chat
      • Players online counter
      • Packets handled (Recursive finding second packet)
      • Client events
      • Car synchronizations:
        • State packets
        • Spawn cars
        • Delete cars
        • Edit cars
        • Reset cars
      • "ABG": (compressed data)
        • Decompress data
        • Compress data
    • UDP Server part:
      • Ping
      • Position synchronizations
  • Additional:
    • Logger:
      • Just logging
      • Log in file
      • Log history (.1.log, .2.log, ...)
    • Console:
      • Tabulation
      • History
      • Autocomplete
    • Events System:
      • Call events
      • Create custom events
      • Return from events
      • Async support
      • Add all events
    • MultiLanguage: (i18n support)
      • Core
      • Console
      • WebAPI
    • Plugins supports:
      • Python part:
        • Load Python plugins
        • Async support
        • KuiToi class
        • Client (Player) class
      • Lua part: (Original BeamMP compatibility)
        • Load Lua plugins
        • MP Class
        • Util class
        • FS class
    • HTTP API Server: (fastapi)
      • Stop and Start with core
      • Configure FastAPI logger
      • Sync with event system
      • Add methods...
    • RCON System:
      • Serving
      • Handle commands
      • Client
      • AES encryption
    • KuiToi System
      • Servers counter
      • Players counter
      • Etc.
  • Documentation

Installation

  1. Install Python 3.10
  2. Clone the repository in a location of your choice with: git clone -b Stable https://github.com/kuitoi/kuitoi-Server.git.
  3. Change directory into the KuiToi-Server: cd KuiToi-Server.
  4. Install requirements: pip install -r requirements.txt.
  5. Change directory into sources: cd src.
  6. Run KuiToi-Server: python3 main.py.

Feedback

If you have any questions, or you want to help the author in any way, you can write to him in
Telegram: @SantaSpeen
Discord: SantaSpeen


Licence

Copyright (c) 2023 SantaSpeen (Maxim Khomutov)
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 limitation in the rights to use, copy, modify, merge, publish, and/ or distribute copies of the Software in an educational or personal context, 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.
Permission is granted to sell and/ or distribute copies of the Software in a commercial context, subject to the following conditions:
- Substantial changes: adding, removing, or modifying large parts, shall be developed in the Software. Reorganizing logic in the software does not warrant a substantial change and received permission from the owner.
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.