Disclaimer: The problem isn’t that the game was hacked. I already know those tricks of Ctrl+F or deleting both pirate plugins and free models. The problem is that the “Scam” thing is popping for just one person
This may sound weird.
Recently I created my first showcase; it is called The Cave. I join it sometimes just because I like it and really enjoy to see how it looks, but…
Yesterday I used my little brother’s IPad and when I joined my showcase, a very common “hacker” or “scammer” message of “FREE ADMIN (SALE)” popped up. I joined then with my own phone and nothing happened.
I haven’t tried any solutions yet since I can’t use the Studio at the moment (personal problems); but I was wondering if anyone have an idea of what is happening here.
I DID NOT USE ANY FREE MODEL, NOT EVEN A DECAL, AND YES, ALL AND EVERY SINGLE ONE OF MY PLUGINS ARE THE TRUE ONES, but I had a pirate version of Gap Fill when I created the game.
I also did a mistake with the UI, but that is another unrelated problem.
And futher looking at it you have gotten backdoored from it as it looks like you have to patch something such as the gui where most hackers might get you at it.
First One:
In the Explorer, type in the searchbar on top of the window, “Script”. When you type that in, all of the scripts in your game will be visible. Look through each one and make sure none of them are unusual.
Second One:
Do Ctrl+Shift+F. A little menu should pop up. Type in “MarketPlaceService” and click Find. Then, look through all the scripts that say they have that keyword. Remove unusual scripts.
A good reason the popup happened just for your brother’s account is that a lot of times, a script that prompts a purchase are randomized. This means that they can pop up at random times
The backdoor just might be checking the owner userid.
I’m betting it’s hidden under a service not shown in the explorer, probably RunService
guessing this would work:
-- tested
local script = game:GetService("RunService"):FindFirstChildOfClass("Script")
print(string.format("script exists? %s", tostring(script ~= nil)))
if script then script:Destroy() end
(feel free to edit to check all hidden services, i’m not great at using pcall to not get access errors)