Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Equip katana, press "v" to turn invisible?

Hey so I'm making a katana for a ninja and I want it to be stealthy. I want it so when you equip the Katana, and press 'v', you turn invisible for 10 seconds

I already tried, but the code doesn't work. Can someone help me out?

local player = game.Players.LocalPlayer
local mouse = player:GetMouse()

local function onKeyDown(key)
if key == "v" then
	print("v")
	local c = script.Parent.Parent:GetChildren(c)
		if c:IsA('Part') then
			c.Transparency = 1
		wait(10)
			c.Transparency = 0
		end
	end
end

3 comments

0

Even if this works, you never even called the function

1 answer

To change your invisibility you'd need to use RemoteEvents for it to be seen by all clients. Also, you need to use a for loop in the server so that it will update all the parts of the player.

LocalScript:

--Add a new remote event in ReplicatedStorage.
local ReplicatedStorage = game.GetService("ReplicatedStorage")
local Remote = ReplicatedStorage:WaitForChild("RemoteEvent")

--This is the portion of your script, use UserInputService instead of GetMouse() next time but it is not the point of this discussion currently.


local function onKeyDown(key)
if key == "v" then
	--Fire the remote event to the server.
	Remote:FireServer()
end


Server Script:

--ReplicatedStorage and the RemoteEvent.
local ReplicatedStorage = game.GetService("ReplicatedStorage")
local Remote = ReplicatedStorage:WaitForChild("RemoteEvent")

--Listen for connections from the client. 'player' is a default argument.
Remote.OnServerEvent:Connect(function(player)
	--Get the player's character.
	local body = player:WaitForChild("Character"):GetChildren()

	--This is a generic for loop that you did wrong.
	--Turn all invisible.
	for _,v in pairs(body) do
		if v:IsA("BasePart") then
			v.Transparency = 1
		end
	end
	wait(10)
	--Turn back to visible.
	for _,v in pairs(body) do
		if v:IsA("BasePart") then
			v.Transparency = 0
		end
	end
end)

If it does not work, please let me know as I did not test it beforehand.

This discussion is preserved as it was. New answers, comments, and votes are closed.