After my original post on the difficulties of switching from Discord to Guilded, I decided that in order to make an informed decision (i.e. to see if it was worth selling to my friends and neighbors) I decided that I needed to actually learn the platform to see what it can truly offer a community. Mind you, when I say “community” I mean other people who have more than the mere five or six people I manage on my current Discord server; I still want to go through the motions as if I’ll need the power of Guilded someday, and the first order of business in adopting any new community platform is to set up security.
Roles With The Punches
If you’ve ever dealt with permissions in Discord then roles in Guilded will be very familiar.

Guilded offers a way to import your current Discord security structure, so if you’re moving houses and don’t want to re-do all of that, such an option may be attractive to you. Since I never set up complex roles on my Discord server, and because I learned that Guilded offers a few more layers to the onion, I started fresh.
Roles are defined at the server level where an admin can set permissions for every aspect of the app. This includes super-admin permissions like being able to change the server settings, and sections such as chat, forums, media, calendar, and voice chat. If you do nothing else anywhere else, then assigning a user one of these permissions applies to every aspect of the channel based on the channel type.
Sub-Servers

Sub-servers (I don’t know the official designation) is something I had to get my head around. Within a Guilded server we have the ability to shard into as many groups as we might need. The server (optionally) allows you to recognize these by game title, meaning that you can create game-specific communities within your community. As you can see above, I have a Star Citizen sub-server defined. All of our Star Citizen content is contained here, and as you might imagine, I wanted to ensure that it’s available to those who want to see it, and doesn’t clutter up the UI for those who do not.
The default Membership is @everyone, which is basically a free-for-all. I opted to assign the membership to a specially created “Star Citizen” role. Because I have the “restrict who can view this group” checked, only members with the “Star Citizen” role assigned will be able to see this sub-server. Beyond that, the sub-server allows for additional “exceptions” to be added either through individual roles or individual users. Note that there is no official hierarchy of roles beneath the “Star Citizen” role, so in planning ahead, any roles that I might want to be specific to this sub-server will, in fact, not be specific to this sub-server.
Channel Groups

Individual channels within a sub-server can be collected into groups. This helps keep servers organized by subject matter, but in Guilded’s case, where there’s already a good amount of organization to be had before we get to this point, I had a hard time figuring out how to segregate my channels. Just because I wanted to use them, I came up with some craptacular group names.
Each group can be assigned permissions. By default, the “Member” role — the default role everyone is assigned to and which you cannot officially get rid of — is the only role, and it inherits whatever permissions were set one layer up. In the case of the group, this is the sub-server where we may have applied specific permissions…I think. If not, then the one layer up is the server level itself, where we should have defined our default permissions. For every other role, it appears that it need not appear in the permissions list at the group level: if a role is not present, it automatically inherits the parent permissions. If this is OK, then your work is done. If you need specific permissions for a specific role to be applied to a specific group, then you’ll need to add it and change the permissions to fit your bill.
Channels

If a channel belongs to a group, then by default the channel will inherit the permissions set within that group. If the group inherits from the server, then there’s really not a lot that an admin has to do: proper permission assignment at the server level will cascade down to the channel level, just like with Discord. And just like Discord, we can override a channel’s permissions to “disconnect” it from the group permissions if we need to have a channel with specific needs.
Channels with Specific Needs

Like many community servers in 2021, we have a NSFW channel. Discord has the advantage here in that channels can be natively marked as NSFW, and present a shade requesting verification the first time a user clicks into that channel. Guilded does not, as far as I can tell, so the next best thing is to create a “NSFW” role, then disconnect the NSFW channel from the permissions of it’s parent group and only enable the basic Chat permissions for the “NSFW” role. In this way, only those with the “NSFW” role will even see the channel in the list.
But how does one get the “NSFW” role without having to bother the admins and out themselves as some kind of deviant? Guilded allows users to self-assign roles.
Self-Assigning A Role
In order for a role to be self-assignable, it needs to be marked as such at the server level.

In doing so, a user can left-click on their name in the right sidebar and choose the role they want to adopt.

Anytime the role shows up within the app, though — in a chat, in the forums, in an announcement, etc. — it becomes a link, and users can click on those to add their account.

This allows admins to set up their welcome announcement post explaining how roles work, and offer the opportunity for new users to self-assign their interests…without needing a bot to handle such things.