FlashlightG
Key RequiredUniversal

FlashlightG

Universal ScriptGenuineTakabaGenuineTakaba 30 views 58 executesUpdated Jul 26, 2026
Unrated
00
Lua Script•167 lines (3062 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local ContextActionService = game:GetService("ContextActionService")
local RunService = game:GetService("RunService")

-------------------------
-- CONFIG
-------------------------

local CONFIG = {
	Brightness = 4,
	Range = 35,
	Angle = 70,

	MaxBattery = 100,
	DrainRate = 8,      -- Battery per second
	RechargeRate = 5,   -- Battery per second

	PCKey = Enum.KeyCode.F,
	MobileButton = true
}

-------------------------
-- PLAYER
-------------------------

local player = Players.LocalPlayer

local flashlight
local battery = CONFIG.MaxBattery
local enabled = false

-------------------------
-- GUI
-------------------------

local gui = Instance.new("ScreenGui")
gui.Name = "FlashlightGui"
gui.ResetOnSpawn = false
gui.Parent = player:WaitForChild("PlayerGui")

local batteryLabel = Instance.new("TextLabel")
batteryLabel.Size = UDim2.new(0,180,0,40)
batteryLabel.Position = UDim2.new(0.5,-90,1,-60)
batteryLabel.BackgroundTransparency = .3
batteryLabel.TextScaled = true
batteryLabel.TextColor3 = Color3.new(1,1,1)
batteryLabel.BackgroundColor3 = Color3.fromRGB(25,25,25)
batteryLabel.Parent = gui

-------------------------
-- CHARACTER
-------------------------

local function setup(character)

	local head = character:WaitForChild("Head")

	if flashlight then
		flashlight:Destroy()
	end

	flashlight = Instance.new("SpotLight")
	flashlight.Parent = head
	flashlight.Face = Enum.NormalId.Front
	flashlight.Enabled = false
	flashlight.Brightness = CONFIG.Brightness
	flashlight.Range = CONFIG.Range
	flashlight.Angle = CONFIG.Angle

end

player.CharacterAdded:Connect(setup)

if player.Character then
	setup(player.Character)
end

-------------------------
-- TOGGLE
-------------------------

local function toggle()

	if battery <= 0 then
		return
	end

	enabled = not enabled

	if flashlight then
		flashlight.Enabled = enabled
	end

end

-------------------------
-- INPUT
-------------------------

UserInputService.InputBegan:Connect(function(input,gp)

	if gp then return end

	if input.KeyCode == CONFIG.PCKey then
		toggle()
	end

end)

-------------------------
-- MOBILE BUTTON
-------------------------

if UserInputService.TouchEnabled and CONFIG.MobileButton then

	ContextActionService:BindAction(
		"Flashlight",
		function(_,state)

			if state == Enum.UserInputState.Begin then
				toggle()
			end

		end,
		true
	)

	ContextActionService:SetTitle("Flashlight","🔦")
	ContextActionService:SetPosition("Flashlight",UDim2.new(.82,0,.75,0))

end

-------------------------
-- BATTERY LOOP
-------------------------

RunService.RenderStepped:Connect(function(dt)

	if enabled then

		battery -= CONFIG.DrainRate * dt

		if battery <= 0 then

			battery = 0
			enabled = false

			if flashlight then
				flashlight.Enabled = false
			end

		end

	else

		battery += CONFIG.RechargeRate * dt

		if battery > CONFIG.MaxBattery then
			battery = CONFIG.MaxBattery
		end

	end

	batteryLabel.Text = string.format("🔋 %.0f%%",battery)

end)

Features & Information

Made by gemini and has battery

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts