Internal file navigation for Showdown - Anyone with familiarity able to help me out?

I've been trying to find information on this online but it's pretty sparse and limited. I've found some things like where to edit or add new Pokemon's stats and moves, but I'm still struggling to find everything else. For instance, I'm still not able to find where all moves are located at and what defines their functions (power, pp, accuracy, secondary effects, etc), items and their functions, etc.

I'm just getting started with this stuff and it's a bit confusing with so little information out there. I'm not necessarily trying to do anything particularly complex right now and I'm pretty sure I can do quite a few new things even by simply copy/pasting and doing edits on the paste, but I can't get to that point without knowing the internal file structure and where to find some of the key files that I'll be making edits to. Doesn't help that there seem to be files with the .ts extension and others with .js that seem to be duplicates of the .ts files.

Anyone familiar with this stuff that might not mind at least pointing me in the right direction?
 
Hey there! You can find most of this info in the github repo.

Moves (power, pp, accuracy, etc) can be found here

Items and their functions can be found here

If you want to see past gens or other mods, you can go into the /mods directory, and there's moves.ts and items.ts files there as well. For example, gen1 moves are found here.

Hopefully that is enough to get you started.
Thank you so much, this helps me a ton! Starting to get a much better feel for where things are! :)
Edit: Cleaned up and streamlined a bit.

If I might ask you a few more quick questions, I'd be quite appreciative.
1) What's the difference between .ts and .js files? They seem identical to me, and neither of them seem to cause changes to go live when edited.
2) Editing abilities? They seem to have a different format than moves, dex, or items.
3) I've seen isNonstandard: "Past" applied to moves, items, and Pokemon that aren't allowed in the current gen. Is it safe to presume that removing this (and changing tier from Illegal) is all that's needed to get the team builder to recognize them as valid options again?
4) Where am I supposed to edit to apply changes to live on my server? I've been editing the relevant files under the "data" folder just like it shows in the links you gave, but when I upload and restart the server, none of the changes show up. One source says it may be a cache issue, but I can't test it right now because the server is being difficult with actually allowing me to connect.
 
Last edited:

bingingem

bing'dya
is a Pre-Contributor
Thank you so much, this helps me a ton! Starting to get a much better feel for where things are! :)
Edit: Cleaned up and streamlined a bit.

If I might ask you a few more quick questions, I'd be quite appreciative.
1) What's the difference between .ts and .js files? They seem identical to me, and neither of them seem to cause changes to go live when edited.
2) Editing abilities? They seem to have a different format than moves, dex, or items.
3) I've seen isNonstandard: "Past" applied to moves, items, and Pokemon that aren't allowed in the current gen. Is it safe to presume that removing this (and changing tier from Illegal) is all that's needed to get the team builder to recognize them as valid options again?
4) Where am I supposed to edit to apply changes to live on my server? I've been editing the relevant files under the "data" folder just like it shows in the links you gave, but when I upload and restart the server, none of the changes show up. One source says it may be a cache issue, but I can't test it right now because the server is being difficult with actually allowing me to connect.
I'll do my best to answer but maybe someone else could also chime in if I missed anything.

1. .ts are Typescript files and .js are Javascript files. I'd suggest googling the differences, but one of the main differences is typescript is statically typed and Javascript is dynamically typed.
2. Each ability will have functions that define what it does, plus some other flags (like rating (see top of abilities.ts)). For example, Adaptability will increase stab to 2.25x if the user is tera'd (or the stab is already 2x) else will increase stab to 2x. You can see that happens in the onModifySTAB() function.

As for 3 and 4, that's a bit beyond my understanding. Based on what I do know, getting things to "show up" (in teambuilder, tooltips, etc) requires client side updates. Admittedly, that's something I'm still learning :) But check out the README (specifically the Testing section) and hopefully that's enough to help ya get started. Good luck :)
 
I'll do my best to answer but maybe someone else could also chime in if I missed anything.

1. .ts are Typescript files and .js are Javascript files. I'd suggest googling the differences, but one of the main differences is typescript is statically typed and Javascript is dynamically typed.
2. Each ability will have functions that define what it does, plus some other flags (like rating (see top of abilities.ts)). For example, Adaptability will increase stab to 2.25x if the user is tera'd (or the stab is already 2x) else will increase stab to 2x. You can see that happens in the onModifySTAB() function.

As for 3 and 4, that's a bit beyond my understanding. Based on what I do know, getting things to "show up" (in teambuilder, tooltips, etc) requires client side updates. Admittedly, that's something I'm still learning :) But check out the README (specifically the Testing section) and hopefully that's enough to help ya get started. Good luck :)
Thank you so much again! That pretty well solidifies things for me right now I think. :)

My only other issue at the moment is connectivity, which is a whole different problem altogether. Unfortunately it's a server rather than client like you're going with, though at this point I'm tempted to just give the client a go instead to at least make sure the changes take effect so I can continue the work.

Curious if anyone else out there has had connectivity issues. Constantly getting "The connection for this site is not secure", and it's now the one thing preventing me from moving forward.
 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top