Well whats done is done, and the only model that made the virus disappear was HD admin. I script searched all require instances, and the only one that fixed the issue was deleting HD admin in its entirety.
Well that’s weird since Its never happened to me and I got it from the official model, people can be cruel but I don’t see why a person who has won an official bloxy would implement a virus in one of the top selling models.
Yeah I know I was just wondering if anyone had an experience like this so they could help me.
I’m just seeing what could be the causes
Yes in my old game with free models I had this exact issue and I was able to remove it just by looking at the scripts. (I didn’t know of view at the time)
I dont want to be annoying but how do i see core gui on the explorer?
Also he said its a model not a plugin. So there is no need for this. Models cannot access the CoreGui if I’m correct. Plus we need screengui when we are in game. And it’s a prompt from CGui. So we can only see this occur in game from the children changing
My English is bad in this post, ignore what I said if you cannot understand it.
I was just saying to check it because some viruses may be in there and only trigger when there’s certain code. (like replacing real require scripts with fake ones)
Im checking right now ill tell you if i find anything weird.
Is there supposed to be something called “PurchasePromptApp” and “RobloxPromptGui”? Just making sure even though its probably a dumb question.
Yeah, it is because its prompting stuff.
Also you are being prompted to purchase something so that’s the case.
i dont know if this will help but this is what the virus is.
-- A temporary test banner for HD Admin, more advanced one coming with Nanoblox to enable developers to improve
-- their games release announcements and gamepass/product promotion
local dataId = 1128442562
local data = game:GetService("MarketplaceService"):GetProductInfo(dataId, Enum.InfoType.Product)
local desc = data.Description
local ignore = desc:match("##")
if ignore then return end
local descSplitValues = desc:split(" || ")
local dataTable = {}
for _, splitDesc in pairs(descSplitValues) do
local seperatorPos = splitDesc:find(":")
local key = splitDesc:sub(1, seperatorPos-1)
local value = splitDesc:sub(seperatorPos+1)
local finalValue = tonumber(value)
if value:lower() == "true" then
finalValue = true
elseif value:lower() == "false" then
finalValue = false
elseif value == "nil" then
finalValue = nil
elseif not finalValue then
finalValue = value
end
dataTable[key] = finalValue
end
local startTime = type(dataTable.startEpoch) == "number" and dataTable.startEpoch*100
local runningTime = type(dataTable.runningTime) == "number" and dataTable.runningTime
local endTime = type(dataTable.endEpoch) == "number" and dataTable.endEpoch*100
if not startTime then
startTime = runningTime and endTime and endTime - runningTime
elseif not endTime then
endTime = runningTime and startTime and startTime + runningTime
end
local extendedEndTime = endTime + ((type(dataTable.countdownExtension) == "number" and dataTable.countdownExtension) or 0)
local isCountdown = dataTable.countdown == true
local timeNow = os.time()
local heartbeart = game:GetService("RunService").Heartbeat
local banner = script.Parent
local countFrame = banner.CountFrame
local countLabel = countFrame.Count
local captionLabel = countFrame.Caption
local navigate = banner.Parent.NavigateLabel
local notices = banner.Parent.NoticesLabel
local textBox = banner.TextBox
local tagIcon = banner.TagIcon
local stamps = {
60, -- 1 minute
300, -- 5 minutes
1200, -- 30 minutes
-- + every hour interval
}
local tag = dataTable.tag
if tag then
textBox.Text = "roblox.com/games/6071412982/"..tag
textBox.Visible = true
tagIcon.Visible = true
else
textBox.Visible = false
tagIcon.Visible = false
end
countFrame.Visible = isCountdown
captionLabel.Text = dataTable.countdownCaption or ""
banner.Image = "rbxassetid://"..data.IconImageAssetId
if timeNow >= extendedEndTime then return end
while os.time() < startTime do
heartbeart:Wait()
end
navigate.Visible = false
notices.Visible = false
banner.Visible = true
local previousTime
while os.time() < endTime do
local currentTime = os.time()
if currentTime ~= previousTime and isCountdown then
previousTime = currentTime
local function format(value)
local newValue = tostring(math.floor(value + 0.000001))
if newValue == "60" then
return "00"
elseif #newValue == 1 then
return "0"..newValue
end
return newValue
end
local remainingTime = endTime - currentTime
local absoluteHours = remainingTime/3600
local hours = math.floor(absoluteHours)
local absoluteMinutes = (absoluteHours - hours) * 60
local minutes = math.floor(absoluteMinutes)
local absoluteSeconds = (absoluteMinutes - minutes) * 60
local seconds = absoluteSeconds
countLabel.Text = format(absoluteHours)..":"..format(absoluteMinutes)..":"..format(absoluteSeconds)
if table.find(stamps, remainingTime) or remainingTime % 3600 == 0 then
local topbarContainer = game:GetService("ReplicatedStorage"):FindFirstChild("HDAdmin")
local topbarPlus = topbarContainer and topbarContainer:FindFirstChild("Topbar+")
local iconController = topbarPlus and require(topbarPlus.IconController)
local icon = iconController and iconController:getIcon("HDAdmin")
if icon and icon.toggleStatus ~= "selected" then
icon:notify(icon.selected)
end
end
end
heartbeart:Wait()
end
countFrame.Visible = false
while os.time() < extendedEndTime do
heartbeart:Wait()
end
navigate.Visible = true
notices.Visible = true
banner.Visible = false
Also go to settings and turn off 3d purchases
i though i turned that off, apparently not lol
Yup that’s the one. It requires marketplace to validate.
Sometimes before it used to be enabled by default but now no I think.
Im going to check if this worked.
You’ll still get the prompt if I’m correct, but it will just say 3rd party is disabled