so i have been using these line of code
1 | local Players = game:GetService( "Players" ).PlayerAdded Players:Connect( function (Player) |
2 | Player.CharacterAdded:Connect( function (Character) |
3 | if Var = = true then |
4 | --Do something(note:this will always be nil and doesnt do anything) |
5 | else |
6 | --Do something else |
7 | end |
8 | end ) |
9 | end ) |
and i notice that if statements here just dont work normally like its suppose to in them
can anybody explain why?
also im not asking the code to be fixed
==== WARNING! THIS IS ARCHIVED ANSWER =====
I am not sure about the code you're writing and I don't know how to explain the solution. Anyway here's the code to fix
Solution Code
1 | local Players = game:GetService( "Players" ) |
2 | Players.PlayerAdded:Connect( function (Player) |
3 | Player.CharacterAdded:Connect( function (Character) |
4 | -- my code |
5 | end ) |
6 | end ) |
You can't save an event in a variable and then call it later like the code below
1 | local Players = game: GetService( "Players" ).PlayerAdded |
2 |
3 | Players:Connect( function (Player) |
4 | -- This is simplified code |
5 | end ) |
I don't know why but it just happens that you can't save an event into a variable and then make a variable (event) connect function.
Happy Scripting!
==== REWRITTEN ANSWER ====
You are trying to check something that never exists. It's possible that you never declared the variable which when the script tries to check then it will return nil
because the variable never exists.
Fixed Code (Note: Using Var
as true
)
01 | local Var = = true |
02 | local Players = game:GetService( "Players" ).PlayerAdded |
03 |
04 | Players:Connect( function (Player) |
05 | Player.CharacterAdded:Connect( function (Character) |
06 | if Var = = true then |
07 | --Do something(Trigger this because it have detected variable and it's true) |
08 | else |
09 | --Do something else |
10 | end |
11 | end ) |
12 | end ) |
In the future, you may want to try and check if the things you are checking actually exists if it never exists then it will return nil
. You can even use if var == nil then
and it will trigger this condition.
Happy Scripting!
Not sure what you're asking as your Var
is nil in this example so asking if nil == true
won't work as nil
is actually false
or nothing
to properly use an if statement you need to compare non nil things for example the following code checks to see if the player that joined is named TGazza and if so then print out a hello
otherwise, it will print out hello stranger
..
Code:
01 | --// String based! |
02 | local Admin = "TGazza" -- change this to your name, has to match exactly! |
03 | -- Ie tGazza wont work nor tgazza !! |
04 | local Players = game:GetService( "Players" ).PlayerAdded Players:Connect( function (Player) |
05 | Player.CharacterAdded:Connect( function (Character) |
06 | if Player.Name = = Admin then |
07 | print ( "Hai Boss!" ) |
08 | --Do something(note:this will always be nil and doesnt do anything) |
09 | else |
10 | print ( "Hello Stranger!" ) |
11 | --Do something else |
12 | end |
13 | end ) |
14 | end ) |
Another example:
01 | --// Number based |
02 | local UserID = 158811 -- Your userId |
03 |
04 | local Players = game:GetService( "Players" ).PlayerAdded Players:Connect( function (Player) |
05 | Player.CharacterAdded:Connect( function (Character) |
06 | if Player.UserId = = UserID then |
07 | print ( "Hai Boss!" ) |
08 | --Do something(note:this will always be nil and doesnt do anything) |
09 | else |
10 | print ( "Hello Stranger!" ) |
11 | --Do something else |
12 | end |
13 | end ) |
14 | end ) |
etc...
Link to a Roblox Lua tutorial on Youtube from Roblox: https://www.youtube.com/watch?v=0LiaEDui2vE
Hope this helps!