• The Eevee Expo Game Jam #10 has concluded, congratulations to all participants! Now it's time for the judges to play through the games, and you can play along to vote who deserves the community choice spotlight.
    You can check out the submitted games here!
    Play through the games and provide some feedback to the devs while you're at it!
  • Hi, Guest!
    Some images might be missing as we move away from using embedded images, sorry for the mess!
    From now on, you'll be required to use a third party to host images. You can learn how to add images here, and if your thread is missing images you can request them here.
    Do not use Discord to host any images you post, these links expire quickly!
Resource icon

Resource [v16/v17/v18/v19/v20/v21] Cable Club 3.7

Vendily

Elite Trainer
Member
Hello, I came to leave a report for possible improvements in the next versions

1. Compatible with a move if a Beedrill learns the move only when it is a Kakuna.
2. Add the Pokémon battle history to the DEBUG LOG. For example:
Viana ID: XXXXX won a battle against Pedro ID: XXXXX in a Single Battle.
3. If possible create a room where players connect in a "Search" system. This will generate possibilities for searches to be filtered based on the number of badges or anything else.

Anyway, see you soon, looking forward to the next updates.
I'm a little too busy to pick up my larger projects at the moment, but I can comment on this.
  1. LcorpOfficial has sent me the majority of a PBS data cruncher, which will convert the PBS files for the game to a format that allows the server to share egg moves and the like across evolutions, such that this sort of error will not happen anymore. There are a few more concerns that need to be tested, as well as the need to test and port it to work with other versions of essentials, as it was made for v20 specifically.
  2. This isn't really possible with the current set up of the server python, the server no longer peeks at the data sent to it once it points the two players at each other. The only data sent normally is the specific battle commands, or perhaps trade data or record mixing data, and each game processes that data on its own (so provided there is no desync, the battle outcome is decided client side for each player). I don't quite see the need to verify this more strongly than this, as the system is made to connect with a player you know outside the game. It's not exactly made to host tournaments, and you would need to rely on your own battle outcome reporting and mediation system.
  3. To implement a feature like this would require a near complete rewrite of the server python's networking. It was specifically set up for the purpose of connecting one player to another, and I'd rather not increase the scope of this project more than I already have. I'm also not particularly strong with the specifics of implementing networking features, and with few exceptions, the networking portion of the server has remained the same as it was when I originally took over maintaining this script from mGriffin.
Hopefully I have answered all of your questions, even if I do not have the ideal response for your purposes.
 

Jukes

Cooltrainer
Member
Joined
Jul 15, 2023
Posts
100
I'm a little too busy to pick up my larger projects at the moment, but I can comment on this.
  1. LcorpOfficial has sent me the majority of a PBS data cruncher, which will convert the PBS files for the game to a format that allows the server to share egg moves and the like across evolutions, such that this sort of error will not happen anymore. There are a few more concerns that need to be tested, as well as the need to test and port it to work with other versions of essentials, as it was made for v20 specifically.
  2. This isn't really possible with the current set up of the server python, the server no longer peeks at the data sent to it once it points the two players at each other. The only data sent normally is the specific battle commands, or perhaps trade data or record mixing data, and each game processes that data on its own (so provided there is no desync, the battle outcome is decided client side for each player). I don't quite see the need to verify this more strongly than this, as the system is made to connect with a player you know outside the game. It's not exactly made to host tournaments, and you would need to rely on your own battle outcome reporting and mediation system.
  3. To implement a feature like this would require a near complete rewrite of the server python's networking. It was specifically set up for the purpose of connecting one player to another, and I'd rather not increase the scope of this project more than I already have. I'm also not particularly strong with the specifics of implementing networking features, and with few exceptions, the networking portion of the server has remained the same as it was when I originally took over maintaining this script from mGriffin.
Hopefully I have answered all of your questions, even if I do not have the ideal response for your purposes.


I'm having a constant issue where it says my game version is out of date compare to the Cable Club?
 

