Introduction of the Avatar Context Menu

Hi everyone!

Today we are proud to introduce the brand-new Avatar Context Menu. Previously, users would have to find their friends in the long list of all players in-game to send friend requests, or manually type their username in the chat to initiate a private conversation. With the Avatar Context Menu, users can now walk up to another player, and send a friend request or begin a private chat with the press of a button. Developers may also leverage this feature for their own game, and allow players to initiate trades, battles, and more without having to manually implement an interaction system. In games where the developer has enabled the feature, clicking or tapping a character will open up the Avatar Context Menu. By default, the menu will have the following options:

Add Friend

Sends a friend request to the selected user

Chat

Opens a private conversation with the selected user in the in-game chat

Emotes

It currently initiates a wave animation to the user selected. The list of emotes will be expanded upon in the near future.

Developer Options

The Avatar Context Menu is an opt-in feature, as it might not be compatible with all games. Social games should be able to take full advantage of the Avatar Context Menu, but its control scheme may conflict with combat-based or any games that already have defined behavior for clicking or tapping another player. The AvatarContextMenu can be enabled with SetCore:

game:GetService("StarterGui"):SetCore("SetAvatarContextMenuEnabled", true)

Once enabled, developers may add game-specific actions to the menu as well. Check out the Developer Portal for detailed instructions on how to use the Avatar Context Menu. Let us know how you plan on using the Avatar Context Menu by using #RobloxDev and tweeting @RobloxDevRel !

Developer FAQ

Does Roblox have a tutorial or more information on how to use this new feature?

How is the Avatar Context Menu used on Xbox controllers?

  • Game pad is not fully supported

How many developer items can be added to the Avatar Context Menu?

  • As many as your heart desires!

Can developers customize the interface of the Avatar Context Menu?

  • There is no customization option but you are able to include multiple options to the menu.

Does the ACM open when I click a player while I have a tool equipped?

  • No worries, it doesn’t!

Enjoy!

68 Likes

Cool, nice update!

6 Likes

Pretty weird that it can’t be enabled with a checkbox under the workspace properties and has to be enabled in a script, but ill probably use this in some of my upcoming games :yum:

8 Likes

Awesome feature! Was waiting to see when this would finally be released! I hope to see games utilising it soon. :slight_smile:

Ooh, reminds me of a similar feature Roblox tried to do ages ago. Wasn’t nearly as customizable, and was opened by clicking the other user, causing issues in some games. Glad to see it’s been fine tuned, released, and better than ever!

I’m glad that this is an opt-in feature. My first thought were the games that rely on clicking on players, such as Trade Hangout.

I tried to implement these in Egg Hunt back in December/January, this is my feedback:

  • The lack of customization on the UI is a bit of a let down, it often clashes with UI I make.
  • The custom menu items that are added are not visible at first view of the screen. The user needs to scroll down to see the custom actions. Especially when there’s only one custom action (i.e. “Invite to Party” in Egg Hunt), this seemed bad UX. The menu could scale to accommodate for extra actions. I would also like to be able to get rid of some of the default actions (i.e. Wave). (EDIT: this is a thing)
  • The menu kept popping up on accident when clicking around on PC, which was annoying.
  • There was no API to force the menu to close. If the player enters a cutscene, I had no way of closing the pop-up, the player had to click it away themselves. This method should be available somehow.

EDIT:

  • I also suggest to have an API to force-open the window, so that we can trigger it ourselves, i.e. I could implement controller support myself as a developer to get ahead of the game that way, and it’d be less effort for you / you don’t need to design a specific system for controller activation that only works well in specific games.
19 Likes

The fact that you can customize it makes it a really cool feature :o

I fail to see the purpose something like this serves when we could simply create custom tailored context menus and the like for our games. I don’t think I will be using it in any of my games.

3 Likes

This has been known by the developer community for a few months now. Only now has it been announced fully.

Workspace is currently the dumping ground for anything we can’t figure out where to put e.g.:

Sales: AllowThirdPartySales
Physics: Gravity, PGSPhysicsSolverEnabled, GetRealPhysicsFPS, GetNumAwakeParts, GetPhysicsThrottling
Time: DistributedGameTime
Network: StreamingEnabled
Spatial computations: Raycasting, regions

Not sure it’s such a great idea to complicate it even further. Current toggle is much better.

5 Likes

It makes more sense to keep putting new game properties as configurable in workspace, as that is the current precedent. It’s going to be hard for users to find how to turn the avatar context menu on it if can only be enabled by scripting.

1 Like

love this !! I use a custom leaderboard for my game so this feature will come in handy for players who want to send friend requests in-game, definitely using this!

2 Likes

Just because something has always been done this way doesn’t mean doing it that way is good. Workspace is an example of what not to do.

1 Like

Cool update. Much wow. :smile:

Added to “Roblox Titanic”, very cool! And I’m excited for the future of the feature!

1 Like

I remember seeing this in studio a few weeks back.

That’s too bad…
The default look might not match the style of the game’s UI sometimes.
And thus, players have to either make their own ACM or opt-out of it completely.

2 Likes

This looks and sounds amazing! Can’t wait to use this in my games, and see how other people use it!

Turns out, you can!

There’s an Enum for the default Avatar Context Menu Options, aptly named Enum.AvatarContextMenuOption. To disable the wave option, you’d call

game.StarterGui:SetCore("RemoveAvatarContextMenuOption",Enum.AvatarContextMenuOption.Emote)
6 Likes