0

I tried to script it so if i press "e" then it takes gravity away from you?

Asked by 2 months ago
Edited by JesseSong 2 months ago

Code:

game.Players.PlayedAdded:Connect(function(Player)
local mouse = Player:GetMouse()
mouse.KeyDown:connect(function(h)
if h == "e" then
game.Workspace.Gravity = 0
end
end)


0
Answered by 2 months ago

Hi, you can use "UserInputService" for it. Here's an example how to code an input.

local UIS = game:GetService("UserInputService")

UIS.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.e then
game:GetService("Workspace").Gravity = 0
end
end)


Possible help understanding "UserInputService" is here. Have a great day.

1
Answered by 2 months ago

I recommend that you use UserInputService to detect when a key on the keyboard is pressed, and as for the code, it is correct, but the changes made are local, so they do not affect other players outside yours.

To resolve this you must use a remoteEvent and a Script in ServerScriptService to make changes across the server.

First, create a RemoteEvent in ReplicatedStorage.

Now, programming.

In a LocalScript

local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")

local Key = "E"

UserInputService.InputBegan:Connect(function(Input)
if Input.UserInputType == Enum.UserInputType.Keyboard then
if Input.KeyCode == Enum.KeyCode[Key] then
RemoteEvent:FireServer()
end
end
end)


In a Script in ServerScriptService.

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")

RemoteEvent.OnServerEvent:Connect(function(Player)
workspace.Gravity = 0
end)


There, the gravity has been changed, jump with your character and feel the difference.

Hope this helps

:)

0
i know i just want local Mel_pro1 -9 — 2mo
0
Local scripts cant edit things in the server, they can only change things for the player, this is prevent hackers from being able to edit local scripts (which they can do, because local scripts can be accessed by the client) and then start changing the game around. generalYURASKO 99 — 2mo
0
LocalScripts are programs that operate on the ROBLOX (Client) Player Application on the user's device. This is why they have domestic control; exploiters can access them as they're situated on situated on their device. Ziffixture 6785 — 2mo
0
Answered by 2 months ago

(To preface this I want to say that I don't know how to turn off gravity for a specific player, however, there were a few big problems in what your coding, so im trying to address thoes and im gonna show you how to detect when a player presses a button)

Ok, to start your gonna need to get "User Input Service", its one of Roblox's base interactions so its easy to use. However, keep in mind UserInputService can only be called from a local script because it is referring to a specific player because a server script that runs on the server has no reason to have a UserInputService cause the server will never be inputting UserInput (I hope that makes sense)

local UserInputService = game:GetService("UserInputService")


Secondly, your gonna want to set up your EventListener, if you don't know (which I'm assuming you don't cause you did not use one) Event listeners are a way to tell Roblox to look for a specific thing to happen, so when it does, you can perform specific actions (I also hope that makes sense) In this case you're looking for the player to press "E". (so far the code is as follows)

 local UserInputSerice = game:GetService("UserInputService")
local player = game:GetService("Players").LocalPlayer

UserInputService.InputBegan:Connect(function(input)

if input.UserInputType == Enum.UserInputType.Keyboard then

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

-- Execute code in here

end

end

end)



Now, I cant explain all of this, so instead, I will direct you to a very helpful few videos that should explain some of your questions hopefully. In addition, I want to let you know that your gonna need to use remote events in order to do this, once again I can't explain all the functions of remote events but they are very important so I would suggest that they are one of the next things you learn.