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

The input KeyCode E does not work, there are no errors in output?

local crate = game.Workspace.Items["Supply Crate"]
local player = game.Players.LocalPlayer
local UIS = game:GetService("UserInputService")
local inventory = game.StarterGui.SupplyInv
local plrinv = game.StarterGui.Inventory
local isOpened = false
local Character = player.Character or player.CharacterAdded:Wait()


-- Build a "RaycastParams" object and cast the ray
local Range = 100
local ray = Ray.new(Character.Head.Position, Character.Head.CFrame.LookVector * Range)
local hit = game.WorkSpace.Items:FindPartOnRay(ray)


UIS.InputBegan:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.E  then
		print("E has been pressed!")
		local part = hit.Parent
		if hit and part == crate then	
				print("Found Crate")
				inventory.Enabled = true
				plrinv.Enabled = true
				isOpened = true			
		end
	end	
end)

Nothing is working with the script, the printing does even work when i press E. there is no errors in outpost also tried changing it from E to something else and still didn't work

1 answer

if input.KeyCode == Enum.KeyCode.E  then

Isnt an event. This piece of code just asks if input.KeyCode (nil) == Enum.KeyCode.E (nil) => (true)

So the code should be smthg like this :

local function IsEKeyDown()
	if UserInputService:IsKeyDown(Enum.KeyCode.E) then
		return true
	end
end

UIS.InputBegan:Connect(function(input)
	while true do
		if IsEKeyDown() then
			print("E has been pressed!")
			local part = hit.Parent
			if hit and part == crate then  
				print("Found Crate")
				inventory.Enabled = true
				plrinv.Enabled = true
				isOpened = true        
			end
		end
	end	
end)

2 comments

0

This still doesn't work

0

My script is a local script in starter player scripts if that changes anything?

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