✓ Accepted answer
GENERAL PRACTICE
Use :GetService() to retrieve the Players Service
ISSUES
The parameter of the .Touched event is the part that touched the connecting part. With this in mind, if the player touches this part, then the "dar" is whatever part of the character touched the script's parent, and "dar.Parent" is the Character Model of the Player
The :GetPlayerFromCharacter() function uses the character model to find the player, so you'll need to change the parameter of the :GetPlayerFromCharacter from "dar" (the part) to dar.Parent (the character model)
REVISED SERVER / LOCAL SCRIPT
script.Parent.Touched:Connect(function(dar)
if game:GetService("Players"):GetPlayerFromCharacter(dar.Parent) then
local f = Instance.new("Fire")
f.Parent = dar
print("hmm ok")
end
end)
This script will place fires onto every part that touches it, if you only want a single fire to be created on each part, you can use an if-then to check that there is not already a fire on the part.
SUGGESTED SERVER / LOCAL SCRIPT
script.Parent.Touched:Connect(function(dar)
if game:GetService("Players"):GetPlayerFromCharacter(dar.Parent) then
if dar:FindFirstChild("Fire") == nil then
local f = Instance.new("Fire")
f.Parent = dar
print("hmm ok")
end
end
end)
2 comments
Well, the first thing you should know is that Touched passes the part that touched the part firing the event as its argument. Secondly, you're attempting to make a Fire instance in the part that touched the firing part.
do dar.Parent for the getplayerfromcharacter because of the reasoning above ^