(just pen & paper logic):
if hit and hit.CanCollide then -- Create spray decal local decal = Instance.new("Decal") decal.Texture = "rbxassetid://123456789" -- upload a spray splatter texture decal.Color3 = PAINT_COLOR decal.Face = Enum.NormalId.Top decal.Parent = hit -- Auto-clean after 30 seconds debris:AddItem(decal, 30) -- Optional: add sound local spraySound = Instance.new("Sound") spraySound.SoundId = "rbxassetid://9120371234" -- spray sound effect spraySound.Parent = hit spraySound:Play() debris:AddItem(spraySound, 2) end end) spray paint script
-- Raycast from camera center local mouse = player:GetMouse() local ray = Ray.new(camera.CFrame.Position, (mouse.Hit.p - camera.CFrame.Position).Unit * SPRAY_DISTANCE) local hit, pos = workspace:FindPartOnRay(ray, character) (just pen & paper logic): if hit and hit
This post breaks down — no fluff, just working examples. 1. Real-World Spray Paint Stencil Script (For Physical Murals) Before touching a can, write a stencil cutlist . This prevents over-spray and wasted paint. This prevents over-spray and wasted paint
local character = tool.Parent local camera = workspace.CurrentCamera