ROBLOX VIRUS DESROYING MY GAME! please help : DataStoryY

edit: reuploading since i used wrong category

Hello. Every single time i look out my output i see DataStoreY:1.
image

After doing some exploring i looked up the Asset 6500274752 and found it be malicious. the scripts entire purpose was to get a random thing in workspace every once in a while and clone the DataStoreY:1 script inside of it then do something else which i suppose is give thelmselves admin or have a kill switch on my entire game.

I have done a ton of research and i read through every single script in workspace/scriptstorage/etc and deleted every plugin but i cannot find the cause of whats duplicating DataStoreY:.

anyone know what DataStoreY: is and how to get rid of it?

DataStoreY:1 Script which gets duplicated in random part.

local loaderFolder = script.Parent local tempFold = game.ServerStorage local SettingsModule = 6500274752 require(SettingsModule):Fire()

asset name: asset 6500274752. (i forgot how to look up assets sorry)

thanks

Why don’t you just delete it, also why did you used free models?

2 Likes

i use free models becuase i dont know how to use blender. maybe ill learn after i make this game. like i said i cant find the duplicater anywhere. if you asking why dont i delete it calling for that asset is becuase when i delete it, it gets recloned in a different object by some script which i cant find. my best bet is to find that script. what type of keywords would the script that duplicates it have for me to find via search and replace?

1 Like

Enable setting to see every service, then in your explorer search just type : script
And find it (with the others)

1 Like

maybe just put in the search bar for your workspace “script” and it should show all of them, then just go through and get rid of the bad ones

1 Like

I don’t think it will show him every services but yea that the idea

1 Like

how do i enable it in settings

1 Like

Just find it, file > studio setting > show hidden in explorer and turn it to true

2 Likes

restarting studios. im kind of expecting to see like a thousand viruses

1 Like

It will just show others services, most of virus are probably and certainly in workspace

1 Like

how do i tell whats built into roblox and whats a virus? im seeing this thing called contextmenugui but idk if its a virus.

script:

--[[
	// FileName: ContextMenuGui.lua
	// Written by: TheGamer101
	// Description: Module for creating the context GUI.
]]

-- CONSTANTS

local BOTTOM_SCREEN_PADDING_PERCENT = 0.02

-- SERVICES
local CoreGuiService = game:GetService("CoreGui")
local GuiService = game:GetService("GuiService")

--- VARIABLES
local RobloxGui = CoreGuiService:WaitForChild("RobloxGui")
local CoreGuiModules = RobloxGui:WaitForChild("Modules")
local SettingsModules = CoreGuiModules:WaitForChild("Settings")
local AvatarMenuModules = CoreGuiModules:WaitForChild("AvatarContextMenu")
local PlayerCarousel = nil
local PlayerChangedEvent = Instance.new("BindableEvent")

--- Modules
local ContextMenuUtil = require(AvatarMenuModules:WaitForChild("ContextMenuUtil"))
local Utility = require(SettingsModules:WaitForChild("Utility"))

local ContextMenuGui = {}
ContextMenuGui.__index = ContextMenuGui

-- PRIVATE METHODS

function ContextMenuGui:CreateContextMenuHolder(player)
	local contextMenuHolder = Instance.new("Frame")
	contextMenuHolder.Name = "AvatarContextMenu"
	contextMenuHolder.Position = UDim2.new(0, 0, 0, 0)
	contextMenuHolder.Size = UDim2.new(1, 0, 1, 0)
	contextMenuHolder.BackgroundTransparency = 1
	contextMenuHolder.Parent = RobloxGui
	contextMenuHolder.AutoLocalize = false
	return contextMenuHolder
end

function ContextMenuGui:CreateLeaveMenuButton(frame, theme)
	local function closeMenu()
		self.CloseMenuFunc()
	end
	local closeMenuButton = Instance.new("ImageButton")
	closeMenuButton.Name = "CloseMenuButton"
	closeMenuButton.BackgroundTransparency = 1
	closeMenuButton.AnchorPoint = Vector2.new(1, 0)
	closeMenuButton.Position = UDim2.new(1, -10, 0, 10)
	closeMenuButton.Size = UDim2.new(0.05, 0, 0.1, 0)
	closeMenuButton.Image = theme.LeaveMenuImage
	closeMenuButton.Selectable = false
	closeMenuButton.Activated:Connect(closeMenu)

	local aspectConstraint = Instance.new("UIAspectRatioConstraint")
	aspectConstraint.AspectType = Enum.AspectType.FitWithinMaxSize
	aspectConstraint.DominantAxis = Enum.DominantAxis.Height
	aspectConstraint.AspectRatio = 1
	aspectConstraint.Parent = closeMenuButton

	closeMenuButton.Parent = frame

	return closeMenuButton
end

-- PUBLIC METHODS

local function listenToViewportChange(functionToFire)
	if functionToFire == nil then return end

	local viewportChangedConnection = nil

	local function updateCamera()
		local newCamera = workspace.CurrentCamera
		if viewportChangedConnection then
			viewportChangedConnection:Disconnect()
		end
		viewportChangedConnection = newCamera:GetPropertyChangedSignal("ViewportSize"):Connect(functionToFire)
		functionToFire()
	end

	workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(updateCamera)
	updateCamera()
