Annotations Plugin

Draw in studio with your friends!

This plugin provides annotation tools for making marks in studio, only visible to others who also have the plugin. Annotations are not visible outside of studio. This plugin is FREE!

Drawing


There are brush settings for size, distance, and color, with some fun little animations.

If you turn down the draw distance, you can draw in the air.

Technicals

There are two places that this plugin does its work. The annotations are stored in ServerStorage, and the visuals are stored inside the camera. The camera is special place that only displays things to you, while also cleaning up when you leave.

In ServerStorage,

  • There is an AnnotationsPlugin folder
  • There are folders for each user’s annotations, named by UserId

In the camera,

  • There are Parts used as hitboxes for the eraser tool
  • There are LineHandleAdornments inside the parts to display lines
  • There are ObjectValues named Reference that point back to the annotations in ServerStorage, this is how the eraser tool knows what to delete

To keep the drawings in sync with what is in ServerStorage, these annotations are tracked in real time. Any new or deleted annotation objects will update on screen. Folders are only created when needed and cleaned up when empty.

If you want to clear all of a user’s annotations, simply clear or delete the folder with the corresponding UserId.

Coming soon:

  • Select and move annotations
  • Text annotations
  • Image annotations

Known issues:

  • Undo conflicts with other users’ drawings
  • Undo does not work with the eraser tool
  • Undo does not work with the clear button

Get it for free here - Annotations - Creator Store (roblox.com)

13 Likes

Looks great, I’ll give it a try, but if only it replicated to everyone, not just plugin users.

In my unbiased opinion, I think this plugin is pretty great! There are some areas that could be improved, and I’m sure they will over time. This seems very helpful for large groups, especially those who want to storyboard some creations. I could see myself using this for suggesting changes to a creation.





4 Likes

The caveat here is that in order to make the annotations only visible in studio, I did a client-side rendering which requires the plugin to function. If there is any other way to have studio-only visuals without needing the plugin, I will use that instead.

Unarchivable instances within the materials service

Do they persist after closing studio? Also, I don’t think it would be possible to hide them locally.

They do not, unarchivable instances don’t save, and the material service directory also doesn’t save

To hide locally, you would need the plugin

This wouldn’t work then. Someone would need the plugin to create the annotations, but if they don’t stay in studio, they will be gone until someone with the plugin joins anyway.

the stupidly simple way to do that would be to have it under workspace, with a script that does script.Parent:Destroy()

I did actually consider that, but it’s not always fast enough and does sometimes replicate to the first players in the server. It would also require the plugin to ask for script injection permissions. I’ll have to weigh the pros and cons.

Another alternative would be to have the annotations attached to an unanchored uncollideable part that falls into the void. I don’t think the performance would suffer that much if you did it right

this plugin has been on my mind recently, because I think you replied to someone and said that you would make this and now I finally found it! very cool

1 Like