Discuss Scratch

QuaticB-
Scratcher
100+ posts

The (name) is a real username? Block Topic

(name) is a real username? Block Proposal:
I have seen many cloud games remove usernames on high scores (for example, Massive Multiplayer Platformer and Appel), because some users hack the cloud with an environment like JavaScript or Python and change their username to something inappropriate.

So, I am proposing a new block in the Sensing category:
<()is a real username? :: sensing>

This was the original design, but I changed it to the one above:
<() is username>

The new design is by @MagicCoder330

This block checks if the value entered is a real Scratch username or not.
Cloud game creators can use it like this:
define decoded values = decode (datapack)


when I receive [display tick v]
decoded values = decode (☁ CLOUD world record)
set [world record time v] to (item (1) of [decoded values v] :: list)
set [world record holder v] to (item (2) of [decoded values v] :: list)
if <(world record holder)is a real username? :: sensing>then
set [display v] to (join (join [Highscore: ] (world record time)) (join [ by ] (world record holder)))
else
set [display v] to [Highscore Unavailable]
if <not <(☁ CLOUD world record) = ()>>then
set [☁ CLOUD world record v] to []
end
end

Scratch has moderation to remove inappropriate usernames, so if you hack into using an inappropriate username, it won’t be a real Scratch username and won’t be displayed. That way creators won’t have to remove username displays.
Hackers can’t hack the (name) is a real username? block because the display tick is separate for each device, so any inappropriate usernames will be blocked on all devices except the hacker’s.

I think this could help cloud games a lot and developers don’t have to worry about hacked usernames anymore.

Last edited by QuaticB- (Sept. 17, 2024 13:56:34)

A-MARIO-PLAYER
Scratcher
1000+ posts

The (name) is a real username? Block Topic

workaround: check on a backend to see if the username is real before accepting it.
cooIing
Scratcher
95 posts

The (name) is a real username? Block Topic

Support for these reasons:

QuaticB- wrote:

(name) is username? Block Proposal:

I have seen many cloud games remove usernames on high scores, because some users hack the cloud with an environment like JavaScript or Python and change their username to something inappropriate.

So, I am proposing a new block in the Sensing category:
<()is username?>

This block checks if the value entered is a real Scratch username or not.
Cloud game creators can use it like this:
when I receive [display tick]
if <(world record holder)is username?> then
set [display] to (join (join [Highscore: ] (world record)) (join [ by ] (world record holder)))


else
set [display] to [Highscore Unavailable]
end

Scratch has moderation to remove inappropriate usernames, so if you hack into using an inappropriate username, it won’t be a real Scratch username and won’t be displayed. That way creators won’t have to remove username showing.

I think this could help cloud games a lot and developers don’t have to worry about hacked usernames anymore.
kjjdcjd

A-MARIO-PLAYER wrote:

workaround: check on a backend to see if the username is real before accepting it.
Bad workaround.

soory wait 120 seconds why why why

Last edited by cooIing (Sept. 10, 2024 19:10:01)

MagicCoder330
Scratcher
1000+ posts

The (name) is a real username? Block Topic

cooIing wrote:


Bad workaround.

soory wait 120 seconds why why why

why is the workaround bad
cooIing
Scratcher
95 posts

The (name) is a real username? Block Topic

MagicCoder330 wrote:

cooIing wrote:


Bad workaround.

soory wait 120 seconds why why why

why is the workaround bad
you go off the scratch create

Last edited by cooIing (Sept. 10, 2024 19:29:13)

MagicCoder330
Scratcher
1000+ posts

The (name) is a real username? Block Topic

cooIing wrote:

MagicCoder330 wrote:

cooIing wrote:


Bad workaround.

soory wait 120 seconds why why why

why is the workaround bad
you go off the scratch create






WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY 120 SECONDS!? WHYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
I had a stroke reading that. huh?
BigNate469
Scratcher
1000+ posts

The (name) is a real username? Block Topic

A-MARIO-PLAYER wrote:

workaround: check on a backend to see if the username is real before accepting it.
That's certainly an option, but not to 80% of everyone using Scratch.

My point is, most people on Scratch don't even know what a HTTP request is. How can they be expected to write code in a language like Python or JavaScript (and yes, scratchattach simplifies this but even so to someone new to text-based programming it may be difficult) that uses HTTP requests, parse JSON, and makes a few checks to an API using more HTTP requests to see if a username exists.

And then you have to find somewhere to host all of this or do so on your own hardware, which may cost money to do, and self-hosting isn't an option for people using school-issued or public computers, like a lot of other Scratch users, or anyone using Scratch on a mobile device.

In other words (TL;DR): the workaround isn't accessible to the majority of people using Scratch.

Last edited by BigNate469 (Sept. 10, 2024 19:37:44)

MagicCoder330
Scratcher
1000+ posts

The (name) is a real username? Block Topic

Could checking to see if it's a real username just be incorporated into the normal block and happen automatically back end, so that it's less complex and such?

If not, I think it would fit better into sensing, and maybe do better if it was named “is real username” so it's easier for younger people to interpret.
<() is a real username? :: sensing>

