Hey, i want to make a mini game that will use gui for this,it will change player script when u click a or d, to make a walk animaiton,
but problem is that script says "aw is not a valid member of ScreenGui “StarterGui.ScreenGui”, while aw is a part of screengui, here’s a script
local aw = game.StarterGui.ScreenGui.aw
local UserInputService = game:GetService("UserInputService")
local ScreenGui = game.StarterGui.ScreenGui
UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
if key == Enum.KeyCode.W then game.StarterGui.ScreenGui.aw = (if UserInputService:IsKeyDown(Enum.KeyCode.W) then game.StarterGui.ScreenGui.aw.Image == "rbxassetid://9508139738" else game.StarterGui.ScreenGui.aw.Image == "rbxassetid://9508563011")
elseif key == Enum.KeyCode.A then game.StarterGui.ScreenGui.aw = (if UserInputService:IsKeyDown(Enum.KeyCode.A) then game.StarterGui.ScreenGui.aw.Image == "rbxassetid://9508563011" else game.StarterGui.ScreenGui.aw.Image == "rbxassetid://9508139738")
elseif key == Enum.KeyCode.S then game.StarterGui.ScreenGui.aw = (if UserInputService:IsKeyDown(Enum.KeyCode.S) then game.StarterGui.ScreenGui.aw.Image == "rbxassetid://9508139738" else game.StarterGui.ScreenGui.aw.Image == "rbxassetid://9508563011")
elseif key == Enum.KeyCode.D then game.StarterGui.ScreenGui.aw = (if UserInputService:IsKeyDown(Enum.KeyCode.D) then game.StarterGui.ScreenGui.aw.Image == "rbxassetid://9508563011" else game.StarterGui.ScreenGui.aw.Image == "rbxassetid://9508139738")
end
end
end)
Why it says like that?
Also, when i use only one equals there
it emphasizes, also elseif, and key
First off, if you want to change the GUI for a player, you would change the Player.PlayerGui, not the StarterGui. Next, your “if” statements are all wrong. You can not have multiple "then"s in a single statement. Conditional Statements. Lastly, please make your “if” statements into multi-line code. It is very hard to read and will become confusing very quickly as it is.
local UIS = game:GetService("UserInputService") UIS.InputBegan:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
if key == Enum.KeyCode.W then
game.StarterGui.ScreenGui:WaitForChild("aw") if UIS:IsKeyDown(Enum.KeyCode.W) then game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508139738" else game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508563011" end
elseif key == Enum.KeyCode.A then game.StarterGui.ScreenGui:WaitForChild("aw") if UIS:IsKeyDown(Enum.KeyCode.A) then game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508563011" else game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508139738" end
elseif key == Enum.KeyCode.S then game.StarterGui.ScreenGui:WaitForChild("aw") if UIS:IsKeyDown(Enum.KeyCode.S) then game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508139738" else game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508563011" end
elseif key == Enum.KeyCode.D then game.StarterGui.ScreenGui:WaitForChild("aw") if UIS:IsKeyDown(Enum.KeyCode.D) then game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508563011" else game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508139738" end
end
end
end)
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local aw = game.StarterGui.ScreenGui.aw
local ScreenGui = game.Players.LocalPlayer.PlayerGui.ScreenGui
local posX = 0
local posY = 0
local velocityX = 0
local velocityY = 0
local mover = script.Parent
local speed = 100
RunService.RenderStepped:Connect(function(dt)
posX = posX + velocityX * dt * speed
posY = posY + velocityY * dt * speed
mover.Position = UDim2.new(
0, posX,
0, posY
)
end)
local UIS = game:GetService("UserInputService") UIS.InputBegan:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
if key == Enum.KeyCode.W then
game.StarterGui.ScreenGui:WaitForChild("aw") if UIS:IsKeyDown(Enum.KeyCode.W) then game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508139738" else game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508563011" end
elseif key == Enum.KeyCode.A then game.StarterGui.ScreenGui:WaitForChild("aw") if UIS:IsKeyDown(Enum.KeyCode.A) then game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508563011" else game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508139738" end
elseif key == Enum.KeyCode.S then game.StarterGui.ScreenGui:WaitForChild("aw") if UIS:IsKeyDown(Enum.KeyCode.S) then game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508139738" else game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508563011" end
elseif key == Enum.KeyCode.D then game.StarterGui.ScreenGui:WaitForChild("aw") if UIS:IsKeyDown(Enum.KeyCode.D) then game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508563011" else game.StarterGui.ScreenGui.aw.Image = "rbxassetid://9508139738" end
end
end
end)
UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
if key == Enum.KeyCode.W then velocityY = (if UserInputService:IsKeyDown(Enum.KeyCode.S) then 0 else -1)
elseif key == Enum.KeyCode.A then velocityX = (if UserInputService:IsKeyDown(Enum.KeyCode.D) then 0 else -1)
elseif key == Enum.KeyCode.S then velocityY = (if UserInputService:IsKeyDown(Enum.KeyCode.W) then 0 else 1)
elseif key == Enum.KeyCode.D then velocityX = (if UserInputService:IsKeyDown(Enum.KeyCode.A) then 0 else 1)
end
end
end)
UserInputService.InputEnded:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
if key == Enum.KeyCode.W then velocityY = (if UserInputService:IsKeyDown(Enum.KeyCode.S) then 1 else 0)
elseif key == Enum.KeyCode.A then velocityX = (if UserInputService:IsKeyDown(Enum.KeyCode.D) then 1 else 0)
elseif key == Enum.KeyCode.S then velocityY = (if UserInputService:IsKeyDown(Enum.KeyCode.W) then -1 else 0)
elseif key == Enum.KeyCode.D then velocityX = (if UserInputService:IsKeyDown(Enum.KeyCode.A) then -1 else 0)
end
end
end)