Screeps Discord?

  • Culture

    @gankdalf if you enable that particular webhook you lose all granular control over the repositories while using Discord.

    Here's the main difference, to cut right to the specifics-

    • Slack works by creating an integration with Github that basically sends all of the information to Slack. Then the Slack Github Integration (created by the Github team) allows you to specify a variety of options on the Slack side for how that is managed. Since Slack has all the information you can make changes really easily inside of the Slack integration.

    • Discord does not have any Github capabilities in it's system. Instead it receives messages from the webhook and acts as a proxy, passing it on to the appropriate channels as configured by the webhook. All of the management of that comes from the Github side of things rather than from the chat server integration.

    This has a huge difference in how these things get managed.

  • Culture

    If ScreepsPlus ends up with a slack server I will simply move all of the development channels I manage over to that Slack server, and just point my various bots at it as well.

  • @tedivm I would do the same. I'm not going to juggle both Discord and Slack development at the same time.

  • @tedivm Okay, that makes so much more sense now. So to repeat. The difference is that in Slack, you login to your GitHub account and manage everything there, while in Discord you would need to create a webhook between each pair of channels and repositories you wanted to connect, since the organization wide webhook would post all of the selected events to the specific channel with no customization on which repository it came from.

    Yeah that sounds like a decent amount of work to setup. Although, it does seem like it is a one-time setup per repository.

  • Culture

    @gankdalf true, it would mostly be one time (unless someone wanted changes).

    Maybe you can answer a question for me, since my discourse knowledge is a bit limited. Can anyone add a webhook, or would the "admins" of the network have to add each one?

    With Slack we admins can enable an Integration, such as Github, and then allow users to manage the features of that Integration. So once we added Github, players who aren't admins (such as @ags131) can add their own repositories and organizations without having to coordinate with the admins at all.

    How would that work with Discord? It seems like we'd either have to allow anyone to create webhooks (which I am not sure is possible) or the admins would have to manage this task every time someone wanted to add a new github repo or organization.

  • YP

    @daboross said in Screeps Discord?:

    In the slack, we have 163 public channels, each with a different discussion topic. In discord, we'd either have to greatly pare down this number, or force everyone to have all 163 channels in their sidebar.

    on the other side 130 of those channels are probably empty because all messages expired... I don't think we need that many channels anyways.

    in discord you can have categories/subchannel .. so it's maybe even easier to create a clear channel structure

    one advantage of discord is that it's easy to be on multiple discord servers.. you can simply give a link to someone to join a channel on a different server or invite people... I would suggest not to have coalition channels on the main discord server.

    aliances and coalitions could actually use bots/api to manage their users on their servers... there is for sure a way to check if a discord user is a certain player


  • I am not a fan of either service due to their proprietary nature. I would much rather screeps have an official IRC channel(s).

  • YP

    @tedivm said in Screeps Discord?:

    How would that work with Discord? It seems like we'd either have to allow anyone to create webhooks (which I am not sure is possible) or the admins would have to manage this task every time someone wanted to add a new github repo or organization.

    discord has a very good permission system. there is a permission just for webhooks you can give to everyone .. or just to a group of users.. to allow creation in every channel.. or just to specific channels.. or maybe to a category...

  • @tedivm You could allow anyone to manage webhooks, which sadly allows deleting other people's webhooks. That is probably not ideal. There is no default "ownership" of a webhook, so all webhooks are the servers.

    You could create a role that could be handed out by admins that allowed the same thing, but to a subset of users manually selected to try and prevent abuse. Also not great.

    Someone could create a discord bot that managed webhooks using commands and gave ownership and limits to users, so that they couldn't create 10,000 webhooks and couldn't delete webhooks they didn't own.

    There is also the admin-only possibility, but that is probably the worst out of these options.

    As an extra note on the discord bots. I personally find discord bots very useful for displaying reference documents and other frequently asked questions in other servers, since you can save responses in it. For example it could be used to send direct links to the API reference with commands like

    !screeps dismantle
    !screeps privateserver
    !screeps tutorial

    And since they can do anything a normal console program running on the host computer could do, they are also capable of grabbing anything off the web, parsing it, and then taking some action on it. I have gone as far as to have them read item databases through an API and then read them using text to speech into voice chat. Obviously, this specific use-case has no purpose in Screeps, but it should give some reference to what the bots can do.

    I have created many discord bots, and I don't want to put this too lightly because time you don't have to spend is time you don't have to spend, but setting up one of these bots isn't very hard.

  • Culture

    @gankdalf your !screeps dismantle example is known as slash commands on Slack and are trivial to setup. We could totally do that if someone wanted to put the effort in.

    That being said the situation you describe for managing webhooks sounds like a nightmare. Either we have to let everyone access them and then clean up after the trolls, or we have to have a select group of people who have to do extra work now. The alternative for both of those would be that people can't add github webhooks for their projects.

  • YP

    @tedivm we don't have that many github integrations on slack... every developer only needs one webhook.

    most current integrations on slack are even public, so everybody can disable or remove them

  • @tedivm I will note that most discord communities I have seen do not try to have everyone on the same server for some things. For example, one of the games I play has a server structure like this:

    Official Server

    • general chat
    • official announcements
    • webhooks to main project
    • FAQ static channel
    • Guild/Alliance list static channel
    • trading

    Guild/Alliance Server

    • private channels
    • public channel for recruiting
    • lots of custom channels

    3rd Party Project Server

    • support channels
    • suggestions
    • project github webhooks

    The only reason this actually works in discord is because servers are free, fast to setup, and effortless to switch between. The closest similarity to Slack is more like discord servers are the slack channels, so when someone wants to create a channel for their own alliance, they create a server and link it back to the main server instead of creating a channel in the main server. This makes it far easier for newcomers to determine which channels are user-created alliances and 3rd party projects.

    Obviously, it gets a bit tricky if you want a generic channel that includes github notifications for every 3rd party project, since they would all need their own webhooks, but it depends on if that is actually the desired result.

  • YP

    @ags131 said in Screeps Discord?:

    if we are considering moving, we should also consider and evaluate other platforms too, rather than just debating slack vs discord. (I know there are several slack clones out there, don't recall their names though)

    I don't think there are many viable alternatives... many need self hosting and therefor at least some amount of hardware, support and adminstration. Also I think working mobile apps on iOS and Android are important.

  • Culture

    @w4rl0ck Mobile app support is definitely important, I have both discord and slack on my phone, although slack is far easier to use on mobile for me.

  • Culture

    @w4rl0ck if the admins were up for it I think it may be worth exploring some of the other options even if they require hosting. Obviously this depends on how much hardware, but most of these applications (at least the ones without a major audio component) should run just fine on a small server ($20 a month on linode would get you a 4gb server).

  • If I would have to choose between slack and discord, I'd choose IRC on one of the big networks.


    • open standard
    • won't get fired for using it at work
    • lots of clients to choose from (and some of them don't eat 2GB of RAM)
    • no walled garden
    • tons of integration options exist
    • easy to archive
    • venerable
    • can ignore others
    • no signup required - much lower barrier of entry
    • high nostalgia value, includes trout slapping


    • not owned by a startup desperately trying to make money or go public before funding runs out

  • @tedivm Your webhook and git problems are already solved via bots...
    Just pick the one which fits your bill. There are a ton out there.
    We use a github bot for wiremod and it is awesome.

    This is the public invite check how a working community looks like.

  • Culture

    @vrs ironically we started on IRC but people really liked using Slack instead. That being said we had an IRC channel, not a network, but the features such as scrollback, notifications, pinned posts, and integrations were also a big factor in moving.

  • YP

    IRC is really bad for mobile devices and not nooby friendly.. to make irc useful (for offline messages for example) you need a bouncer... something that's not easy to run for everybody.

    if you want you can use an IRC client to connect to slack.

  • I agree with WarInternal. I've used and love Discord for certain applications. Gaming with friends on FPS/RTS's is great, but it's a terrible choice for Screeps. Voice chat is the biggest "advantage" and serves no purpose here.

    One of the nicest things about the current Slack setup is everything screeps related is in one place. No matter the obscure chat or group you're looking for, they have a channel. IMO this would end if we switched to discord. Individual sub-communities would create their own Discord/Slack channel splintering the community. For example, I found out about #ScreepsPlus by just browsing the channel list.

    I also like to read Screeps on the go occasionally. I already have the Slack app installed for work. I'm not going to install the discord app solely for use with Screeps. I know personally I would be a lot less involved if it's moved to Discord.

    This doesn't even touch on the fact we'd be giving up code snippets. No code snippet support for a programming game! There's no arguing Dicord has many great features, but it's a poor match for our use case.