{"id":17680078,"url":"https://github.com/silverweed/pokepon","last_synced_at":"2025-08-17T18:37:31.677Z","repository":{"id":20711148,"uuid":"23995101","full_name":"silverweed/pokepon","owner":"silverweed","description":"A Pokémon-like online battle simulator with ponies","archived":false,"fork":false,"pushed_at":"2022-02-14T13:31:57.000Z","size":36144,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-12T22:55:16.878Z","etag":null,"topics":["battle-simulator","game","java","multiplayer","mylittlepony","online","pokemon","ponies"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silverweed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-13T13:37:03.000Z","updated_at":"2024-11-29T14:13:52.000Z","dependencies_parsed_at":"2022-08-25T14:30:32.360Z","dependency_job_id":null,"html_url":"https://github.com/silverweed/pokepon","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/silverweed/pokepon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverweed%2Fpokepon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverweed%2Fpokepon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverweed%2Fpokepon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverweed%2Fpokepon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silverweed","download_url":"https://codeload.github.com/silverweed/pokepon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverweed%2Fpokepon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270892140,"owners_count":24663541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["battle-simulator","game","java","multiplayer","mylittlepony","online","pokemon","ponies"],"created_at":"2024-10-24T09:05:20.750Z","updated_at":"2025-08-17T18:37:31.610Z","avatar_url":"https://github.com/silverweed.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Poképon\n====================================================\nPoképon is a multiplayer Pokémon-like battle simulator with ponies.\n\n[Click here](https://pokepon.center/playing.html) for a TL;DR quick start:\nfollowing are more detailed and technical information on the project.\n\nThe game consists mainly of a Server, a Client and a Teambuilder (plus several\nminor utilities); in order to play, a player must host a Poképon Server,\nto which several players can connect with their Clients and battle each other.\n\nDownload\n-----------------------------------------------------\nIf you just want the executable JAR file, use this download link:\n[Poképon 0.01](https://pokepon.center/downloads/pokepon.jar)\n(warning: the pre-packaged game probably won't be the latest version).\n\nLaunching the game\n-----------------------------------------------------\nPoképon is compatible with any OS supporting a JVM, like\nLinux, BSD, Windows and MacOS.\nThe simplest way to launch the game is to double-click pokepon.jar,\nor to type in some terminal `java -jar /path/to/pokepon.jar`.\nIn case the game doesn't start upon double-clicking, try right-clicking\nit and select \"Open with Java JDK 7\" or something alike.\nJava 1.7 or later is required to play Poképon.\n\nTo connect to a running server, click \"Client\" and insert the server IP\n(the port is usually the default one, unless the server mantainer has\ndecided otherwise).\n\nHere is a list of public Poképon Servers to which anyone can connect:\n*none: they all ded, lol*\n\nBuilding\n-----------------------------------------------------\nIf you want the bleeding-edge version of the game (beware: it won't necessarily be\nstable), or in case you want to do some experimentation, get a JDK 1.7 or later and ensure that\nthe pokepon parent directory is in your CLASSPATH environment variable.\nTo compile all the game classes, do `javac \"@files.txt\"` or, if you have Make\ninstalled, `make`.\n\nAn utility `create_pokepon_jar.sh` can be found in `data/` to create a\nnew JAR from the compiled classes, but requires Bash. The script should be launched\nfrom the parent directory of the pokepon root. For example:\n```bash\n$ pwd\n/path/to/pokepon\n$ cd ..\n$ ls\npokepon/\n$ bash ./pokepon/data/create_pokepon_jar.sh\n... (some output from jar)\n$ ls\npokepon/   pokepon.jar\n```\n\nHow to connect\n--------------------------------------------------------\nThere are basically 2 ways to play Poképon:\n\n  1. By connecting to a public server\n  2. By creating a local server and use it to battle locally (either in LAN or not)\n\n(See paragraph \"Server Setup\" for information on the second option.)\n\nTo connect to a running Poképon Server start the Client, either from\nthe graphical launcher or issuing the command \n```bash\njava -jar /path/to/pokepon.jar client \u003cserverIP\u003e\n```\n\nThe client is effectively a chat endued with some extra features, most notably\na Teambuilder, which can be used to create, save, load and edit teams.\n\nThe teams are saved as text files in the following directory:\n* Linux / Mac\n```\n~/.pokepon/teams\n```\n\n* Windows\n```\n%APPDATA%/pokepon/teams\n```\n\nThese text files can be safely edited as long as you use the correct syntax\n(which you can infer from an auto-generated save file). If you like the Vim\neditor, syntax highlighting files are available in the game repository, \nunder data/vim.\n\nProtip: the `/help` command can be used to obtain a list of the\navailable chat commands. \n\nBattling\n----------------------------------------------------------\n*Hint: typechart is [here](https://github.com/silverweed/pokepon/blob/master/enums/README.md)*\n\nYou can challenge other players connected to your server in 3 ways:\n* simply click on the player's name in the right panel of the chat and\n  select 'Challenge'\n\n* Use the Challenge button on the left panel and insert the other player's\n  name\n\n* Issue the chat command /battle \u0026lt;player's name\u0026gt;\n\nUnless you select the Random Battle format, you'll be prompted to select a\nteam; you cannot challenge other players to formats other than Random Battle\nif you don't have any team.\nBe aware that your team and your opponent's will be validated from the server\nbefore starting a battle, so check the rules of the format you're going to use.\n\nIf you want to bypass any format restriction, just choose the 'Custom' format\nand don't specify any rule.\n\n### Guests ###\nYou can watch an ongoing battle as a guest. At the moment, the only way to do\nso is via the chat command `/watch \u003cbattleID\u003e`, like this:  \n\n1. in the chat, issue `/battles`. You'll get an output like this:\n```\n-- Battle schedule: \n[battle#0] blank_flank-1 \u003c=\u003e blank_flank-2 (format: Classic)\n[battle#1] blank_flank-3 \u003c=\u003e blank_flank-4 (format: RandomBattle)\n------------------------- \n1 battles active \n0 battle requests pending\n```  \n2. choose the battle you'd like to watch: its battleID is the number after the `#`\n   symbol: `[battle#0]  -\u003e the ID of this battle is 0`.\n3. issue the chat command `/watch 0`\n\n### Exporting and replaying battles ###\nAt any time during a battle, whether you're a player or a guest, you can export\na battle log with `/save`, or `/export` (you must have the `Enable battle\nlogging` option enabled, which is the default).\n\nThe battle log will be saved as a file, either in `~/.pokepon/battle_records/`\n(on Linux or Mac), or in `%APPDATA%/pokepon/battle_records` on Windows. \nIf you're using the unpackaged version of the game, it will be instead in\n`(pokepon rootdir)/data/battle_records`.\n\nYou can replay a saved battle from the launcher by clicking the Replay button\nand selecting the battle record you exported.\n\nDefault battle formats\n------------------------------------------------------------\nThese are the battle formats available by default:  \n* **Classic** - \"uber\" ponies and moves are banned; species clause\n* **RandomBattle** - species clause, teams are randomized (levels are balanced for both teams)\n* **Monotype** - all rules of Classic, plus monotype clause: all ponies in team must share at least 1 type\n* **SpeciesClauseOnly** - no banned ponies/moves/etc, but species clause enabled\n* **MonotypeOnly** - only monotype clause\n* **NoUberOnly** - ubers are banned, but no species clause\n* **ItemClauseOnly** - item clause: only 1 copy of each item is allowed in the team\n* **Default** - no restrictions\n* **Custom** - see *Creating custom formats*\n\n(You can see the rules of each format by clicking the `?` button aside the drop-down menu).\n\nCreating custom formats\n------------------------------------------------------------\nIf you select Custom format for a battle, you'll be prompted to insert rules\nspecifications in a text area.\nAt the moment, this interface is not very user-friendly, but it's not too\ncomplicated either:\n\na 'rule' is a line with the format `X:name`, where 'X' is a letter\nspecifying what kind of restriction you're applying (whether you're banning\na pony, a move, an item, an ability, a combo or if you're specifying a special\nformat), and 'name' is the name of the pony/item/etc you're banning.\nThe letters are as follows:\n* p: ban a pony\n* m: ban a move\n* i: ban an item\n* a: ban an ability\n* c: ban a combo (see later)\n* S (or nothing): specify a special format (see later)\n\nUsing one of the first 4 letters is immediate: if, for instance, you want to ban\nTwilight Sparkle, just add the line `p:Twilight Sparkle` followed by\na newline. Use the exact number of spaces in the pony/item/etc's name.\n\nBanning a 'combo' means you specify a set of 'simple rules' (i.e. a rule using one\nof the first 4 letters), and their intersection gets banned. For instance, you may\nwant to prevent players to use Princess Celestia with the move Friendship Cannon.\nThe format of a combo restriction rule is:\n`c:{X:name, Y:name, ...}`\nIn the case described above, you should then insert the line: \n`c:{p:Princess Celestia, m:Friendship Cannon}`\n\nA 'special format' is a predefined rule which cannot be described by the simple\nrules. The available special formats are:\n* S:speciesclause  - disallows duplicate ponies in the same team\n* S:canon  - disallows non-canon ponies (ponies not appearing in the show)\n* S:monotype  - forces all ponies in a team to share at least 1 type\n* S:itemclause  - disallows using the same item on more than 1 pony in a team.\n\nYou can use as many rules as you wish, and the union of them will be applied to\nthe custom match.\n\nServer Setup\n-----------------------------------------------------\nYou may wish to launch a Poképon Server on your own machine, either to\ndo a local battle on-the-fly (this is possible even if you're not connected\nto the Internet, as long as you have some way to communicate with the other\nplayers) or to host a dedicated server.\n\nThe server should be able to run out of the box, but some configuration may be\nrequired or desirable.\n\nTo start a server, open the game and select the \"Server\" option in the\ngraphical launcher; a configuration window will open, but usually you can\nsimply click \"OK\" without touching it (the only thing you may be forced to\nchange is the server IP, in case the game cannot guess the correct one).\n\nAs an alternative, the server can be started in batch mode via the command\n```bash\njava -jar /path/to/pokepon.jar server [opts]\n```\n\n(The flag `-h` can be used to obtain a quick summary of the server\noptions).\n\nIf you're using the unpackaged version of the game, the script `run.sh` can\nbe used as a shortcut launcher on \\*nix environments.\n\nIf the server was started from the JAR package, the configuration file\nit will use can be found in:\n* Linux / Mac\n```\n~/.pokepon/server.conf\n```\n\n* Windows\n```\n%APPDATA%/pokepon/server.conf\n```\n\nElse it will use `pokepon/net/server.conf`.\n\nThe configuration file itself contains explanation about the possible options.\n\nThe server will use a file as a database to store nick / password pairs (the\npasswords are never saved in plain text, but are pre-hashed by the client\nand then hashed again with a random salt by the server, so don't attempt to\nchange them manually: if you need to change an user's password, delete the\nrecord altogether and re-register).\nIf the server was started from the JAR package, the database file can be found in\nthe same directory as the conf file (`~/.pokepon/server.db` or\n`%APPDATA%/pokepon/server.db`), else it will reside in \n`pokepon/data/server.db`).\n\nBoth the configuration file and the database will be recreated every time\nthe server cannot find them in the expected locations, so if you want a\nfresh conf file or an empty db, you can delete or move those files and\nhave them recreated.\n\nRunning a dedicated server\n--------------------------------------------------------\nIf you plan running a dedicated server, or a server that will host\nseveral (read: more than a couple of) clients, you should use the unpackaged\nversion of the game, which is slightly faster accessing Java classes than the\nJAR. In that case, these are the instructions to follow:\n* Download the game, either the Zip archive or using Git. The latter is preferred,\nsince it'll be much easier to grab the updates:\n```bash\ngit clone https://github.com/silverweed/pokepon.git\n```\n* Set the CLASSPATH environment variable to the directory containing the pokepon\nroot directory. E.g. if you downloaded the repository in /home/me/, do:\n```bash\nexport CLASSPATH=/home/me  # only valid on *nix systems\n```\n* Compile the package (you'll need JDK 1.7 or later):\n```bash\njavac \"@files.txt\" # or 'make', if you have it installed.\n```\n* Start the server \u003cb\u003eas an unprivileged user\u003c/b\u003e with:\n```bash\njava pokepon.net.jack.server.PokeponServer [opts]\n```\n\n### Tips\n* Use the default port: it'll be easier for clients to connect to your server if they\ndon't have to remember a custom port.\n* To keep a server log (on \\*nix):\n```bash\njava pokepon.net.jack.server.PokeponServer [opts] \u0026\u003e server.log\n```\n-OR-\n```bash\njava pokepon.net.jack.server.PokeponServer [opts] |\u0026 tee server.log\n```\n* It's not recommended setting the `max-clients` option to a higher value than the default one\n* Isolate the server as much as possible: being in alpha stage, there may be security issues or unknown\nserver exploits. Using a Virtual Machine or [a Docker container](https://docker.com) is a\ngood security measure. For the latter, a Dockerfile for a PokeponServer is available in `data/docker` \n(see the instruction in [data/docker/README.md](https://github.com/silverweed/pokepon/blob/master/data/docker/README.md))\n\nReporting bugs\n-----------------------------------------------------------------\nPoképon is no longer actively maintained. You are free to submit PRs and/or fork the repository if you're interested in bugfixes.\n\nChat System\n-----------------------------------------------------------------\nFor details about the embedded chat system, see \n[here](https://github.com/silverweed/pokepon/blob/master/net/jack/chat/README.md)\n\nLicense\n-----------------------------------------------------------------\nPoképon is free software distributed under the GNU General Public License\n(see COPYING for details).\nThe rights upon the artwork under the resources/ directory belong to their\nrespective owners.\n\nCredits\n-----------------------------------------------------------------\n* The currently used game sprites are mostly taken from Desktop Ponies\n* Several game fx are from \n  [Pokémon Showdown](https://github.com/zarel/Pokemon-Showdown)\n* Some of the typings take inspiration from [Ponymon](http://ponymondawndusk.wikia.com/wiki/Ponymon_Dawn/Dusk_Wiki)\n* Other credits are reported in data/credits.txt\n* Special thanks to Bram Moolenaar for creating Vim, which I used for\n  writing the entire Poképon code.\n\n*Note*: if you see your artwork in the game and wish it to be removed,\nor if your name does not appear in the credits and you wish it to be\nadded, contact me and I will (of course, you must prove you're\nthe owner of said artwork).\n\nAuthor \u0026 Mantainers\n-----------------------------------------------------------------\n* Author: [silverweed](https://github.com/silverweed)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilverweed%2Fpokepon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilverweed%2Fpokepon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilverweed%2Fpokepon/lists"}