Particle Hats in Pointshop

I’ve been trying to get particles working on hats in my server, the particles are in fine but it draws on the player and is very distracting.


game.AddParticles("particles/item_fx.pcf")
ITEM.Name = 'Skull - Hearts'
ITEM.Price = 40000
ITEM.Model = 'models/Gibs/HGIBS.mdl'
ITEM.Attachment = 'eyes'
ITEM.Particle = "superrare_circling_heart"

PrecacheParticleSystem(ITEM.Particle)

function ITEM:OnEquip(ply, modifications)
	ply:PS_AddClientsideModel(self.ID)
	ParticleEffectAttach(self.Particle, PATTACH_POINT_FOLLOW, ply, ply:LookupAttachment("eyes"))
end

function ITEM:OnHolster(ply)
	ply:PS_RemoveClientsideModel(self.ID)
	ply:StopParticles()
end

function ITEM:ModifyClientsideModel(ply, model, pos, ang)
	model:SetModelScale(1.6, 0)
	pos = pos + (ang:Forward() * -2.5)
	ang:RotateAroundAxis(ang:Right(), -15)
	
	return model, pos, ang
end


How do I hide it from only the local player while keeping it applied for everyone else to see? Thanks in advance.

You could send net messages to all of the clients except for the user to trigger the particles clientside.

You’d send a table of all the players excluding the user.

You’d want to broadcast a net message to all the players except the user from serverside to trigger it on equip, so you’d want to remove the function(s) from the OnEquip hook clientside.
Then you’d receive the net message clientside and trigger it from there.

Thanks for the suggestion but that seems like a very complicated solution to a simple problem, can anyone else help?



game.AddParticles("particles/item_fx.pcf")
ITEM.Name = 'Skull - ghosts'
ITEM.Price = 40000
ITEM.Model = 'models/Gibs/HGIBS.mdl'
ITEM.Attachment = 'eyes'
ITEM.Particle = "superrare_ghosts"

PrecacheParticleSystem(ITEM.Particle)

function ITEM:OnEquip(ply, modifications)
	ply:PS_AddClientsideModel(self.ID)
	ParticleEffectAttach(self.Particle, PATTACH_POINT_FOLLOW, ply, ply:LookupAttachment("eyes"))
	ply:SendLua("timer.Simple(1, function() LocalPlayer():StopParticles() end)")
end

function ITEM:OnHolster(ply)
	ply:PS_RemoveClientsideModel(self.ID)
	ply:StopParticles()
end

function ITEM:ModifyClientsideModel(ply, model, pos, ang)
	model:SetModelScale(1.6, 0)
	pos = pos + (ang:Forward() * -2.5)
	ang:RotateAroundAxis(ang:Right(), -15)
	
	return model, pos, ang
end


Do not use circling things cos them do ot disappear with StopParticles()

It’s not really complicated at all, it’s just simple net messages.
The solution above would stop all particles.

This Worked! thank you!

It stops all particles only for self. And only on clientside. Other players still can see particles.

Well yes that much can be assumed, but it will also stop other particles you may not have wanted to stop.

Isn’t this a CoderHire addon?

I believe it’s pointshop which is publicly available.

It’s just simple method. With net commands you can make clientside particle emitter and control only particle you need.

I see the skull, but no particle at all :v:

Mount tf2

Hmm, I do already have it installed and tested, I’ll try non-singleplayer

Player, who wear this item d not see self particles. But when item on other player, you can see particle effect.