{"id":27879468,"url":"https://github.com/mcmonkeyprojects/discordlevelsbot","last_synced_at":"2025-05-05T03:22:11.013Z","repository":{"id":151020364,"uuid":"433776872","full_name":"mcmonkeyprojects/DiscordLevelsBot","owner":"mcmonkeyprojects","description":"A simple message activity based leveling bot for Discord.","archived":false,"fork":false,"pushed_at":"2024-01-11T03:56:12.000Z","size":238,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-03-26T22:53:41.345Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/mcmonkeyprojects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"mcmonkey4eva"}},"created_at":"2021-12-01T10:13:39.000Z","updated_at":"2024-03-26T22:53:41.346Z","dependencies_parsed_at":"2024-01-11T04:57:39.658Z","dependency_job_id":null,"html_url":"https://github.com/mcmonkeyprojects/DiscordLevelsBot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcmonkeyprojects%2FDiscordLevelsBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcmonkeyprojects%2FDiscordLevelsBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcmonkeyprojects%2FDiscordLevelsBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcmonkeyprojects%2FDiscordLevelsBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcmonkeyprojects","download_url":"https://codeload.github.com/mcmonkeyprojects/DiscordLevelsBot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252430307,"owners_count":21746634,"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","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":[],"created_at":"2025-05-05T03:22:10.350Z","updated_at":"2025-05-05T03:22:10.986Z","avatar_url":"https://github.com/mcmonkeyprojects.png","language":"C#","funding_links":["https://github.com/sponsors/mcmonkey4eva"],"categories":[],"sub_categories":[],"readme":"DiscordLevelsBot\n----------------\n\nA simple bot for activity tracking / leveling on Discord. Inspired by Mee6. Designed for more customization (for my own needs at least) and to not have all the unrelated Mee6 features in the way (especially not the whole 'premium' thing yknow).\n\nBy default, when a user posts a message (at least one minute after their last message), they get a random bit of XP from 15 to 25 points. This XP is used to obtain levels, that are incrementally harder to reach (reaching level 1 only takes about 5 messages, but level 100 takes millions).\n\nView an example web leaderboard [Here](https://levels.mcmonkey.org/leaderboard/315163488085475337).\n\n### Want To Add The Public Instance?\n\n- Just [click here](https://discord.com/api/oauth2/authorize?client_id=915501392519651358\u0026permissions=2415922176\u0026scope=bot%20applications.commands).\n\n### Admin Configuration\n\n- For now, the admin configuration panel is very cheap and simple: type `@LevelsBot admin-configure` for info.\n- You can do for example `@LevelsBot admin-configure restrict_channel 1234` to prevent that channel from being used to gain XP.\n- You can configure channel restrictions, level role rewards (role auto-granted when a user hits a level), XP per tick minimum and maximum, time between messages before XP should be allowed to tick again, minimum level before \"level up!\" notifications show.\n\n### Setup Your Own Instance\n\n- 0: Before setup: This is intended to run on a Linux server, with `git`, `screen`, and `dotnet-6-sdk` installed. If you're not in this environment... you're on your own for making it work. Should be easy, but I'm only documenting my own use case here.\n- 1: Clone this repo with `git clone`\n- 2: Make sure to checkout submodules as well: `git submodule update --init --recursive` (the `start.sh` will automatically do this for you)\n- 3: create folder `config` at top level\n- 4: You need to have a Discord bot already - check [this guide](https://discordpy.readthedocs.io/en/stable/discord.html) if you don't know how to get one. Requires messages intent, and slash commands grant. Make sure to add the bot to your server(s).\n- 5: within `config` create file `token.txt` with contents being your Discord bot's token\n- 6: if you want, create `config.fds` and configure it according to config reference below\n- 7: `./start.sh`. Will run in a screen which you can attach to with `screen -r levelsbot`\n\n### Config File Reference\n\nReference format for `config.fds`:\n\n```yml\nwebpage:\n    # If true, will enable the leaderboard webpage host\n    enable: false\n    # If enabled, you can configure the listen address\n    # It is strongly recommended you bind an internal port and use a reverse proxy like nginx or apache2.\n    listen: http://127.0.0.1:8099/\n    # The external address of the website, for generated links\n    address: https://example.com/\n```\n\n### Licensing pre-note:\n\nThis is an open source project, provided entirely freely, for everyone to use and contribute to.\n\nIf you make any changes that could benefit the community as a whole, please contribute upstream.\n\n### The short of the license is:\n\nYou can do basically whatever you want (as long as you give credit), except you may not hold any developer liable for what you do with the software.\n\n### The long version of the license follows:\n\nThe MIT License (MIT)\n\nCopyright (c) 2021-2024 Alex \"mcmonkey\" Goodwin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcmonkeyprojects%2Fdiscordlevelsbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcmonkeyprojects%2Fdiscordlevelsbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcmonkeyprojects%2Fdiscordlevelsbot/lists"}