function Create(self) local thisID = ToActor(self).ID local MoObj for i = 1, MovableMan:GetMOIDCount() do if (i ~= thisID) and (MovableMan:GetRootMOID(i) == thisID) then -- an obj without a parent has ID == RootID MoObj = MovableMan:GetMOFromID(i) if MoObj.PresetName == "Maximilian Head" then -- Name of the actor's HEAD here. self.Head = ToAttachable(MoObj) break end end end self.fired = false; end function Update(self) if self:GetController():IsState(Controller.WEAPON_FIRE) and self.Head:IsAttached() and self.fired == false then local Emitter = CreateAEmitter("Maximilian Talon", "Maximilian.rte") -- Name of the emitter and .rte here. Emitter.Vel = self.Vel if self.HFlipped then Emitter.RotAngle = self.Head.RotAngle + 3.1415 else Emitter.RotAngle = self.Head.RotAngle end Emitter.Pos = self.Head.Pos + self.Head:RotateOffset(Vector(0, 36)) -- Use self.EyePos instead? Probably no need. MovableMan:AddParticle(Emitter) self.fired = true; end if self:IsPlayerControlled() == false then self:GetController():SetState(Controller.BODY_CROUCH, false); end local Ctrl = self:GetController(); if Ctrl:IsState(Controller.BODY_JUMPSTART) then else self.AngularVel = self.AngularVel * 0.75; end if not self:GetController():IsState(Controller.WEAPON_FIRE) then self.fired = false; end end