local ReplicatedStorage = game:GetService("ReplicatedStorage")
local duplicate = ReplicatedStorage:WaitForChild("duplicate")
 
script.Parent.MouseButton1Click:connect(function()
duplicate:FireServer()
end)

--localscript (this one works fine)

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local duplicate = ReplicatedStorage:WaitForChild("duplicate")
local PaintingLandscape = workspace.PaintingLandscape
local pasteEvent = game.ReplicatedStorage.paste
 
local function onClone(player)
	local clonepainting = PaintingLandscape:Clone()
	clonepainting.Name = "Canvas"
	clonepainting.Position = Vector3.new(TAGS)
	clonepainting.Parent = game.Workspace
	local cloneGUI = player.PlayerGui.Studio.Canvas:Clone()
	TAGS = "Painting"
	cloneGUI.Parent = game.ReplicatedStorage
	cloneGUI.Adornee = clonepainting
	pasteEvent:FireAllClients() -- this one doesn't work
end

duplicate.OnServerEvent:connect(onClone)

-- serverscript

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local pasteEvent = ReplicatedStorage:WaitForChild("paste")
local painting = game.ReplicatedStorage.Painting
 
local function onPaste()
	local clone = painting:Clone()
	clone.Parent = player.PlayerGui
	clone.Adornee = workspace.Canvas
end
 
pasteEvent.OnClientEvent:Connect(onPaste)

-- paste event local script does not fire and idk why

Why won't the client event fire?