| File Name | Type | Action | ||
|---|---|---|---|---|
| π | sc-proxy-master/ | Folder | ||
| π | sc-proxy-master/.envrc | ENVRC | Download | |
| π | sc-proxy-master/.gitignore | GITIGNORE | Download | |
| π | sc-proxy-master/AC_ptrs | Download | ||
| π | sc-proxy-master/LICENSE.txt | TXT | Download | |
| π | sc-proxy-master/Makefile | Download | ||
| π | sc-proxy-master/Pipfile | Download | ||
| π | sc-proxy-master/README.md | MD | Download | |
| π | sc-proxy-master/ServerNotifications.by_id | BY_ID | Download | |
| π | sc-proxy-master/ac_account_auras_body.py | PY | Download | |
| π | sc-proxy-master/ac_buy_item_request_body.py | PY | Download | |
| π | sc-proxy-master/ac_buy_item_response_body.py | PY | Download | |
| π | sc-proxy-master/ac_dispatch_table.json | JSON | Download | |
| π | sc-proxy-master/ac_friends_send_request_body.py | PY | Download | |
| π | sc-proxy-master/ac_handler_fields.json | JSON | Download | |
| π | sc-proxy-master/ac_leaderboard_get_descs_body.py | PY | Download | |
| π | sc-proxy-master/ac_league_team_info_body.py | PY | Download | |
| π | sc-proxy-master/ac_load_initial_player_data_body.py | PY | Download | |
| π | sc-proxy-master/ac_lobby_info_body.py | PY | Download | |
| π | sc-proxy-master/ac_lobby_list_body.py | PY | Download | |
| π | sc-proxy-master/ac_mail_get_body.py | PY | Download | |
| π | sc-proxy-master/ac_mail_send_request_body.py | PY | Download | |
| π | sc-proxy-master/ac_mm_info_body.py | PY | Download | |
| π | sc-proxy-master/ac_player_autogen_inventory_body.py | PY | Download | |
| π | sc-proxy-master/ac_player_credentials_body.py | PY | Download | |
| π | sc-proxy-master/ac_player_inventory_body.py | PY | Download | |
| π | sc-proxy-master/ac_player_vessels_body.py | PY | Download | |
| π | sc-proxy-master/ac_quests_body.py | PY | Download | |
| π | sc-proxy-master/ac_ship_quests_body.py | PY | Download | |
| π | sc-proxy-master/ac_talents_update_body.py | PY | Download | |
| π | sc-proxy-master/ac_teaching_list_body.py | PY | Download | |
| π | sc-proxy-master/ac_types.py | PY | Download | |
| π | sc-proxy-master/ac_universe_get_body.py | PY | Download | |
| π | sc-proxy-master/ac_update_dlc_ownership_body.py | PY | Download | |
| π | sc-proxy-master/ac_update_yup_purchases_body.py | PY | Download | |
| π | sc-proxy-master/ac_use_blueprint_response_body.py | PY | Download | |
| π | sc-proxy-master/ac_user_profile_get_request_body.py | PY | Download | |
| π | sc-proxy-master/ac_user_profile_get_response_body.py | PY | Download | |
| π | sc-proxy-master/ac_vessel_change_equip_body.py | PY | Download | |
| π | sc-proxy-master/ac_vessel_change_equip_multi_request_body.py | PY | Download | |
| π | sc-proxy-master/ac_vessel_change_equip_multi_response_body.py | PY | Download | |
| π | sc-proxy-master/ac_vessel_change_equip_response_body.py | PY | Download | |
| π | sc-proxy-master/ac_vessel_strip_improper_battle_body.py | PY | Download | |
| π | sc-proxy-master/ac_zones_lua_active_events_update_body.py | PY | Download | |
| π | sc-proxy-master/bag_payload.py | PY | Download | |
| π | sc-proxy-master/captures/ | Folder | ||
| π | sc-proxy-master/captures/.gitkeep | GITKEEP | Download | |
| π | sc-proxy-master/client.ksy | KSY | Download | |
| π | sc-proxy-master/fed_design_tgp_stream.py | PY | Download | |
| π | sc-proxy-master/notification.py | PY | Download | |
| π | sc-proxy-master/packet_bus.py | PY | Download | |
| π | sc-proxy-master/prefixed_bag_payload.py | PY | Download | |
| π | sc-proxy-master/protocol.py | PY | Download | |
| π | sc-proxy-master/proxy.py | PY | Download | |
| π | sc-proxy-master/proxy_chat.py | PY | Download | |
| π | sc-proxy-master/proxy_gui.py | PY | Download | |
| π | sc-proxy-master/proxy_lb.py | PY | Download | |
| π | sc-proxy-master/proxy_shard.py | PY | Download | |
| π | sc-proxy-master/proxy_ui.py | PY | Download | |
| π | sc-proxy-master/proxy_util.py | PY | Download | |
| π | sc-proxy-master/read_bag.py | PY | Download | |
| π | sc-proxy-master/requirements.txt | TXT | Download | |
| π | sc-proxy-master/scmd_decoders.py | PY | Download | |
| π | sc-proxy-master/server.ksy | KSY | Download | |
| π | sc-proxy-master/session_loader.py | PY | Download | |
| π | sc-proxy-master/sn_types.py | PY | Download | |
| π | sc-proxy-master/star_conflict_package_client.py | PY | Download | |
| π | sc-proxy-master/star_conflict_package_server.py | PY | Download | |
| π | sc-proxy-master/verify_ksy.py | PY | Download |
Star Conflict Shard and Chat Proxy
Disclaimer: The python code in this repo is heavily vibe coded
This git repo is to document the packet types used by the game Star Conflict. Initial goal is to document the format of all packet types with id 0 to 252.
Setup
Requires Python 3. From the repo root:
# 1. create an isolated environment
Β Β Β python -m venv .venv
# 2. activate it
Β Β # Β Β Windows (PowerShell): Β .venv\Scripts\Activate.ps1
Β Β # Β Β Windows (Git Bash): Β Β source .venv/Scripts/activate
Β Β # Β Β Linux / macOS: Β Β Β Β source .venv/bin/activate
# 3. install dependencies
Β Β python -m pip install -r requirements.txt
requirements.txt pulls in kaitaistruct (core packet parsers), PySide6 (the Qt inspector used by proxy_gui.py), and ruamel.yaml (used by verify_ksy.py). The kaitai-generatedΒ Β parsers (star_conflict_package_client.py / _server.py) are committed, so the kaitai-struct-compiler is only needed if you edit a .ksy schema and want to regenerate them (see Dependencies).
Verify the install:
Β Β python proxy.py --help Β Β # core proxy (console)
Β Β python verify_ksy.py Β Β Β # lints the .ksy schemas against captures/
Note: the repo also ships a Pipfile / .envrc (layout pipenv) for users who prefer pipenv + direnv. pipenv install is equivalent to the venv steps above.
How to
Activate the environment (see Setup), then launch the proxy (python proxy.py, or python proxy_gui.py for the Qt inspector).
Append -test to the launch parameters of game.exe (in Steam Right Click on game -> Properties -> Launch Options) outside of Steam, just launch game.exe directly with the mentioned parameter.
Choose localhost in the Server dropdown to connect through the proxy.
After logging in, the proxy will dump the bodies of recieved packets in ./captures or whatever directory the environment variable SC_CAPTURE_DIR points to.
Browsing older sessions
The Qt inspector (python3 proxy_gui.py) has a Session dropdown in the filter bar. It defaults to β Live (freshly captured traffic); selecting one of the listed sessions reloads that session's saved packet bodies from disk and shows them in the table, decoded exactly as the live view would. Use β³ to rescan the capture directories, and pick β Live again to resume the live feed.
Update the files server.ksy and client.ksy with definitions of packages you understand.
client.ksy is for packages flowing from Client to Server
server.ksy is for packages flowing from Server to Client
Not all package types do get sent in both directions
Dependencies
Installed by requirements.txt (see Setup):
Β Β python 3
Β Β kaitaistruct (pip) β runtime for the generated packet parsers
Β Β PySide6 (pip) β Qt inspector, proxy_gui.py only
Β Β ruamel.yaml (pip) β .ksy linting, verify_ksy.py only
Optional (only for regenerating parsers from .ksy)
Β Β kaitai-struct-compiler (https://kaitai.io/#download) β run make (or the kaitai-struct-compiler commands in the Makefile) to rebuild star_conflict_package_client.py / _server.py after editing the schemas
Β Β gnu-make β drives the above
----
Credits: Johnnynator GitHub
---
Disclaimer: Provided for demonstrative and research purposes only. The SC Outpost and the maintainer(s) are not responsible for misuse of this tool.Β