Ok so, im trying to make a script to where if a player touched a part, their limbs would be engulfed in flames. Currently this is my script:
game.Workspace.bodycolor.Head.Touched:Connect(function() function
end)
The problem is I dont know how to setup the function command. Im doing the fire thing separately because im a beginner and dont know much. Im guessing the command would be:
function.game.workspace.bodycolor.head.effect = fire (or whatever its called) also bodycolor is the name of the test humanoid I am using.
Can anyone please help me?
Hello it's me. c:
Now with introductions out of the way lol, let's get into this.
This answer's to be used as a reference
For what you're trying to accomplish, you require to use the Touched
event of an object (or part), which listens for when another object touches it, and returns said part that touches. Here's an example of that;
Part.Touched:Connect(function(PartThatTouched) -- The `PartThatTouched` is, well, the part that touched the part. lol print('I was stepped on by ' .. PartThatTouched.Name .. '! Ack!') -- This should print as a result. XP end)
Poor Mr Part. :c Oh well. lol Now comes the fun part. >:)
With the Touched
event, since it returns the object, we can check whether or not the object belongs to a player via the GetPlayerFromCharacter
method. :o What it does's it retrieves the player if it was a player that was touching it, if not it'll return nil. We can use this to aid us in our conquest! :D Just be aware, we can't just check if the object's apart of the player's character's just simply by giving the method the object itself, we need to check it's parent, since it's inside the player's character.
Part.Touched:Connect(function(PartThatTouched) local ThePlayerThatTouched = Players:GetPlayerFromCharacter(PartThatTouched.Parent) if ThePlayerThatTouched then print(ThePlayerThatTouched.Name .. ' stepped on me! >:(') end end)
And, if you checked the output, it should print X stepped on me! >:(
Now, I think we're all done here...
HANG ON!
Oh no, not this again. :c
You forgot something!
What's it?
You didn't explain how to give the player fire!
Oh yeah... lol
Now, since we're now able to tell whether or not touched the object was a player, we can simply loop through the player's character and apply fire to him.
for i, v in pairs(Player.Character:GetChildren()) do -- Loops through the player's character; the `GetChildren` method returns a with what was within the player's character, and the for loop loops through said table. if v:IsA('BasePart') then -- Checks if `v` (the current item in the last at that iteration) was an object. If so... print('I\'m a part! :D') -- This should print into the output. end end
Ok, now we should be done.
NO U
Dangit. >.<
You forgot to apply the fire!
Right, right.
Now, all we need to do's apply the fire. We can accomplish this by using the Instance.new
function, where it'll create a new object. (I don't recommend using it's second parameter though, as it's been deprecated.)
local Fire = Instance.new('Fire') Fire.Parent = Object -- Just me, or is it getting a *little* hot in here?
Now we should all be done. Are we?
Yay!
Ok. :p
Stuff touched on, but never really explained
Touched
- Fires when an object touches another, and returns the part that touched.
GetPlayerFromCharacter
- Checks to see if what was given was a player's character; if so, it'll return the player, and if not it'll return nil.
For Loops
- For the loop used in this answer, click here. To quote, the dev hub, "The for loop is a way of running a command or set of commands a set number of times."
GetChildren
- Returns a table with the children that were within the parent.
IsA
- Returns whether an object was a specific class, such as if it was a Part
or Fire
.
Instance.new
- Best I could find. XP What it does's it creates a new object, to put very simply.
If you have anymore questions, please let me know. ;)
You're question makes no sense:/ If your trying to see if the brick touched the player then do
script.Parent.Touched:Connect(function(part)-- Put this in the brick that you want the touch event to active local Parent = part.Parent if game.Players:GetPlayerFromCharacter(Parent) then Instance.New("Fire").Parent = Parent.Head end end)
I edited it to match your question