so i have been trying to make a script that changes your trail colour (through remote event), however when i try to set the colour for the trail i get an error saying attemp to index nil with ImageColor3, i understand why it is happening, however i am unsure how to fix it, the code below is what i have so far.
my sever script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local event = ReplicatedStorage:WaitForChild("lightningcolor")
local function colour(player)
player.Character.Head.trailOuter.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.Head.trailInner.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.Head.trailLight.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.Head.lightningParticle.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.UpperTorso.trailOuter.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.UpperTorso.trailInner.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.UpperTorso.trailLight.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.UpperTorso.lightningParticle.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightUpperLeg.trailOuter.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightUpperLeg.trailInner.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightUpperLeg.trailLight.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightUpperLeg.lightningParticle.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightUpperArm.trailOuter.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightUpperArm.trailInner.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightUpperArm.trailLight.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightUpperArm.lightningParticle.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightHand.trailOuter.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightHand.trailInner.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightHand.trailLight.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightHand.lightningParticle.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightFoot.trailOuter.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightFoot.trailInner.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightFoot.trailLight.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.RightFoot.lightningParticle.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftUpperLeg.trailOuter.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftUpperLeg.trailInner.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftUpperLeg.trailLight.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftUpperLeg.lightningParticle.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftUpperArm.trailOuter.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftUpperArm.trailInner.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftUpperArm.trailLight.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftUpperArm.lightningParticle.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftHand.trailOuter.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftHand.trailInner.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftHand.trailLight.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftHand.lightningParticle.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftFoot.trailOuter.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftFoot.trailInner.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftFoot.trailLight.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
player.Character.LeftFoot.lightningParticle.Color = ColorSequence.new(_G.colourDisplay.ImageColor3)
end
event.OnServerEvent:Connect(colour)
MY localScript
local colourWheel = script.Parent:WaitForChild("ColourWheel")
local wheelPicker = colourWheel:WaitForChild("Picker")
local darknessPicker = script.Parent:WaitForChild("DarknessPicker")
local darknessSlider = darknessPicker:WaitForChild("Slider")
_G.colourDisplay = script.Parent:WaitForChild("ColourDisplay")
local replicatedstorage = game:GetService("ReplicatedStorage")
local event = replicatedstorage:WaitForChild("lightningcolor")
local uis = game:GetService("UserInputService")
local player = game.Players.LocalPlayer
local buttonDown = false
local movingSlider = false
local function updateColour(centreOfWheel)
local colourPickerCentre = Vector2.new(
colourWheel.Picker.AbsolutePosition.X + (colourWheel.Picker.AbsoluteSize.X/2),
colourWheel.Picker.AbsolutePosition.Y + (colourWheel.Picker.AbsoluteSize.Y/2)
)
local h = (math.pi - math.atan2(colourPickerCentre.Y - centreOfWheel.Y, colourPickerCentre.X - centreOfWheel.X)) / (math.pi * 2)
local s = (centreOfWheel - colourPickerCentre).Magnitude / (colourWheel.AbsoluteSize.X/2)
local v = math.abs((darknessSlider.AbsolutePosition.Y - darknessPicker.AbsolutePosition.Y) / darknessPicker.AbsoluteSize.Y - 1)
_G.hsv = Color3.fromHSV(math.clamp(h, 0, 1), math.clamp(s, 0, 1), math.clamp(v, 0, 1))
_G.colourDisplay.ImageColor3 = _G.hsv
darknessPicker.UIGradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, _G.hsv),
ColorSequenceKeypoint.new(1, Color3.new(0, 0, 0))
}
event:FireServer()
end
colourWheel.MouseButton1Down:Connect(function()
buttonDown = true
end)
darknessPicker.MouseButton1Down:Connect(function()
movingSlider = true
end)
uis.InputEnded:Connect(function(input)
if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end
buttonDown = false
movingSlider = false
_G.colourDisplay.Visible = false
end)
uis.InputChanged:Connect(function(input)
if input.UserInputType ~= Enum.UserInputType.MouseMovement then return end
local mousePos = uis:GetMouseLocation() - Vector2.new(0, game:GetService("GuiService"):GetGuiInset().Y)
local centreOfWheel = Vector2.new(colourWheel.AbsolutePosition.X + (colourWheel.AbsoluteSize.X/2), colourWheel.AbsolutePosition.Y + (colourWheel.AbsoluteSize.Y/2))
local distanceFromWheel = (mousePos - centreOfWheel).Magnitude
if distanceFromWheel <= colourWheel.AbsoluteSize.X/2 and buttonDown then
wheelPicker.Position = UDim2.new(0, mousePos.X - colourWheel.AbsolutePosition.X, 0, mousePos.Y - colourWheel.AbsolutePosition.Y)
_G.colourDisplay.Visible = true
_G.colourDisplay.Position = UDim2.new(0.750, mousePos.X - colourWheel.AbsolutePosition.X, -0.02, mousePos.Y - colourWheel.AbsolutePosition.Y )
elseif movingSlider then
darknessSlider.Position = UDim2.new(darknessSlider.Position.X.Scale, 0, 0,
math.clamp(
mousePos.Y - darknessPicker.AbsolutePosition.Y,
0,
darknessPicker.AbsoluteSize.Y)
)
end
updateColour(centreOfWheel)
end)

2 comments
That is incorrect. The person already has a remote event. Remote events are used to communicate from server to client vice-versa.
hello thankyou for your reply, i fixed it , it was just a spelling error :D