Proxy tool for SC packet capture by Johnnynator<br> Last updated: Jun 25, 2026
File NameTypeAction
πŸ“sc-proxy-master/Folder
πŸ“sc-proxy-master/.envrcENVRCDownload
πŸ“sc-proxy-master/.gitignoreGITIGNOREDownload
πŸ“sc-proxy-master/AC_ptrsDownload
πŸ“sc-proxy-master/LICENSE.txtTXTDownload
πŸ“sc-proxy-master/MakefileDownload
πŸ“sc-proxy-master/PipfileDownload
πŸ“sc-proxy-master/README.mdMDDownload
πŸ“sc-proxy-master/ServerNotifications.by_idBY_IDDownload
πŸ“sc-proxy-master/ac_account_auras_body.pyPYDownload
πŸ“sc-proxy-master/ac_buy_item_request_body.pyPYDownload
πŸ“sc-proxy-master/ac_buy_item_response_body.pyPYDownload
πŸ“sc-proxy-master/ac_dispatch_table.jsonJSONDownload
πŸ“sc-proxy-master/ac_friends_send_request_body.pyPYDownload
πŸ“sc-proxy-master/ac_handler_fields.jsonJSONDownload
πŸ“sc-proxy-master/ac_leaderboard_get_descs_body.pyPYDownload
πŸ“sc-proxy-master/ac_league_team_info_body.pyPYDownload
πŸ“sc-proxy-master/ac_load_initial_player_data_body.pyPYDownload
πŸ“sc-proxy-master/ac_lobby_info_body.pyPYDownload
πŸ“sc-proxy-master/ac_lobby_list_body.pyPYDownload
πŸ“sc-proxy-master/ac_mail_get_body.pyPYDownload
πŸ“sc-proxy-master/ac_mail_send_request_body.pyPYDownload
πŸ“sc-proxy-master/ac_mm_info_body.pyPYDownload
πŸ“sc-proxy-master/ac_player_autogen_inventory_body.pyPYDownload
πŸ“sc-proxy-master/ac_player_credentials_body.pyPYDownload
πŸ“sc-proxy-master/ac_player_inventory_body.pyPYDownload
πŸ“sc-proxy-master/ac_player_vessels_body.pyPYDownload
πŸ“sc-proxy-master/ac_quests_body.pyPYDownload
πŸ“sc-proxy-master/ac_ship_quests_body.pyPYDownload
πŸ“sc-proxy-master/ac_talents_update_body.pyPYDownload
πŸ“sc-proxy-master/ac_teaching_list_body.pyPYDownload
πŸ“sc-proxy-master/ac_types.pyPYDownload
πŸ“sc-proxy-master/ac_universe_get_body.pyPYDownload
πŸ“sc-proxy-master/ac_update_dlc_ownership_body.pyPYDownload
πŸ“sc-proxy-master/ac_update_yup_purchases_body.pyPYDownload
πŸ“sc-proxy-master/ac_use_blueprint_response_body.pyPYDownload
πŸ“sc-proxy-master/ac_user_profile_get_request_body.pyPYDownload
πŸ“sc-proxy-master/ac_user_profile_get_response_body.pyPYDownload
πŸ“sc-proxy-master/ac_vessel_change_equip_body.pyPYDownload
πŸ“sc-proxy-master/ac_vessel_change_equip_multi_request_body.pyPYDownload
πŸ“sc-proxy-master/ac_vessel_change_equip_multi_response_body.pyPYDownload
πŸ“sc-proxy-master/ac_vessel_change_equip_response_body.pyPYDownload
πŸ“sc-proxy-master/ac_vessel_strip_improper_battle_body.pyPYDownload
πŸ“sc-proxy-master/ac_zones_lua_active_events_update_body.pyPYDownload
πŸ“sc-proxy-master/bag_payload.pyPYDownload
πŸ“sc-proxy-master/captures/Folder
πŸ“sc-proxy-master/captures/.gitkeepGITKEEPDownload
πŸ“sc-proxy-master/client.ksyKSYDownload
πŸ“sc-proxy-master/fed_design_tgp_stream.pyPYDownload
πŸ“sc-proxy-master/notification.pyPYDownload
πŸ“sc-proxy-master/packet_bus.pyPYDownload
πŸ“sc-proxy-master/prefixed_bag_payload.pyPYDownload
πŸ“sc-proxy-master/protocol.pyPYDownload
πŸ“sc-proxy-master/proxy.pyPYDownload
πŸ“sc-proxy-master/proxy_chat.pyPYDownload
πŸ“sc-proxy-master/proxy_gui.pyPYDownload
πŸ“sc-proxy-master/proxy_lb.pyPYDownload
πŸ“sc-proxy-master/proxy_shard.pyPYDownload
πŸ“sc-proxy-master/proxy_ui.pyPYDownload
πŸ“sc-proxy-master/proxy_util.pyPYDownload
πŸ“sc-proxy-master/read_bag.pyPYDownload
πŸ“sc-proxy-master/requirements.txtTXTDownload
πŸ“sc-proxy-master/scmd_decoders.pyPYDownload
πŸ“sc-proxy-master/server.ksyKSYDownload
πŸ“sc-proxy-master/session_loader.pyPYDownload
πŸ“sc-proxy-master/sn_types.pyPYDownload
πŸ“sc-proxy-master/star_conflict_package_client.pyPYDownload
πŸ“sc-proxy-master/star_conflict_package_server.pyPYDownload
πŸ“sc-proxy-master/verify_ksy.pyPYDownload
Preview
Tutorial: 

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.Β