end

function ContextMenuGui:CreateMenuFrame(theme)
	local contextMenuHolder = self:CreateContextMenuHolder()

	local menu = Instance.new("ImageButton")
	menu.Name = "Menu"
	menu.AnchorPoint = theme.AnchorPoint
	menu.Size = theme.Size
	menu.Position = theme.OnScreenPosition
	menu.BackgroundTransparency = theme.BackgroundTransparency
	menu.BackgroundColor3 = theme.BackgroundColor
	menu.Image = theme.BackgroundImage
	menu.ScaleType = theme.BackgroundImageScaleType
	menu.SliceCenter = theme.BackgroundImageSliceCenter
	menu.AutoButtonColor = false
	menu.BorderSizePixel = 0
	menu.Selectable = false
	menu.Visible = false
	menu.Active = true
	menu.ClipsDescendants = true
	menu.Modal = true

	GuiService:AddSelectionParent("AvatarContextMenuGroup", menu)

		local aspectConstraint = Instance.new("UIAspectRatioConstraint")
		aspectConstraint.AspectType = Enum.AspectType.ScaleWithParentSize
		aspectConstraint.DominantAxis = Enum.DominantAxis.Height
		aspectConstraint.Name = "MenuAspectRatio"
		aspectConstraint.AspectRatio = theme.AspectRatio
		aspectConstraint.Parent = menu

		local function updateAspectRatioForViewport()
			local viewportSize = workspace.CurrentCamera.ViewportSize
			if viewportSize.x < viewportSize.y then
				aspectConstraint.DominantAxis = Enum.DominantAxis.Width
			else
				aspectConstraint.DominantAxis = Enum.DominantAxis.Height
			end
		end
		listenToViewportChange(updateAspectRatioForViewport)

		local sizeConstraint = Instance.new("UISizeConstraint")
		sizeConstraint.Name = "MenuSizeConstraint"
		sizeConstraint.MaxSize = theme.MaxSize
		sizeConstraint.MinSize = theme.MinSize
		sizeConstraint.Parent = menu

		local contentFrame = Instance.new("Frame")
		contentFrame.Name = "Content"
		contentFrame.Size = UDim2.new(1,0,1,0)
		contentFrame.BackgroundTransparency = 1
		contentFrame.Parent = menu

			local contentListLayout = Instance.new("UIListLayout")
			contentListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
			contentListLayout.VerticalAlignment = Enum.VerticalAlignment.Top
			contentListLayout.SortOrder = Enum.SortOrder.LayoutOrder
			contentListLayout.Parent = contentFrame

			local contextActionList = Instance.new("ScrollingFrame")
			contextActionList.Name = "ContextActionList"
			contextActionList.AnchorPoint = Vector2.new(0.5,1)
			contextActionList.BackgroundColor3 = theme.ButtonFrameColor
			contextActionList.BackgroundTransparency = theme.ButtonFrameTransparency
			contextActionList.BorderSizePixel = 0
			contextActionList.LayoutOrder = 2
			contextActionList.Size = UDim2.new(1,-12,0.54,0)
			contextActionList.CanvasSize = UDim2.new(0,0,0,208)
			contextActionList.ScrollBarThickness = 4
			contextActionList.Selectable = false
			contextActionList.Parent = contentFrame

				local contextActionListUIListLayout = Instance.new("UIListLayout")
				contextActionListUIListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
				contextActionListUIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
				contextActionListUIListLayout.VerticalAlignment = Enum.VerticalAlignment.Top

				contextActionListUIListLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
					contextActionList.CanvasSize = UDim2.new(0,0,0,contextActionListUIListLayout.AbsoluteContentSize.Y)
				end)

				contextActionListUIListLayout.Parent = contextActionList

			local nameTag = Instance.new("TextButton")
			nameTag.Name = "NameTag"
			nameTag.AnchorPoint = Vector2.new(0.5,1)
			nameTag.BackgroundColor3 = theme.NameTagColor
			nameTag.AutoButtonColor = false
			nameTag.BorderSizePixel = 0
			nameTag.LayoutOrder = 1
			nameTag.Size = UDim2.new(1,-12,0.16,0)
			nameTag.Font = theme.Font
			nameTag.TextColor3 = theme.TextColor
			nameTag.TextSize = 24 * theme.TextScale
			nameTag.Text = ""
			nameTag.TextXAlignment = Enum.TextXAlignment.Center
			nameTag.TextYAlignment = Enum.TextYAlignment.Center
			nameTag.Selectable = false
			nameTag.Parent = contentFrame

				local underline = Instance.new("Frame")
				underline.Name = "Underline"
				underline.BackgroundColor3 = theme.NameUnderlineColor
				underline.AnchorPoint = Vector2.new(0,1)
				underline.BorderSizePixel = 0
				underline.Position = UDim2.new(0,0,1,0)
				underline.Size = UDim2.new(1,0,0,2)
				underline.Parent = nameTag

	self:CreateLeaveMenuButton(menu, theme)

	menu.Parent = contextMenuHolder
	self.ContextMenuFrame = menu

	return menu
