Conversation
Co-authored-by: Stage4000 <46226385+Stage4000@users.noreply.github.com>
Co-authored-by: Stage4000 <46226385+Stage4000@users.noreply.github.com>
…essary fallbacks Co-authored-by: Stage4000 <46226385+Stage4000@users.noreply.github.com>
Co-authored-by: Stage4000 <46226385+Stage4000@users.noreply.github.com>
|
AH01071: Got error 'PHP message: RCON: Incomplete player data received - missing id or GUID for player: unknown', referer: https://clever-lovelace.15-204-245-112.plesk.page/active_players
--
I also found this list of functions if that helps any: ARC features many functions to send BattlEye commands easier. After creating a new connections as explained above, you are able to use any of these functions: string command(string $command): Sends any command to the BattlEye server. |
Co-authored-by: Stage4000 <46226385+Stage4000@users.noreply.github.com>
|
... I found the issue! My initial fix was based on incorrect documentation. I was checking for fields named The error you saw was from my incorrect validation code rejecting valid player data. I've reverted those changes in commit f9002ac. The RCON library (
The only missing field is The error message should no longer appear, and player data should display correctly now. Can you test again? |
Co-authored-by: Stage4000 <46226385+Stage4000@users.noreply.github.com>
|
@copilot its still showing no actual data but the error is no longer there. Lets log all of the data we send and receive to/from RCON in a log file for debugging. |
Co-authored-by: Stage4000 <46226385+Stage4000@users.noreply.github.com>
I've added comprehensive RCON debug logging in commit e2f1567. Here's how to use it: To view the logs:
What gets logged:
The log will show exactly what RCON is sending/receiving, which should help identify why no data is showing. Look for:
The log file is automatically excluded from Git and can be cleared through the web interface. |
|
@copilot here is the log, it appears that [2026-02-12 01:11:37] getPlayers() called[2026-02-12 01:11:37] Attempting RCON connection [2026-02-12 01:11:37] RCON connection established successfully[2026-02-12 01:11:37] Calling RCON getPlayersArray()[2026-02-12 01:11:38] Raw RCON response from getPlayersArray() ) |
Co-authored-by: Stage4000 <46226385+Stage4000@users.noreply.github.com>
Found it! The RCON library returns a numerically indexed array, not an associative array as I initially assumed. I've added transformation logic in commit 8bbd7da to convert the numerical format:
The Active Players page should now display correctly with your name "Stage4000", ping 81ms, and proper GUID. The debug log will show the transformation in action. |
Co-authored-by: Stage4000 <46226385+Stage4000@users.noreply.github.com>
|
@copilot This is a good improvement, and I appreciate the changes made. While the current implementation using the BattlEye GUID is functional, I was wondering if there's a possibility to also retrieve the user's SteamID from the game server? Obtaining the SteamID would be significantly more useful for various administrative tasks and user tracking functionalities compared to the BE GUID. |
The BattlEye GUID from RCON is an MD5 hash of the Steam ID and cannot be directly reversed. However, there are two options:
Currently, the code already treats the GUID as a Steam ID in the database lookup (line 170-171 in active_players.php). If your database stores actual Steam IDs from user logins, the lookup will fail. Would you like me to implement option 1 (API integration) or option 2 (maintain a GUID-to-SteamID mapping table)? |
|
@copilot option 2 |
timefield with 'N/A' value/rcon_debug_log.phprcon_debug.log(excluded from Git)Summary: The RCON library returns numerically indexed arrays. Added transformation logic to convert to named fields with proper type safety. Debug logging confirmed the actual data structure from user's server.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.