{"id":29054414,"url":"https://github.com/cosmoverse/waypoint","last_synced_at":"2026-01-20T16:28:13.405Z","repository":{"id":301462701,"uuid":"1009340891","full_name":"Cosmoverse/Waypoint","owner":"Cosmoverse","description":"Waypoint is a plugin that lets you set a visual holographic marker at your desired position.","archived":false,"fork":false,"pushed_at":"2025-06-27T01:46:48.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-27T02:28:45.117Z","etag":null,"topics":["plugin","pmmp","pocketmine-mp","teleport","waypoint"],"latest_commit_sha":null,"homepage":"https://poggit.pmmp.io/ci/Cosmoverse/Waypoint","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cosmoverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-27T01:19:20.000Z","updated_at":"2025-06-27T01:50:42.000Z","dependencies_parsed_at":"2025-06-27T02:28:46.991Z","dependency_job_id":"451b8a11-439f-46db-b4b0-fa7e5800c611","html_url":"https://github.com/Cosmoverse/Waypoint","commit_stats":null,"previous_names":["cosmoverse/waypoint"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Cosmoverse/Waypoint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cosmoverse%2FWaypoint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cosmoverse%2FWaypoint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cosmoverse%2FWaypoint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cosmoverse%2FWaypoint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cosmoverse","download_url":"https://codeload.github.com/Cosmoverse/Waypoint/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cosmoverse%2FWaypoint/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266447924,"owners_count":23930072,"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-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["plugin","pmmp","pocketmine-mp","teleport","waypoint"],"created_at":"2025-06-27T03:00:30.895Z","updated_at":"2025-10-30T09:34:23.229Z","avatar_url":"https://github.com/Cosmoverse.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Waypoint\nWaypoint is a plugin that lets you set a visual holographic marker at your desired position. The concept is similar to\nhomes in that a waypoint is a labeled position, but differs in that you need to walk all the way to your desired location.\n\nhttps://github.com/user-attachments/assets/c629811d-d5b5-4c31-b246-778a8231198e\n\n## Installation\nSimply download this plugin as a .phar file from Poggit CI and restart your server. Use `/waypoint` or `/wp` to manage\nyour personal waypoints. A player may have up to 64 waypoints configured, but can see only 1 waypoint  at any given\nmoment. However, both these values are configurable from [config.yml](resources/config.yml).\n\n## Usage\nQuick start: use `/wp sethere mywaypoint` to set a waypoint at your position.\n\nA waypoint comprises of 5 properties—a name, a title, X, Y, Z position values. A name is a unique identifier, so you are\nrestricted to the usage of alpha-numeric characters and underscores. But you can use fancier characters including color\ncodes (`§` and `\u0026`) in the title. Title is displayed in the hologram. X Y Z are the coordinates to your waypoint. You\nmay use `~`, `~+40`, etc. to set relative coordinates when using `/wp set`.\n\n| Command                                   | Description                                           |\n|-------------------------------------------|-------------------------------------------------------|\n| `/wp set \u003cname\u003e \u003cx\u003e \u003cy\u003e \u003cz\u003e [title=name]` | Set a waypoint named `\u003cname\u003e` at `\u003cx\u003e \u003cy\u003e \u003cz\u003e`        |\n| `/wp sethere \u003cname\u003e [title=name]`         | Set a waypoint named `\u003cname\u003e` at your position        |\n| `/wp delete \u003cname\u003e`                       | Delete a waypoint named `\u003cname\u003e`                      |\n| `/wp toggle \u003cname\u003e`                       | Toggle a waypoint (show/hide current waypoint)        |\n| `/wp rename \u003cname\u003e \u003cnewTitle\u003e`            | Change title of a waypoint                            |\n| `/wp face \u003cname\u003e`                         | Face towards a waypoint                               |\n| `/wp list [page=1]`                       | List all waypoints                                    |\n| `/wp config`                              | Configure waypoint preferences                        |\n\n## Developer documentation\nAs a developer, you get to have more control over waypoint management. To programatically create a waypoint for a player,\nuse `WaypointPlugin::setWaypointForPlayer()`. As this plugin uses `await-generator`, your plugin must use the library as\nwell. If you are new to await-generator, wrap the `yield from` statements in `Await::f2c()` closure. I will show you an\nexample here so you get an idea of how to use it:\n```php\nAwait::f2c(function() : Generator{\n\t$server = Server::getInstance();\n\t$player = $server-\u003egetPlayerExact(\"BlahCoast30765\");\n\t\n\t/** @var WaypointPlugin $plugin */\n\t$plugin = $server-\u003egetPluginManager()-\u003egetPlugin(\"Waypoint\");\n\t\n\t// for an online player\n\tyield from $plugin-\u003esetWaypointForPlayer($player, \"name\", \"Title\", 320, 64, 128);\n\t\n\t// or if they are offline\n\tyield from $plugin-\u003esetWaypoint($uuid, \"name\", new Waypoint(\"Title\", 320, 64, 128), true);\n\t\n\t// delete it\n\tyield from $plugin-\u003edeleteWaypoint($uuid, \"name\");\n\t\n\t// list all waypoint names\n\t$names = yield from $plugin-\u003elistWaypointNames($uuid); // list\u003cstring\u003e\n\t\n\t// list a waypoint\n\t$value = yield from $plugin-\u003egetWaypoint($uuid, \"name\"); // array{Waypoint, string, bool}|null\n\t[$waypoint, $name, $selected] = $value;\n});\n```\n\nBoth `setWaypoint()` and `setWaypointForPlayer()` persist waypoints in database. You may instead create waypoint objects\ndirectly if you do not intend to persist them. However, these waypoints will stay hidden from `/wp` command as they will\nnot be tied a `\u003cname\u003e`:\n```php\n$waypoint = new Waypoint(\"Title\", 320, 64, 128);\n$renderer = new WaypointRenderer($waypoint, $player, 5.0, \"{TITLE} [{DISTANCE}m]\");\n\n// to hide the waypoint (which will also destroy the $renderer object's state)\n$renderer-\u003edestroy();\n```\n\nWhile static limits can be defined in `config.yml`, you as a developer have more control in that you get to set\nper-player limits. These limits are evaluated during creation or when a player toggles a waypoint:\n```php\n$plugin-\u003elimit_evaluator = new MyWaypointLimitEvaluator();\n```\n\nRegistering a `WaypointListener` will notify you whenever a waypoint is created or deleted. This is generally sufficient\nif you are working on something like updating a command enum of per-player waypoints (pair it with listWaypointNames\nduring player join):\n```php\nWaypointPlugin::$listeners[] = new class implements WaypointListener{\n\tpublic function onCreate(UuidInterface $uuid, string $name, Waypoint $waypoint) : void{}\n\tpublic function onDelete(UuidInterface $uuid, string $name) : void{}\n\tpublic function onRender(WaypointRenderer $renderer) : void{}\n\tpublic function onDerender(WaypointRenderer $renderer) : void{}\n};\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmoverse%2Fwaypoint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcosmoverse%2Fwaypoint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmoverse%2Fwaypoint/lists"}