Last edited by MagicCoder330 (Sept. 10, 2024 20:21:00)

banana439monkey
Scratcher
1000+ posts

The (name) is a real username? Block Topic

how taxing will this be

Banana
ametrine_
Scratcher
1000+ posts

The (name) is a real username? Block Topic

this seems like it could be confusing for people that don't know what the block does
han614698
Scratcher
1000+ posts

The (name) is a real username? Block Topic

I agree with the post above, and almost every word is going to be a Scratch username. Even a lot of gibberish like “sdfsljhdfadf” will be a username.
medians
Scratcher
1000+ posts

The (name) is a real username? Block Topic

ametrine_ wrote:

this seems like it could be confusing for people that don't know what the block does
Also, people might think it's just:
<(username) = [name]>
Also, I think people would work around this.
BigNate469
Scratcher
1000+ posts

The (name) is a real username? Block Topic

han614698 wrote:

I agree with the post above, and almost every word is going to be a Scratch username. Even a lot of gibberish like “sdfsljhdfadf” will be a username.
At time of writing @sdfsljhdfadf is not a user.

I might make that account tho

Edit: I did.

Last edited by BigNate469 (Sept. 11, 2024 00:31:10)

medians
Scratcher
1000+ posts

The (name) is a real username? Block Topic

BigNate469 wrote:

han614698 wrote:

I agree with the post above, and almost every word is going to be a Scratch username. Even a lot of gibberish like “sdfsljhdfadf” will be a username.
At time of writing @sdfsljhdfadf is not a user.

I might make that account tho

Edit: I did.
That was just an example, and by creating that username, you kinda proved the point.

Last edited by medians (Sept. 11, 2024 00:40:42)

Za-Chary
Scratcher
1000+ posts

The (name) is a real username? Block Topic

A-MARIO-PLAYER wrote:

workaround: check on a backend to see if the username is real before accepting it.
Is that a workaround or just an alternate proposed solution for the OP's stated problem?

Last edited by Za-Chary (Sept. 13, 2024 21:22:34)

QuaticB-
Scratcher
100+ posts

The (name) is a real username? Block Topic

QuaticB- wrote:

(name) is username? Block Proposal:

I have seen many cloud games remove usernames on high scores, because some users hack the cloud with an environment like JavaScript or Python and change their username to something inappropriate.

So, I am proposing a new block in the Sensing category:
<()is a real username? :: sensing>

This was the original design, but I changed it to the one above:
<() is username>

The new design is by @MagicCoder330

This block checks if the value entered is a real Scratch username or not.
Cloud game creators can use it like this:
when I receive [display tick]
if <(world record holder)is a real username? :: sensing> then
set [display] to (join (join [Highscore: ] (world record)) (join [ by ] (world record holder)))


else
set [display] to [Highscore Unavailable]
end

Scratch has moderation to remove inappropriate usernames, so if you hack into using an inappropriate username, it won’t be a real Scratch username and won’t be displayed. That way creators won’t have to remove username showing.

I think this could help cloud games a lot and developers don’t have to worry about hacked usernames anymore.
QuaticB-
Scratcher
100+ posts

The (name) is a real username? Block Topic

MagicCoder330 wrote:

Could checking to see if it's a real username just be incorporated into the normal block and happen automatically back end, so that it's less complex and such?

If not, I think it would fit better into sensing, and maybe do better if it was named “is real username” so it's easier for younger people to interpret.
<() is a real username? :: sensing>
I used your block design thanks
MagicCoder330
Scratcher
1000+ posts

The (name) is a real username? Block Topic

QuaticB- wrote:

MagicCoder330 wrote:

Could checking to see if it's a real username just be incorporated into the normal block and happen automatically back end, so that it's less complex and such?

If not, I think it would fit better into sensing, and maybe do better if it was named “is real username” so it's easier for younger people to interpret.
<() is a real username? :: sensing>
I used your block design thanks
Your welcome. But still, couldn't this just happen in the backend automatically so if people are using a VPN or something to change their name to something that doesn't exist it automatically knows and doesn't report anything?
yadayadayadagoodbye
Scratcher
1000+ posts

The (name) is a real username? Block Topic

MagicCoder330 wrote:

QuaticB- wrote:

MagicCoder330 wrote:

Could checking to see if it's a real username just be incorporated into the normal block and happen automatically back end, so that it's less complex and such?

If not, I think it would fit better into sensing, and maybe do better if it was named “is real username” so it's easier for younger people to interpret.
<() is a real username? :: sensing>
I used your block design thanks
Your welcome. But still, couldn't this just happen in the backend automatically so if people are using a VPN or something to change their name to something that doesn't exist it automatically knows and doesn't report anything?
projects that don't use backends:
MagicCoder330
Scratcher
1000+ posts

The (name) is a real username? Block Topic

yadayadayadagoodbye wrote:

(…)
projects that don't use backends:
Sorry for my bad english skills, I mean what if this was just a feature of the normal username block?

To take this a step further, if the username found isn't real the Scratcher should be considered a new scratcher for the purpose of cloud variables.

Powered by DjangoBB