What is Tag Manager?
Tag Manager streamlines working with CollectionService tags by giving you up to 3 scripts per tag:
- Server Script - Runs on the server for gameplay logic
- Client Script - Runs on clients for visuals and effects
- Edit Mode Script - Runs in Studio for tools and visualization
Only add what you need. Server-only tags? Just create a server script. Client-only? Just a client script. Mix and match as needed.
Core Features
Three Script Types Per Tag - Server, Client, and Edit Mode (add only what you need)
Simple Tag Management - Add/remove tags with one click
Enable/Disable Before Playtest - Toggle any script on/off
Edit Mode Script Reloading - Update edit scripts without restarting Studio
Optional Runtime Hot Reloading - Modify server/client scripts while the game is running
Runtime Tag Control - Enable/disable tags during playtesting
Automatic Cleanup - Removed() called automatically when objects are destroyed
Optional Whitelisting - Restrict tag observation to specific hierarchies
Module/Script Conversion - Toggle between ModuleScripts and Scripts without losing code
Clean UI - Everything accessible from one widget, no searching through Explorer
Getting Started
Creating Your First Tag
Adding a tag is simple: type the name and click the + button. To remove a tag and erase all its scripts, find it in the list and click the X button.

Setting Up Tag Behavior
Click on any tag in the list to open its configuration panel:
For each context (Server, Client, Edit Mode), you can:
- Click the gear icon to open/create the script
- Click the checkbox to enable/disable the script
- Click the X to delete the script if you don’t need it
Edit Mode Script Reloading
Edit Mode scripts can be reloaded at any time during development. When you reload:
- The Removed() function of the old script is called
- The Added() function of the new script is called
- Changes apply immediately to all tagged objects
Example: Making tagged objects change color
In this example, I create a “Test” tag with an Edit Mode script. First, it makes objects red and removes the color when untagged. Then I modify it to make them yellow and reload the script - the changes apply instantly:
This is perfect for:
- Building custom Studio tools
- Creating visual helpers and gizmos
- Validating tagged objects
- Prototyping systems quickly
Pre-Playtest Tag Control
Before pressing Play, you can enable or disable any Server or Client script with a simple checkbox toggle. This is incredibly useful for:
- Testing with/without specific mechanics
- Disabling problematic systems during debugging
- A/B testing different implementations
- Gradually enabling features as you develop
Changes apply immediately when you start the playtest.
Runtime Interface
When you start playtesting, the widget switches to a runtime view showing all your tags separated into Server and Client lists. You can toggle tags on/off during the playtest without restarting.
Example: In this demo, I have a “Test” tag that makes objects green on the server and blue on the client. Watch how I can toggle them independently during runtime:
This makes iteration incredibly fast - no need to stop and restart just to test a different configuration.
Hot Reloading (Optional)
Want to take iteration speed to the next level? Enable Runtime Hot Reloading in the settings.
How to Enable
- Click the Settings button in the tag list
- Check the Runtime Hot-Reloading option
- The plugin updates your handler scripts to support reloading
Using Hot Reload
With hot reloading enabled, the runtime widget gains additional controls:
- Reload button - Apply script changes instantly
- Open script button - Jump directly to the script editor
Example: Using the same color-changing test tag, I can now modify the scripts during runtime and reload them. In this case, changing the colors from green/blue to different colors - all without stopping the playtest:
Note: Changes made during runtime with hot reload are temporary and will be lost when playtesting ends. This is intentional - it’s for rapid testing, not permanent changes.
When to Use Hot Reload
Enable it when:
- Actively developing and iterating
- Tweaking gameplay values
- Testing different mechanics quickly
- Prototyping new systems
Disable it for:
- Published games
- Performance-critical testing
- Final playtests before release
It’s completely optional and can be toggled on/off with one click.
Optional Whitelisting
Want tags to only work in specific areas? Use the AncestorWhitelist:
local self = {}
-- Only observe tags under these instances
self.AncestorWhitelist = {
workspace.GameArea,
workspace.BossRoom
}
function self:Added(object: Instance)
-- Only called for tagged objects inside GameArea or BossRoom!
end
function self:Removed(object: Instance)
-- Called when object is deleted, tag is removed, or when its parented outside of GameArea or BossRoom!
end
return self
Use cases:
- Restrict mechanics to specific zones
- Separate test areas from production
- Optimize performance by limiting observation scope
- Create level-specific behaviors
Set to nil (default) to observe all tagged instances everywhere.
Additional Features
Module/Script Conversion
In the settings, you can convert handler scripts between ModuleScripts and regular Scripts with one click. The plugin automatically:
- Wraps/unwraps your code with minimal changes
- Preserves all your existing logic
- Handles the conversion seamlessly
This is useful when:
- Working with module loader systems
- Transitioning projects between architectures
- Experimenting with different setups
Automatic Parent Tracking
While the settings panel lets you select parent locations for handlers, you can also just move them in the Explorer - the plugin automatically detects and updates the location. No need to configure manually.
Default locations:
- Server Handler: ServerScriptService
- Client Handler: ReplicatedStorage
- Plugin Handler: ServerStorage
Get Tag Manager
https://create.roblox.com/store/asset/123572046473398/Tag-Manager
Feedback & Questions
As always comment below for:
- Feature requests or improvements
- Any bugs or issues you encounter
- Questions about implementation




