ScrubService – Filter Accessories by Group ID
Hey everyone!
I recently built a simple module I’m calling ScrubService, which automatically removes accessories from characters if they were uploaded by certain groups. This can be useful in cases where:
- You want to restrict accessories from specific communities or creators.
- You’re moderating avatar content to protect children from NSFW accessories.
- You’re avoiding group-branded items for lore or visual reasons.
What It Does
Whenever a player spawns, ScrubService:
- Collects all accessory asset IDs from their
HumanoidDescription
. - Uses
MarketplaceService:GetProductInfo
to determine if any were uploaded by a banned group. - Applies a new
HumanoidDescription
with those accessories removed.
You can define your own list of banned group IDs.
Code Snippet
Here’s a simplified view of how it works:
local BannedGroupIDs = {
32536194, -- Solidz
34871762, -- February Rust
34935824, -- Cortizol Vices
}
-- FilterAccessory checks if an asset was made by a banned group
-- CreateFilteredHumanoidDescription removes banned accessories
-- OnCharacterAdded triggers filtering when a character spawns
-- Init sets everything up for all players
The full source handles retries for
GetProductInfo
, accessory string parsing, and avoids false positives from user-made items.
Example Use Case
Just drop the script into ServerScriptService (or wherever suits your architecture). It automatically starts filtering accessories for all players when the game runs.
You don’t need to call anything manually the script runs Init()
at the bottom and listens for PlayerAdded
/CharacterAdded
events automatically.
That’s it! All players will automatically have their accessories filtered upon spawning.
Notes
- The check only filters group-created accessories. Player-created items are left alone.
Feedback & Suggestions
I’d love to hear your thoughts! Any feature requests, improvements, or performance tweaks are welcome.
Download Link
ScrubService.rbxm (2.6 KB)