Roblox China Protest UI

This model has the capability to load dynamic code on the server if the creator so desires to, by updating the model on the website with some payload:

This is absolutely egregious for a model like this because all it is meant to do is show a UI. Nobody should be adding this in their games, it’s a huge security risk. Please think about the security of your users when designing modules, this doesn’t need hot reloading, very dodgy.

19 Likes

:man_facepalming: You clearly missed the point.

Please read this again mate.

Well, you missed my point too.

If you are angry with the government, don’t take it out on the people.
Don’t take politics to a game that’s meant for fun and friendship.

Don’t punish players just because they originate from a country.
If you have something against a government, take it to twitter, don’t take it here on Roblox.

1 Like

That’s honestly sad, I think this is good because then we get newer community members from more parts of the world. And it also could expand some people’s player base.

1 Like

First of all, you make it sound like Roblox is the only game that they play when it isn’t.
Secondly, he isn’t saying to remove the programme completely so you missed that point as well.

I never said Roblox is the only game. What?

He doesn’t have the ability to remove a Roblox programme even if he wanted to.

I’m just saying it’s both a waste of time and not a nice thing to bring toxicity to Roblox. We should be happy that we are taking more members into our community, we are reaching a wider market. We shouldn’t be restricting them just because some people don’t like the government of a country.

Keep roblox a fun and loving place. Don’t spread hate. Keep politics out.

This is a valid concern, and, I understand why you have it. I will address it immediately and post an update in a few minutes. This came down to my general development style but I do see what you’re saying, I tend to dislike using static entries, but, you’re absolutely correct. I apologize, I have no intent to execute code haha.

While I find this to be kind of messy personally, I will convert the module’s functionality to an ObjectValue (to access the text content) and a BooleanValue for the disable switch, that way I am not requiring a module or inserting the model into a place where scripts will load. I will still leave the module there, since, its the intended API for accessing text content. Thanks.

If you’re wondering why, that’s explained in the topic. If I need to update the text content, I request it from the module which indicates the path to the text content. Additionally, its used for the global disable switch.

I never said you said that.

Irrelevant

How is protesting about something that could have potential massive implications on Roblox a toxic thing? He is just trying to raise awareness.

It’s not about whether you like them or not. It’s about the highly unethical and immoral practices they do which is very concerning. It’s like Roblox working with North Korea for example. I’m pretty sure that would be quite concerning so why isn’t this?

EDIT: Sorry if this came across as point scoring. I’m going to give my stance on this. I understand what Roblox is trying to do in terms of accessing a big market that has high profitability. However, they have to be very cautious because they are dealing with a government that is currently doing serious HR violations and is known for their unethical practices (e.g. intellectual property theft). How they go about that is up to them but they just have to be careful.

1 Like

I agree with this 100%, I am happy for them to be a part of this now and let them be a part of some game developer’s player base, but this is more for saying, “Hey, We have some material in this game that is not allowed in China, Sorry for the inconvenience!”

2 Likes

This has now been fixed and the module is on V2.
The UI can no longer potentially load remote code.

Thanks for this concern, please let me know if you have further issues:

-- This script handles retrieving updated content automatically
local InsertService = game:GetService("InsertService")


local ASSET_ID = 6342603104

local Gui = script.Parent
local Configuration = Gui:WaitForChild("Configuration")

local optOutOfGlobalSwitch = Configuration:WaitForChild("GlobalSwitchOptOut").Value

local Content = require(Gui:WaitForChild("ContentUtil"))

local assetVersionId = InsertService:GetLatestAssetVersionAsync(ASSET_ID)
local RobloxChinaUI = InsertService:LoadAssetVersion(assetVersionId):GetChildren()[1]

local function outOfDate()
	warn("[ChinaNonCompliancyUI] The Roblox China Non-Compliancy UI may be out of date. Check for updates on the devforum page. https://devforum.roblox.com/t/china-non-compliancy-ui-protesting-roblox-china-problems/1023728")
end

if RobloxChinaUI then
	-- Removed due to remote code execution concern from @buildthomas
	
	--local ContentUtil = RobloxChinaUI:FindFirstChild("ContentUtil")
	
	--if ContentUtil then
		--local UpdatedContent = require(ContentUtil)
		
		--if UpdatedContent then
		--	if not optOutOfGlobalSwitch then
		--		if UpdatedContent.GlobalDisable then
		--			Gui:Destroy()
		--			return
		--		end
		--	end
			
		--	if UpdatedContent.VersionId ~= Content.VersionId then
		--		outOfDate()
		--	end
			
		--	Content:Update(UpdatedContent:Retrieve())
		--end
	--else
	--	outOfDate()
	--end

	local TextReference = RobloxChinaUI:FindFirstChild("TextReference")
	local GlobalDisable = RobloxChinaUI:FindFirstChild("GlobalDisable")
	local VersionId = RobloxChinaUI:FindFirstChild("VersionId")
	
	if TextReference and GlobalDisable and VersionId then
		local text = TextReference.Value
		local newVersion = VersionId.Value
		
		if not optOutOfGlobalSwitch then
			if GlobalDisable.Value then
				Gui:Destroy()
				return
			end
		end
		
		if Content.VersionId ~= newVersion then
			outOfDate()
		end
		
		if text and text:IsA("TextLabel") then
			Content:Update(text.Text)
		end
	end
else
	outOfDate()
end

Isn’t it easier to just not apply in order to boycott the programme, rather than inconvenience players who most likely don’t know or don’t care about Roblox entering China?

I appreciate what you’re trying to do, but I think you’d be more likely to hurt your own gameplay by doing something like this.

2 Likes

I have partly addressed this already, and I share your concern.

This UI is meant for people who want to voice their opinion on the platform, if you are concerned about it being annoying to players, that’s valid, and you don’t have to use it. I am in no way meaning to imply that using this UI is by any means necessary to protest Roblox China. This is as optional as entering the program.

I designed the UI to be as unobtrusive as possible in terms of its behaviour, as, I do have the same concern. It will only display once upon join, and won’t show up again until you rejoin the game.

This is also why I have some of the previously mentioned features planned, because, again, I agree with your concern, I don’t want the UI to be annoying to players who don’t care.

1 Like

If the statements regarding Tencent are true, then this would indeed be horrible for us independent developers - a huge company can very easily steal game ideas from small developers, without the developers being able to retaliate against them.
Could you add citation on the sources that state as such, though? I’m not saying you would lie, but receiving validation is important in this age nevertheless.

I had actually just updated the UI to fix this, I felt it was better to remove it entirely, as, it didn’t feel necessary, I just forgot to update the screenshot. This should be fixed in 30 seconds give or take. :smile:

Edit: The screenshot is now updated!

I was referring to this, i.e the thread itself;

2 Likes

Ah, thank you! :smile:
I’ll update this section.

I have updated the relevant section slightly and included several articles at the bottom of my post now, let me know if there is anything else I can do.

3 Likes

Are you making this because of actual, logical reasons, or political opinions? I don’t like the Chinese Communist Party, and how the treat the protesters in Hong Kong, but many people in China (Kids) would LOVE to play ROBLOX! I just feel like this is illogical and just something no one would use.

3 Likes

Asking users to go offsite is a violation of the ToS as this message will be displayed to users under the age of 13 and may cause COPPA compliant issues.

Needless to say, I think that this thread is neither productive nor needed, the china program is a program you apply for & accept to roll into.

3 Likes

How? devforum links are allowed on roblox.com, otherwise #bulletin-board wouldn’t exist.