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
It will give you an error which can correctly identify the script
Alright I just have to wait for the prompt
Tbh it may not even prompt up now.
well before it did it around every 5-10 minutes so if it doesnt prompt then the issue is resolved then.
So check for a loop script then
I have to go sleep now, I can send my module of HD Admin which works fine when I am back on the computer. Goodnight.
goodnight and it seems the issue has been fixed thank you both so much for the help.
It should, HD Admin uses requires to load the module that you need for it to function correctly. I know HD Admin does use certain prompt purchases such as a donator one however I am confused about an owner admin one, perhaps it’s another script doing that? Check for ‘PromptPurchase’ and ‘PromptProductPurchase’ in your game.
If you have taken the official model and there is no viruses in your game then I’d recommend contacting @ForeverHD for information.
Alright Thank you for the feedback