How to make a place only accessible by teleport

Hello,

Let’s say I have place1 and place2. I want place2 to only be accessible by teleporting to it from place1. I have already implemented the teleporting feature, but I can also access place2 from the main ROBLOX page, which is not what I want.

nvm apparently there's an option in the creator dashboard. see below reply. To view my initial reply. Click anywhere along this text to view my initial post

I believe that you would need to add a script, which listens for PlayerAdded and examines the join data of the player (using Player:GetJoinData()), then kicks anyone who doesn’t meet the requirements.

For example:

local WhitelistedPlace = 12345678 -- Place1

game.Players.PlayerAdded:Connect(function(plr)
	local JoinData = plr:GetJoinData()
	
	if JoinData.SourcePlaceId ~= WhitelistedPlace then
		plr:Kick("Forbidden join method")
	end
end)

Disable direct joining of places within the experience.

I think there’s also a way to enable/disable this within a place, but I can’t find the feature lol sorry

Ok, so I disabled that for place2, but it turns out place2 is not just a place but an experience too. I only want place1 to be an experience, how do I do this?

Like I guess a hierarchy for what I want would look like this:

Place1 (Experience and start place)
|
V
Place2 (Place)

Sorry, I am having trouble understanding your explanation. Is place2 nested under place1?

Place2 is a place inside of place1, which is the start place and experience

Did you create a place2 using the New Experience on the roblox studio homepage? Or using the assets manager?

Im pretty sure I made it using the New Experience on the homepage.

In that case, you’ll need to save it as a new place in Place1, so that they are both contained within the same experience. (Failing that, I guess my initial reply may still be relevent)

Use asset manager in roblox studio, to create subplace, then copy it id and paste as placeid. Subplace won’t show at continue.