Jukes

Cooltrainer
Member
Joined
Jul 15, 2023
Posts
100
Make sure the GAME_VERSION setting in the game is the same as that on the Cable Club's server.
The Cable Club checks using Semantic Versioning, but without seeing the constants myself, I can't suggest more than that.
Ah thank you. I fixed that. the only other issue i'm having is for some reason is not a single gen 9 pokemon is allowed in the cable club and Im not sure why it's doing it. It has an updated PBS file
 

Vendily

Elite Trainer
Member
Ah thank you. I fixed that. the only other issue i'm having is for some reason is not a single gen 9 pokemon is allowed in the cable club and Im not sure why it's doing it. It has an updated PBS file
if you run the server in the debug log level py cable_club.py --log=debug, the server.log file should tell you the exact rejection reason.
 

Jukes

Cooltrainer
Member
Joined
Jul 15, 2023
Posts
100
On the command line, when you run the server
Unless you mean where does the server.log file get saved to, which is where ever the LOG_DIR constant is pointing to (by default, it's the current folder you are running the server from.)
2024-02-20 16:34:11,372: DEBUG: invalid name: Corvisquire

it's listed in the PBS as CORVISQUIRE

I'm not sure why its not coming up
 

Jukes

Cooltrainer
Member
Joined
Jul 15, 2023
Posts
100
same happens with Lechonk or any gen8 and gen 9 pokemon
 

Vendily

Elite Trainer
Member
same happens with Lechonk or any gen8 and gen 9 pokemon
Is it the same error for those mons?
Python:
Expand Collapse Copy
                    name = record.str()
                    if not (len(name) <= POKEMON_MAX_NAME_SIZE):
                        logging.debug('invalid name: %s', name)
                        errors.append("invalid name")
This is the relevant section for the previous error. POKEMON_MAX_NAME_SIZE defaults to 10. Corvisquire is 11 characters long.
 

Jukes

Cooltrainer
Member
Joined
Jul 15, 2023
Posts
100
I set it to 20 and havent had any errors since.

Also,

Do you think we could maybe get triple triad to be a multiplayer feature too? I'd be willing to commission or work on it with a team
 

Vendily

Elite Trainer
Member
I set it to 20 and havent had any errors since.

Also,

Do you think we could maybe get triple triad to be a multiplayer feature too? I'd be willing to commission or work on it with a team
It's possible, but the script in essentials doesn't cleanly separate the different portions of the minigame. The AI, the deck selection, and minigame itself are all one big block. You'd either have to duplicate it in its entirety to add in the cable club parts, or rewrite it separate duties, allowing cable club to subclass it.

But I'm not too familiar with Triple Triad or how the minigame itself works beyond a cursory look through in the past, and I'd rather not add another project to support at this point in time. It takes me long enough to update Cable Club as is, 6 versions that all need to be tested.
 

Vendily

Elite Trainer
Member
Vendily updated [v16/v17/v18/v19/v20/v21] Cable Club with a new update entry:

Cable Club 1.11/2.7/3.7 Patch Notes

  • Newly created UI
    • General Overhaul to be easier to add features to all versions, Team Preview
  • Added Rulesets feature and *.rules files
  • Added Developer defined win and lose texts for online battles
  • Added Triple battles to v18+
  • Prevented item duplication/deletion exploits by taking items off a mon mid battle or in a summary screen
  • Fixed Sketched moves appearing invalid
  • Overhauled server_pokemon.txt format, with conversion python script
  • Added...

Read the rest of this update entry...
 

notminiac

Novice
Member
Joined
Feb 24, 2024
Posts
18
Hello! I'm getting the 3 errors mentioned next. I managed to create a semi-functional server but when establishing a connection these errors appear. In the third case, I tried to check the server rules, the allowed Pokémon, but I can't identify any problem. Any help would be great, thank you for your plugin.

1. Exception `Errno::EINVAL' at [Cable Club] 006_CableClub_UI.rb:316 - Invalid argument @ dir_chdir - C:Users☼fashDesktopPokules.rules/_TESTPBS

2. WARNING: Usage of deprecated method "safeExists?(f)" or its alias.
The method is slated to be removed in Essentials v22.
Use "FileTest.exist?(f)" instead.

3. Exception `Connection::Disconnected' at [Cable Club] 001_Connection_Communication.rb:35 - invalid party
 

Vendily

Elite Trainer
Member
Hello! I'm getting the 3 errors mentioned next. I managed to create a semi-functional server but when establishing a connection these errors appear. In the third case, I tried to check the server rules, the allowed Pokémon, but I can't identify any problem. Any help would be great, thank you for your plugin.

1. Exception `Errno::EINVAL' at [Cable Club] 006_CableClub_UI.rb:316 - Invalid argument @ dir_chdir - C:Users☼fashDesktopPokules.rules/_TESTPBS

2. WARNING: Usage of deprecated method "safeExists?(f)" or its alias.
The method is slated to be removed in Essentials v22.
Use "FileTest.exist?(f)" instead.

3. Exception `Connection::Disconnected' at [Cable Club] 001_Connection_Communication.rb:35 - invalid party
  1. What is your FOLDER_FOR_BATTLE_PRESETS setting set to?
  2. That's just a warning, I'll fix it properly eventually.
  3. The party you attempted to connect with is invalid.
None of these should affect the running of the plugin, as they are rescued (rescued errors still appear in the console) or just a warning. Have you checked the manual? It has how you troubleshoot the invalid party issue (there's too many potential reasons without seeing the debug server logs).
 

notminiac

Novice
Member
Joined
Feb 24, 2024
Posts
18
  1. What is your FOLDER_FOR_BATTLE_PRESETS setting set to?
  2. That's just a warning, I'll fix it properly eventually.
  3. The party you attempted to connect with is invalid.
None of these should affect the running of the plugin, as they are rescued (rescued errors still appear in the console) or just a warning. Have you checked the manual? It has how you troubleshoot the invalid party issue (there's too many potential reasons without seeing the debug server logs).
For 1. the line is "FOLDER_FOR_BATTLE_PRESETS = "C:\Users\cofash\Desktop\PokeEssentials_TEST\PBS\rules.rules", I'm assuming it should be just \pbs instead of the rules file?
As for 3., I tried starting the server with "py cable_club.py --log=DEBUG" so I could see what's the issue, but it didn't really give any explanation. Team was just 1 level 100 Venusaur for testing, and it said it was invalid even when enabled in the server_pokemon.txt file.
Thank you for replying so fast!
edit: Yes! I've been checking the manual, sorry for not replying to that. It's been really useful so far.
 

Vendily

Elite Trainer
Member
For 1. the line is "FOLDER_FOR_BATTLE_PRESETS = "C:\Users\cofash\Desktop\PokeEssentials_TEST\PBS\rules.rules", I'm assuming it should be just \pbs instead of the rules file?
As for 3., I tried starting the server with "py cable_club.py --log=DEBUG" so I could see what's the issue, but it didn't really give any explanation. Team was just 1 level 100 Venusaur for testing, and it said it was invalid even when enabled in the server_pokemon.txt file.
Thank you for replying so fast!
edit: Yes! I've been checking the manual, sorry for not replying to that. It's been really useful so far.
Yes you only include the folder name.
The exact details would be in the server.log file which should generate in the same folder you call the server from. It would say exactly why it rejected you in debug mode.
 

notminiac

Novice
Member
Joined
Feb 24, 2024
Posts
18
Changing the root of the battle presets location seems to resolve the above issues, but now I'm getting this syntax error in settings.rb.

Edit: I fixed it! Sorry, it was a problem of mine. Thank you so much for your awesome plugin!
 

Attachments

  • 1709172944676.png
    1709172944676.png
    32.7 KB · Views: 19
Last edited:
Back
Top