{"id":43093028,"url":"https://github.com/greencomfytea/twitch-community-map","last_synced_at":"2026-01-31T16:18:12.614Z","repository":{"id":212679581,"uuid":"732057937","full_name":"GreenComfyTea/twitch-community-map","owner":"GreenComfyTea","description":"A visualization of specific twitch channel communities based on @ ping sent and received in chat.","archived":false,"fork":false,"pushed_at":"2024-12-31T13:56:35.000Z","size":9387,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-31T14:28:08.564Z","etag":null,"topics":["chat","community","graph","links","map","nodes","pretty","twitch","twitch-chat","twitch-community","visualisation","visualization"],"latest_commit_sha":null,"homepage":"https://greencomfytea.github.io/twitch-community-map/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GreenComfyTea.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"greencomfytea","ko_fi":"greencomfytea","patreon":"greencomfytea","custom":["https://streamelements.com/greencomfytea/tip","https://paypal.me/greencomfytea"]}},"created_at":"2023-12-15T14:35:23.000Z","updated_at":"2024-12-31T13:56:38.000Z","dependencies_parsed_at":"2024-01-03T11:46:51.489Z","dependency_job_id":"53d06949-832d-48d4-9062-b58e722db24c","html_url":"https://github.com/GreenComfyTea/twitch-community-map","commit_stats":{"total_commits":140,"total_committers":3,"mean_commits":"46.666666666666664","dds":0.1071428571428571,"last_synced_commit":"cacd7220442e762a91a3d1c08c6c6f494e3f6223"},"previous_names":["greencomfytea/twitch-community-map"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GreenComfyTea/twitch-community-map","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreenComfyTea%2Ftwitch-community-map","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreenComfyTea%2Ftwitch-community-map/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreenComfyTea%2Ftwitch-community-map/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreenComfyTea%2Ftwitch-community-map/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GreenComfyTea","download_url":"https://codeload.github.com/GreenComfyTea/twitch-community-map/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GreenComfyTea%2Ftwitch-community-map/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28947573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T14:26:55.697Z","status":"ssl_error","status_checked_at":"2026-01-31T14:26:52.545Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["chat","community","graph","links","map","nodes","pretty","twitch","twitch-chat","twitch-community","visualisation","visualization"],"created_at":"2026-01-31T16:18:11.926Z","updated_at":"2026-01-31T16:18:12.608Z","avatar_url":"https://github.com/GreenComfyTea.png","language":"JavaScript","funding_links":["https://github.com/sponsors/greencomfytea","https://ko-fi.com/greencomfytea","https://patreon.com/greencomfytea","https://streamelements.com/greencomfytea/tip","https://paypal.me/greencomfytea","https://github.com/sponsors/GreenComfyTea","https://ko-fi.com/GreenComfyTea"],"categories":[],"sub_categories":[],"readme":"\n\n\u003cp align=\"center\"\u003e\n\t\u003ch2 align=\"center\"\u003e\u003cb\u003eTwitch Community Map\u003c/b\u003e\u003c/h2\u003e\n\t\u003cp align=\"center\"\u003eA visualization of specific twitch channel communities based on @ ping sent and received in chat.\u003c/p\u003e\n\t\u003cp align=\"center\"\u003e\u003cb\u003eChrome is highly recommended! Firefox has awful Canvas performance!\u003c/b\u003e\u003c/p\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/graphs/contributors\"\u003e\n\t\t\u003cimg alt=\"Contributors\" src=\"https://custom-icon-badges.demolab.com/github/contributors/GreenComfyTea/twitch-community-map?logo=person-add\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/issues\"\u003e\n\t\t\u003cimg alt=\"Issues\" src=\"https://custom-icon-badges.demolab.com/github/issues/GreenComfyTea/twitch-community-map?logo=issue-opened\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/issues\"\u003e\n\t\t\u003cimg alt=\"Issues Closed\" src=\"https://custom-icon-badges.demolab.com/github/issues-closed/GreenComfyTea/twitch-community-map?logo=issue-closed\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/pulls\"\u003e\n\t\t\u003cimg alt=\"Pull Requests\" src=\"https://custom-icon-badges.demolab.com/github/issues-pr/GreenComfyTea/twitch-community-map?logo=git-pull-request\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/pulls\"\u003e\n\t\t\u003cimg alt=\"Pull Requests Closed\" src=\"https://custom-icon-badges.demolab.com/github/issues-pr-closed/GreenComfyTea/twitch-community-map?logo=git-pull-request-closed\" /\u003e\n\t\u003c/a\u003e\n\t\u003cbr\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/blob/main/LICENSE\"\u003e\n\t\t\u003cimg alt=\"License\" src=\"https://custom-icon-badges.demolab.com/github/license/GreenComfyTea/twitch-community-map?logo=law\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"\"\u003e\n\t\t\u003cimg alt=\"Maintenance\" src=\"https://custom-icon-badges.demolab.com/maintenance/yes/2024?logo=tools\" /\u003e\n\t\u003c/a\u003e\n\t\u003cbr\u003e\n\t\u003ca href=\"https://jquery.com\"\u003e\n\t\t\u003cimg alt=\"jQuery Dependency\" src=\"https://custom-icon-badges.demolab.com/badge/dependency-jQuery%20v3.7.1-green?logo=package-dependencies\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://datatables.net\"\u003e\n\t\t\u003cimg alt=\"DataTables Dependency\" src=\"https://custom-icon-badges.demolab.com/badge/dependency-DataTables%20v1.13.7-green?logo=package-dependencies\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://gka.github.io/chroma.js\"\u003e\n\t\t\u003cimg alt=\"chroma.js Dependency\" src=\"https://custom-icon-badges.demolab.com/badge/dependency-chroma.js%20v2.4.2-green?logo=package-dependencies\" /\u003e\n\t\u003c/a\u003e\n\t\u003cbr\u003e\n\t\u003ca href=\"https://github.com/vasturiano/force-graph\"\u003e\n\t\t\u003cimg alt=\"force-graph Dependency\" src=\"https://custom-icon-badges.demolab.com/badge/dependency-force--graph-green?logo=package-dependencies\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://picocss.com\"\u003e\n\t\t\u003cimg alt=\"Pico.css Dependency\" src=\"https://custom-icon-badges.demolab.com/badge/dependency-Pico.css-green?logo=package-dependencies\" /\u003e\n\t\u003c/a\u003e\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/commits/main\"\u003e\n\t\t\u003cimg alt=\"Commits\" src=\"https://custom-icon-badges.demolab.com/github/commit-activity/t/GreenComfyTea/twitch-community-map?logo=git-commit\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/commits/main\"\u003e\n\t\t\u003cimg alt=\"Last Commit\" src=\"https://custom-icon-badges.demolab.com/github/last-commit/GreenComfyTea/twitch-community-map?logo=git-commit\" /\u003e\n\t\u003c/a\u003e\n\t\u003cbr\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/graphs/commit-activity\"\u003e\n\t\t\u003cimg alt=\"Commit Activity (Year)\" src=\"https://custom-icon-badges.demolab.com/github/commit-activity/y/GreenComfyTea/twitch-community-map?logo=pulse\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/graphs/commit-activity\"\u003e\n\t\t\u003cimg alt=\"Commit Activity (Month)\" src=\"https://custom-icon-badges.demolab.com/github/commit-activity/m/GreenComfyTea/twitch-community-map?logo=pulse\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/graphs/commit-activity\"\u003e\n\t\t\u003cimg alt=\"Commit Activity (Week)\" src=\"https://custom-icon-badges.demolab.com/github/commit-activity/w/GreenComfyTea/twitch-community-map?logo=pulse\" /\u003e\n\t\u003c/a\u003e\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n\t\u003ca href=\"\"\u003e\n\t\t\u003cimg alt=\"Repo Size\" src=\"https://custom-icon-badges.demolab.com/github/repo-size/GreenComfyTea/twitch-community-map?logo=database\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"\"\u003e\n\t\t\u003cimg alt=\"Line Count\" src=\"https://sloc.xyz/github/GreenComfyTea/twitch-community-map\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"\"\u003e\n\t\t\u003cimg alt=\"COCOMO\" src=\"https://sloc.xyz/github/GreenComfyTea/twitch-community-map/?category=cocomo\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"\"\u003e\n\t\t\u003cimg alt=\"Goto Counter\" src=\"https://custom-icon-badges.demolab.com/github/search/GreenComfyTea/twitch-community-map/goto?logo=git-compare\" /\u003e\n\t\u003c/a\u003e\n\t\u003cbr\u003e\n\t\u003ca href=\"https://github.com/sponsors/GreenComfyTea\"\u003e\n\t\t\u003cimg alt=\"Sponsors\" src=\"https://custom-icon-badges.demolab.com/github/sponsors/GreenComfyTea?logo=heart\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/watchers\"\u003e\n\t\t\u003cimg alt=\"Watchers\" src=\"https://custom-icon-badges.demolab.com/github/watchers/GreenComfyTea/mhr-overlay?logo=eye\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/forks\"\u003e\n\t\t\u003cimg alt=\"Forks\" src=\"https://custom-icon-badges.demolab.com/github/forks/GreenComfyTea/twitch-community-map?logo=repo-forked\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/stargazers\"\u003e\n\t\t\u003cimg alt=\"Stars\" src=\"https://custom-icon-badges.demolab.com/github/stars/GreenComfyTea/twitch-community-map?logo=star\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea/twitch-community-map/graphs/traffic\"\u003e\n\t\t\u003cimg alt=\"Hits\" src=\"https://custom-icon-badges.demolab.com/endpoint?url=https://hits.dwyl.com/GreenComfyTea/twitch-community-map.json?color=blue\u0026logo=eye\" /\u003e\n\t\u003c/a\u003e\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n\t\u003ca href=\"https://www.nexusmods.com/monsterhunterrise/mods/50\"\u003e\n\t\t\u003cimg alt=\"Website\" src=\"https://custom-icon-badges.demolab.com/website?down_color=red\u0026down_message=down\u0026up_color=brightgreen\u0026up_message=up\u0026logo=link\u0026url=https://GreenComfyTea.github.io/twitch-community-map\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea?tab=followers\"\u003e\n\t\t\u003cimg alt=\"Followers\" src=\"https://custom-icon-badges.demolab.com/github/followers/GreenComfyTea?logo=people\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://twitter.com/GreenComfyTea\"\u003e\n\t\t\u003cimg alt=\"Twitter\" src=\"https://img.shields.io/twitter/follow/GreenComfyTea?logo=twitter\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://www.twitch.tv/GreenComfyTea\"\u003e\n\t\t\u003cimg alt=\"Twitch\" src=\"https://img.shields.io/twitch/status/GreenComfyTea?logo=twitch\" /\u003e\n\t\u003c/a\u003e\n\t\u003cbr\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea\"\u003e\n\t\t\u003cimg alt=\"Author\" src=\"https://custom-icon-badges.demolab.com/badge/author-GreenComfyTea-green?logo=person\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/GreenComfyTea\"\u003e\n\t\t\u003cimg alt=\"Author\" src=\"https://custom-icon-badges.demolab.com/badge/author-CrippledByte-25cdd4?logo=person\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/topics/open-source\"\u003e\n\t\t\u003cimg alt=\"Open Source\" src=\"https://img.shields.io/badge/open%20source-%20yes-brightgreen?logo=openvpn\" /\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://www.javascript.com\"\u003e\n\t\t\u003cimg alt=\"Written in\" src=\"https://custom-icon-badges.demolab.com/badge/written in-html | css | js-f1e05a?logo=terminal\" /\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003ca\u003e\n\t\t\u003cimg align=\"center\" src=\"https://github.com/GreenComfyTea/twitch-community-map/assets/30152047/9543af72-7996-4131-a9c6-26bcf5cd6b6f\" /\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\t\u003ca\u003e\n\t\t\u003cimg align=\"center\" src=\"https://github.com/GreenComfyTea/twitch-community-map/assets/30152047/78543c4b-167c-4327-abff-a901ab1e10ed\" /\u003e\n\t\u003c/a\u003e\n\n\u003c/p\u003e\n\n***\n# Dependancies\n1. **[jQuery v3.7.1](https://jquery.com)**;\n2. **[DataTables v.1.13.7](https://datatables.net)**;\n3. **[chroma.js v2.4.2](https://gka.github.io/chroma.js)**;\n4. **[force-graph](https://github.com/vasturiano/force-graph)**;\n5. **[Pico.css](https://picocss.com)**.\n\n***\n# How to Use:\n**Due to performance issues on Firefox, currently Chrome is recommended!**\n\n1. Map can be zoomed in, zoomed out and panned. Nodes can be dragged;\n2. Selecting `Streamer`, `Year`, `Timeframe` and `Map Type` allows to load new maps;\n3. Hovering a node will show a tooltip with `Username`, `User Type`, `Pings Received` and `Pings Sent` information;\n5. `Legend Info Menu` on the left can be hidden/shown by pressing the arrow;\n6.  In `Legend Info Menu` on the left pressing on `User Type` `Circle` or `Text` will zoom into a next user of that type and also scroll the `Leaderboard` to that user;\n7. `Chatter Count` and `Link Count` on the bottom left can hidden/shown by pressing the arrow;\n8. `Min Pings`will filter out the nodes and links that do not qualify. Always filters based on the current map type. Increasing the value can improve performance.\n9. `Search` function searches the user with that twitch name. It will zoom into a found user and also scroll the `Leaderboard` to that user;\n10. `Performance Mode` disables fancy style and improves performance (recommended for big maps);\n11. `Leaderboard` can be hidden/shown by pressing the arrow;\n12. `Leaderboard` Headers are clickable and determine the sorting;\n13. Pressing a user on `Leadeboard` will zoom into that user. \n\n***\n# Contribution\nIf you wish to contribute to the project, feel free to make a pull request!\n\nCurrently the project is based on **[force-graph](https://github.com/vasturiano/force-graph)** which uses **Canvas** rendering. We were looking at **[sigma.js](https://sigmajs.org/)** for **WebGL** rendering but a complete lack of documentation was a deal breaker. If anyone were to implement it without losing existing functionality we would very grateful.\n\nMoreover, **Firefox** Canvas support is almost **10 times worse** than the one in **Chrome**. Performance improvements would be much appreciated as well!\n\nFor those who want to add new maps for more streamers and/or timeframes, pull requests must follow a specific folder structure and json format (without `[ ]`).\n```\nroot/\n\tdata/\n\t\t[STREAMER_NAME]/\n\t\t\t[YEAR]/\n\t\t\t\t[TIMEFRAME]/\n\t\t\t\t\t[STREAMER_NAME]_[YEAR]_[TIMEFRAME]_pingsSent.json\n\t\t\t\t\t[STREAMER_NAME]_[YEAR]_[TIMEFRAME]_pingsReceived.json\n```\n**`[YEAR]`**: must be a numeric value;  \n**`[TIMEFRAME]`**: must be a numeric value of a month (ex.:`01`, `02`, ... `12`) or a `year` keyword;  \n\nEach `[TIMEFRAME]` must contain 2 json files named as displayed above, with 1 exception:\n - If `[TIMEFRAME]` is `year` than `[TIMEFRAME]` is dropped:\n ```\n\t\t\t[STREAMER_NAME]_[YEAR]_pingsSent.json\n\t\t\t[STREAMER_NAME]_[YEAR]_pingsReceived.json\n ```\n\nThe content of json files can be in 2 formats:\n 1. **Default json**. Will use force physics simulation to generated a node layout on each map load client-side (can be undesirable for big maps);\n 2. **[Gephi](https://gephi.org/)-exported json**. Includes a pregenerated in Gephi layout in a form of added `x` and `y` fields. Force physics is disabled.\n\n#### First Format:\n```\n{\n\t\"nodes\": [\n\t\t{\n\t\t\t\"name\": \"\",\n\t\t\t\"displayName\": \"\",\n\t\t\t\"userType\": \"\", \n\t\t\t\"pingsReceived\": 0,\n\t\t\t\"pingsSent\": 0\n\t\t},\n\t\t{...},\n\t\t{...},\n\t\t{...},\n\t\t...\n\t],\n\t\"links\": [\n\t\t{\n\t\t\t\"source\": \"\",\n\t\t\t\"target\": \"\",\n\t\t\t\"userType\": \"\",\n\t\t\t\"weight\": 0,\n\t\t},\n\t\t{...},\n\t\t{...},\n\t\t{...},\n\t\t...\n\t]\n}\n```\n#### Second Format:\n```\n{\n\t\"attributes\": {\n\t\t...\n\t},\n\t\"options\": {\n\t\t...\n\t},\n\t\"nodes\": [\n\t\t{\n\t\t\t\"key\": \"\",\n\t\t\t\"attributes\": {\n\t\t\t\t\"label\": \"\",\n\t\t\t\t\"usertype\": \"\", \n\t\t\t\t\"pingsreceived\": 0,\n\t\t\t\t\"pingssent\": 0,\n\t\t\t\t\"x\": 0,\n\t\t\t\t\"y\": 0\n\t\t\t}\n\t\t}\n\t\t{...},\n\t\t{...},\n\t\t{...},\n\t\t...\n\t],\n\t\"links\": [\n\t\t{\n\t\t\t\"source: \"\",\n\t\t\t\"target: \"\",\n\t\t\t\"attributes: {\n\t\t\t\t\"usertype\": \"\",\n\t\t\t\t\"weight\": 0,\n\t\t\t}\n\t\t}\n\t\t{...},\n\t\t{...},\n\t\t{...},\n\t\t...\n\t]\n}\n```\n\n\n**Node:**  \n  \n`name`/`key`: [Unique] Twitch Username in lower case, corresponds to `link` -\u003e `source` and `target` fields;  \n`displayName`/`label`: [Optional] Twitch Display Name;  \n`userType`/`usertype`:\tmust be one of the following, determines the colors:  \n - `Streamer`\n - `Staff`\n - `Moderator`\n - `VIP`\n - `Artist`\n - `Partner`\n - `Subscriber`\n - `Viewer`\n\n`pingsReceived`/`pingsreceived`: how many times a user has been pinged by others, determines the size of a node;  \n`pingsSent`/`pingssent`: how many times a user pinged others, determines the size of a node.  \n\n\u003e [!NOTE]  \n\u003e `pingsReceived` and `pingsSent` must be present in both json files. The reason is that both values are displayed on the leaderboard and in the tooltip, regardless of which map is loaded. \n\n**Link:**  \n  \n`source`:  Twitch Username in lower case, corresponds with `node` -\u003e `name` field;  \n`target`:  Twitch Username in lower case, corresponds with `node` -\u003e `name` field;  \n`userType`/`usertype`:  must match  `userType` of `source` or `target` node `userType` (the type of higher priority must be used), must be one of the following, determines the color:\n - `Streamer`\n - `Staff`\n - `Moderator`\n - `VIP`\n - `Artist`\n - `Partner`\n - `Subscriber`\n - `Viewer`\n\n`weight`: pings exchanged between 2 users (`source` and `target`), determines the line width.\n\n\u003e [!NOTE]  \n\u003e All links are undirected, means that these 2 links:  \n\u003e `source: \"user1\", target: \"user2\"`  \n\u003e `source: \"user2\", target: \"user1\"`  \n\u003e are the same and must be combined into 1 object. Having both will result in drawing same link line twice, which is undesirable performance-wise.\n\n\nP.S. I might add a web tool later for semi-automatic chat log parsing (from gempir's justlog) into the 1st format.\n\n# Gephi Layout\nI generated `HAchubby` map layouts in [Gephi](https://gephi.org/) using the following settings:\n\n*For ~1000 nodes, adjust for smaller/bigger maps proportionally;\n\n**Node Size:**\n\t- `Type`: Ranking\n \t- `Min Size`: 5\n  \t- `Max Size`: 250\n   \t- `Spline`: 3rd Shape, Control Point at Y = 0.8, X = 0\n\n**Label Size (adjust the slider below the viewport too):**\n\t- `Type`: Ranking\n \t- `Min Size`: 1\n  \t- `Max Size`: 4\n   \t- `Spline`: 3rd Shape, Control Point at Y = 0.8, X = 0\n\n1. **Random Layout**\n\t- `Space Size`: 2500.0*\n2. **Yifan Hu**\n\t- `Optimal Distance`: 500.0*\n\t- `Relative Strength`: 0.1\n\t- `Initial Step Size`: 5.0\n\t- `Step Ratio`: 0.5*\n \t- `Adaptive Cooling`: On\n\t- `Quadtree Max Level`: 16\n\t- `Theta`: 0.2\n3. **ForceAtlas 2**\n\t- `Tolerance(speed)`: 1.0\n\t- `Approximate Repulsion`: Yes\n\t- `Approximation`: 0.8\n\t- `Scaling`: 50.0*\n\t- `Stronger Gravity`: No\n\t-  `Gravity`: 1.0\n\t- `Dissuade Hubs`: No\n\t- `LinLog Mode`: No\n\t- `Prevent Overlap`: Yes\n\t- `Edge Weight Influence`: 1.0\n\t- `Normalize Edge Weights`: No\n\t- `Inverted Edge Weights`: No\n4. **ForceAtlas 2**\n\t- `Inverted Edge Weights`: Yes\n5. **ForceAtlas 2**\n\t- `Normalize Edge Weights`: Yes\n6. **ForceAtlas 2**\n\t- `LinLog Mode`: Yes\n7. **ForceAtlas 2**\n\t- `Dissuade Hubs`: Yes\n8. **ForceAtlas 2**\n\t- `Dissuade Hubs`: No\n9. **ForceAtlas 2**\n\t- `LinLog Mode`: No\n10. **ForceAtlas 2**\n\t- `Normalize Edge Weights`: No\n11. **ForceAtlas 2**\n\t- `Inverted Edge Weights`: No\n12. **Yifan Hu**\n\t- Same settings as before;\n13. **Noverlap**\n\t- `Speed`: 10.0*\n\t- `Ratio: 0.9\n\t- `Margin: 5.0\n14. **Label Adjust**\n\t- `Speed`: 5.0*\n\t- `Include Node Size`: On\n\n***\n# Credits\n**[GreenComfyTea](https://github.com/GreenComfyTea)** - creator of the website and it's main contributor.  \n**[CrippledByte](https://github.com/CrippledByte)** - provider of chat logs. \n\n\n***\n# Support\n\nYou can support me by donating! I would appreciate it! But anyway, thank you for using this mod!\n\n \u003ca href=\"https://streamelements.com/GreenComfyTea/tip\"\u003e\n  \u003cimg alt=\"Donate\" src=\"https://panels.twitch.tv/panel-48897356-image-c6155d48-b689-4240-875c-f3141355cb56\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://ko-fi.com/GreenComfyTea\"\u003e\n  \u003cimg alt=\"Buy me a tea\" src=\"https://panels.twitch.tv/panel-48897356-image-c2fcf835-87e4-408e-81e8-790789c7acbc\"\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreencomfytea%2Ftwitch-community-map","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreencomfytea%2Ftwitch-community-map","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreencomfytea%2Ftwitch-community-map/lists"}