Kembali

VIP DOOR SYSTEM

lua Uploaded by Neo 4 views 03 Jun 2026

Script VIP Door System ini berfungsi untuk membuat pintu khusus yang hanya bisa dilewati oleh player pemilik Gamepass VIP. Ketika player menyentuh pintu, sistem akan mengecek apakah player memiliki gamepass tertentu. Jika memiliki, pintu akan terbuka sementara. Jika tidak memiliki, player akan ditahan dan dapat diarahkan untuk membeli gamepass. Cocok digunakan untuk VIP Room, lounge eksklusif, area premium, club map, hangout map, roleplay, lobby, atau fitur khusus dalam game Roblox.

VIP DOOR SYSTEM LUA
--[[
	VIP Door Script
	Author  : NEOBLOX
	License : MIT

	Description:
	Script pintu VIP berbasis Gamepass.
	Player yang memiliki gamepass bisa melewati pintu.
	Player yang tidak memiliki gamepass akan tertahan.

	Place:
	Masukkan Script ini ke dalam Part Door.

	Setup:
	1. Buat Part sebagai pintu.
	2. Masukkan Script ini ke dalam Part tersebut.
	3. Ganti GAMEPASS_ID dengan ID gamepass VIP kamu.
]]

local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")

local door = script.Parent
local GAMEPASS_ID = 123456789 -- Ganti dengan Gamepass ID kamu

local DEFAULT_TRANSPARENCY = 0.35
local OPEN_TRANSPARENCY = 0.75
local OPEN_TIME = 1.5

door.Transparency = DEFAULT_TRANSPARENCY
door.CanCollide = true

local debounce = {}

local function playerHasGamepass(player)
	local success, result = pcall(function()
		return MarketplaceService:UserOwnsGamePassAsync(player.UserId, GAMEPASS_ID)
	end)

	if success then
		return result
	end

	warn("Gagal mengecek gamepass untuk:", player.Name)
	return false
end

local function openDoorForPlayer(player)
	if debounce[player.UserId] then
		return
	end

	debounce[player.UserId] = true

	door.CanCollide = false
	door.Transparency = OPEN_TRANSPARENCY

	task.wait(OPEN_TIME)

	door.CanCollide = true
	door.Transparency = DEFAULT_TRANSPARENCY

	task.wait(0.5)
	debounce[player.UserId] = nil
end

door.Touched:Connect(function(hit)
	local character = hit.Parent
	local humanoid = character and character:FindFirstChildOfClass("Humanoid")

	if not humanoid then
		return
	end

	local player = Players:GetPlayerFromCharacter(character)

	if not player then
		return
	end

	if playerHasGamepass(player) then
		openDoorForPlayer(player)
	else
		-- Opsional: tampilkan prompt beli gamepass
		MarketplaceService:PromptGamePassPurchase(player, GAMEPASS_ID)
	end
end)