Jump to content
  • 28

PokeMMO API Megathread


Greck

Question

Good morning team!

 

I'm aware that one of the rules of suggestion box forums is:

Quote
  1. Provide only one suggestion per thread and make the title a clear and concise indicator of the suggestion. If you do not provide a suitable title to your thread, we will change it.

However, as the API topic is a very "need of context" and niche subject, I prefer to backle this up in an unique thread, and describe all possible usage cases of an hypotetical API, so I, and other 3rd party developers that may be interested in using the API, can defend the cause and push this to existence somehow.

 

Now let's begin with the issue itself, as the API topic is something that occasionally appear in the suggestion box, however the last time commented (around 2017) have been discarted as developer team did not have time nor interest in tackle this kind of features, however, today I'm in front of you, with (actually I hope this don't turn into an essay) a list of features, technical review and possible tool development that may use the data shared within the game.

 

At beggining I wanted to structure this topic as: First part for feature only description (so all players could bring some input into each of the ideas), however as many of the points I'd have to "repeat" for the sake of context, so I think the best idea is to just mix all things up in one self explained feature + a technical comment on how it could be implemented.

 

Possible API usages list

 

1. Pokemon summary data embedding (forums, discord) via shortcodes.

This is something that's around my head since I've started playing the game, and the utility for this could be limitless, mostly for trade corner and shiny showcase but a lot of people could even use this in guides for competitive teams.

This idea has 2 parts, the creation of a new feature in the client, that enables a new icon in the Pokemon Summary Screen (next to the last tab for example)

[Here will appear an epic screenshoot of the idea soon]

 

Once the player clicks that icon, on his clipboard automatically will be copied a shortcode, for example a format like [pokemon:a8b7c6d5e4], being the string of a8b7c6d5e4 an unique ID of the pokemon. This ID will be needed for a call to our API, and for the forums example, the idea is to show a card like this one:

[Here will appear an epic mockup of the pokemon card integrated in forums]

 

With all the basic information, and once you click in the card a popup just like the ingame summary will apear, to be checked by any player.

 

image.png

This as a popup in the forums, thanks to the info delivered by the API.

 

The integration on the forums could be either a JS function checking for any shortcode on the page loaded, with AJAX call data retrieve, and finally replacing the DOM with the HTML structure for both card and popups (but this approach could be an performance issue while a lot of shortcodes can be placed in the same page), the second option is a direct template edit of the IPB post structure, so all the cooking can be done serverside, and even with a good planing an S2S implementation for direct data access.

 

Let's say the endpoints looks like the following:

/api/pokemon/a8b7c6d5e4

Meaning we want to retrieve the information of a pokemon (instead of pokemon we could use /item, /pokedex, /move, but more on this later). The data returned by the API (this is a sketch of a structure) could be the following:

Spoiler
[{
  uniqueID:"a8b7c6d5e4",
  pokemonSpecies:"Parasect",
  currentOwner:"YettoDie",
  originalTrainer:"Greck",
  isShiny:true,
  isAlpha:false,
  itemHeld:"Leftovers",
  stats:{
    Level:"50",
    Nature:"Sassy",
    Ability:"Spore",
    HP:"420",
    ...},
  IVs:{
    HP:"31",
    Attack:"31",
    ...},
  EVs:{
    HP:"0",
    Attack:"252",
    ...},
  Moveset:{
    Move1:"Night Shade",
    Move2:"Shadow Ball",
    ...},
}]

 

Returning all kind of info related to that one pokemon.

 

This can be used for trade corner, shiny showcase threads, even link your favourite pokemons on your signature. Or get the data out of the forums, a discord bot that once in any channel you type /pokemon:a8b7c6d5e4 the data could be displayed in the chat. Obviously the data also can be explored by any developer for external usage (competitive team builder for type coverage calculators?).

 

2. Berry growing status / notifications.

As the berry growth is a time related event, and many people use external (but manual) tools to check on when the berry finished it's cycle, we could use another function to bring data related to the berries. For example an endpoint that requested with the username, could return a list of detailed information about all berries ready to be picked up, the berries that still are growing, the slots that you have left for more berries etc.

I mention the username, as for example a call to /api/berries/username could return a JSON structure with all the information desribed, I know using only the username with no prior authentication may result in some personal information issues, but in the other hand, what harm it can do the knowledge that your friend can has the berries ready to collect.

 

This can be used in services as smart notifications, that check every X minutes if you berries are ready, and send you (for example in-browser) notification about what berry can be collected already.

 

3. Pokédex external implementation [Guide Tavern / Competitive Alley]

So, as many knows the pokemon / pokedex has many changes compared to the original series, to fit better with MMO experience, and also mixing mechanics from different generations, for example pokemons that learn different moves. This leads to frequent questions in forums or chats, that could be attached in guides, however the changes frequently occur and guides are not updates with the new data. The implementation of an /api/pokedex/squirte function could return all information related to that pokemon, the lvl it evolves, the routes it can be found, what moves it learn via level up, breeding, TMs, tutors. anything that appear ingame and more, and just like the first example we could enable a shortcode structure like [pokedex:squirtle] so it can be linked to the guides directly (with no further update as the data it's coming from the game itself).

 

4. Data related to events, tournaments, updates, announcements.

All kind of data related to events or tournaments, for custom calendar implementation / stats on players winning the tournaments, even information of each player about PvP stats.

 

5. Teams and clubs integration.

Another data that could be integrated via API endpoint, is the information about ingame teams, so you could have a link between user profile, and his actual in-game team name.

 

6. Encounter tracking

This kind of tools gained major popularity, to count on how many times a pokemon was encountered, so you can check on shiny hunting statistics or other interesting values.

The in-game engine could return for every encounter a basic information on pokemon type, if it was shiny, how many steps was made between encounters etc.

 

7. More implementations coming later.

You may notice I've not even mentioned the GTL yet, as this topic will bring another wall of text itself, however it's somethign that I'll add in near future for sure.

 

For now, I'd want to know a general opinion on this from staff + devs, but also the 3rd party developers opinion that will use this API solution, their own input into this suggestion, or anything that it can be improved / other data that could be useful (as I was out of the game for several years for sure I've missed some important changes that also could be explored).

Who knows, maybe if we find this with enough interest from 3rd party developers, and now the PokeMMO team is a bit less occupied with features implementation, we could find this as something happening eventually, It is a long shot, but you never know.

Cheers!

Edited by Greck
aditional point
Link to comment

11 answers to this question

Recommended Posts

  • 0

HUGE wishlist item right here!

 

I know we have a ton of talented and motivated developers out there.

For example the guys at PokemmoHub or Archetype.

And they could do way more with an API! Some great ideas for tools get scrapped due to game data being too difficult to access.

Like, either you scrap, or you make a janky screen reader.

 

I had basically finished developing a breeding calculator, but scrapped publicizing it due to the sheer amount of manual data entry the user has to do.

The concept is, the calculator just takes everything that's in all your boxes, and it calculates the cheapest way to make whatever breed you wanna make.

Which means in my current build, the user spends like an hour re-creating his boxes in the ui...

 

So personally for me, box data would be highly important.

 

If I may add, a GET endpoint for moddable resources would be nice too. (like all the music ids, or tilemaps, or whatever).

 

And finally, +1 to berry timers and gtl stuff. seems like a lot of potential.

Link to comment
  • 0

I approach this topic prudently because there's obvious benefits to a third party developer's interests in getting an API, and the end product can be useful to players as well. However, there's a reason why API hasn't been provided to the public after all these years, and only the devs have the answer to that. I trust that they've given careful thought to why they haven't yet. It could just be that it hasn't been of any significant interest or priority to them, as there's always been something else to work on. In which case I hope this thread can spark interest in them considering this suggestion. I hope PokeMMOHub shows the potential of an API being used for good. But I can also understand the skepticism of releasing a detailed public API, as it can pose risk to the health of PokeMMO due to bots and malicious programs being able to utilise this information in real time. You have listed very good suggestions and examples of what API can be added, and I am interested on what the devs think of these, if they want to chime in.

Link to comment
  • 0

One of the reasons I really wish the Pokedex at least had exportable data/public API is because PokeMMO is its own game, and so resources like PokemonDB, Bulbapedia, Smogon, Showdown, Calculator and so on are often not quite right about moves, wild locations, available abilities, held items etc. These resources are good enough for PokeMMO and everybody uses them, but you have to do so with caution and be aware of the many differences, which isn't very friendly to newcomers. I'd love to make PokeMMO versions of each of these resources, but that's a near impossible task without the data being exportable.

Link to comment
  • 0

Agreed at the moment wanting to work on a discord bot but grabbing each piece of information is making me sad 😞

"pikachu": {
    "image": "https://i.gyazo.com/eb2800a151b7e7d506a98d2daabc889a.png",
    "eggType": "Field/Fairy",
    "type": "Electric",
    "author": {
      "name": "pikachu Master",
      "icon": "https://cdn.discordapp.com/attachments/1145590878837157939/1145860729421963345/eBZHR5D.png"
    },
    "pokedex": {
      "national": "#25",
      "kanto": "#25",
      "johto": "#23",
      "hoenn": "#156"
    }
  },

 

Edited by fishigga
Link to comment
  • 0

Two other ideas I've thought of related to this. First off this would enable something like exporting your pokemon to mainline games as .pkm files which is something I've been desperately trying to do, but simply haven't had access it the data. But wayyy more interesting is the gap in johto's release: where's the radio??

 

I have a great idea: between GPT4's API (fairly cheap), an API with news updates (legendaries caught, swarms, tournaments etc) and a Text to speech module like Bark or Tortoise (or even Eleven labs) we could have our own pokemon radio show that players could turn on or off. I'd think the main hosts would be Oak and Mary, and they could just typically chat about pokemon trivia, and strategy. Lastly with Meta's AudioCraft you could even make little ads+jingles between songs (route music?) for different things like the Battle Frontier or pokeballs or whatever. I think it's really doable and would really be a great addition.

Edited by Enthymema
Specifics
Link to comment
  • 0

I fully agree to this because it will be really nice and will atract more players obviously, it simply perfect, 3rd party programmers will be able to make applications and analysis with the data from the API, it will be nice, fun and useful to have this feature honestly.

I describe this idea as "a key feature for expansion in all kinds of topics about PokeMMO", amazing, if this is applied to manage the competitive PvP data, tournaments, teambuilding, and more, people will create wonderful things thanks to the API.

Link to comment
  • 0

It was a full month since last post, I'd say there is actually nothing to ask for, confirmed the commitment with developer community is nonexisting. So we can just enjoy the game with vanilla features and advantages on having slow paced improvements rolled out. Peace to all, god bless you, be kind to each other.

Sal'ut

Link to comment
  • 0
On 8/28/2023 at 8:30 PM, fishigga said:

Agreed at the moment wanting to work on a discord bot but grabbing each piece of information is making me sad 😞

"pikachu": {
    "image": "https://i.gyazo.com/eb2800a151b7e7d506a98d2daabc889a.png",
    "eggType": "Field/Fairy",
    "type": "Electric",
    "author": {
      "name": "pikachu Master",
      "icon": "https://cdn.discordapp.com/attachments/1145590878837157939/1145860729421963345/eBZHR5D.png"
    },
    "pokedex": {
      "national": "#25",
      "kanto": "#25",
      "johto": "#23",
      "hoenn": "#156"
    }
  },

 

Regarding this, I have a big mock of the pvp data from Pokemmo in my personal project, also trainers with their income. Maybe is useful for anyone.
https://github.com/LemonMantis5571/PokeMMO-Utilities/tree/main/data
I update this manually sadly.

Edited by LemonMantis5571
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.