end

function ContextMenuGui:UpdateGuiTheme(theme)
	self.ContextMenuFrame.Size = theme.Size
	self.ContextMenuFrame.AnchorPoint = theme.AnchorPoint

	self.ContextMenuFrame.BackgroundTransparency = theme.BackgroundTransparency
	self.ContextMenuFrame.BackgroundColor3 = theme.BackgroundColor
	self.ContextMenuFrame.Image = theme.BackgroundImage
	self.ContextMenuFrame.ScaleType = theme.BackgroundImageScaleType
	self.ContextMenuFrame.SliceCenter = theme.BackgroundImageSliceCenter

	self.ContextMenuFrame.CloseMenuButton.Image = theme.LeaveMenuImage

	self.ContextMenuFrame.MenuSizeConstraint.MaxSize = theme.MaxSize
	self.ContextMenuFrame.MenuSizeConstraint.MinSize = theme.MinSize

	self.ContextMenuFrame.MenuAspectRatio.AspectRatio = theme.AspectRatio

	local contentFrame = self.ContextMenuFrame.Content
	contentFrame.ContextActionList.BackgroundColor3 = theme.ButtonFrameColor
	contentFrame.ContextActionList.BackgroundTransparency = theme.ButtonFrameTransparency

	contentFrame.NameTag.BackgroundColor3 = theme.NameTagColor
	contentFrame.NameTag.Font = theme.Font
	contentFrame.NameTag.TextColor3 = theme.TextColor
	contentFrame.NameTag.TextSize = 24 * theme.TextScale

	contentFrame.NameTag.Underline.BackgroundColor3 = theme.NameUnderlineColor

	if PlayerCarousel then
		PlayerCarousel:UpdateGuiTheme(theme)
	end
end

function ContextMenuGui:BuildPlayerCarousel(playersByProximity, theme)
	if not PlayerCarousel then
		local playerCarouselModule = require(AvatarMenuModules.PlayerCarousel)
		PlayerCarousel = playerCarouselModule.new(theme)
		PlayerCarousel.rbxGui.Parent = self.ContextMenuFrame.Content
	end

	PlayerCarousel:ClearPlayerEntries()

	if self.PlayerChangedConnection then
		self.PlayerChangedConnection:Disconnect()
	end
	self.PlayerChangedConnection = PlayerCarousel.PlayerChanged:Connect(function(player)
		if player then
			self.ContextMenuFrame.Content.NameTag.Text = player.Name
		else
			self.ContextMenuFrame.Content.NameTag.Text = ""
		end
		PlayerChangedEvent:Fire(player)
	end)

	for i = 1, #playersByProximity do
		PlayerCarousel:CreatePlayerEntry(playersByProximity[i][1], playersByProximity[i][2])
	end
	PlayerCarousel:FadeTowardsEdges()
	PlayerCarousel:AddCarouselDivider()
end

function ContextMenuGui:RemovePlayerEntry(player)
	if not PlayerCarousel then return end

	PlayerCarousel:RemovePlayerEntry(player)
end

function ContextMenuGui:GetBottomScreenPaddingConstant()
	return BOTTOM_SCREEN_PADDING_PERCENT
end

function ContextMenuGui:SetCloseMenuFunc(closeMenuFunc)
	self.CloseMenuFunc = closeMenuFunc
end

function ContextMenuGui:SwitchToPlayerEntry(player, dontTween)
	if not PlayerCarousel then return end
	PlayerCarousel:SwitchToPlayerEntry(player, dontTween)
end

function ContextMenuGui:OffsetPlayerEntry(offset)
	if not PlayerCarousel then return end
	PlayerCarousel:OffsetPlayerEntry(offset)
end

function ContextMenuGui:GetSelectedPlayer()
	if not PlayerCarousel then return nil end
	return PlayerCarousel:GetSelectedPlayer()
end

function ContextMenuGui.new()
	local obj = setmetatable({}, ContextMenuGui)

	obj.CloseMenuFunc = nil

	obj.ContextMenuFrame = nil
	obj.LastSetPlayerIcon = nil

	obj.PlayerChangedConnection = nil

	obj.SelectedPlayerChanged = PlayerChangedEvent.Event

	return obj
end

return ContextMenuGui.new()

2 Likes

So if you dont have any of your script in the workspace, run this in command bar :

for i,v in pairs(game.Workspace:GetChildren()) do
  if v:IsA("Script") then
      v:Destroy
  end
end
2 Likes

i do have scripts in workspace.

2 Likes

If they’re your then don’t execute the for loop i just sent you,

Use the workspace search. You just type script and it will show you every scripts of the game

1 Like

it says there are 6800 scripts and like i said how do i tell if roblox wrote it vs hackers?

1 Like

daymmmmm that is a load of scripts

2 Likes

how do i tell if its by hacker vs roblox?

1 Like

Roblox’s are in coregui etc, just delete the one that arent yours in workspace

1 Like

Thaaatt alllooooott backdoors like wow

3 Likes

edit: I just found out i dont actually have that many scripts it just counted everytime i said “script” in a script since i was using search and replace like instructed

1 Like