Based off the below code! GameObject obj(Target); if (Caller->GetObjectType()==TYPE_PERSON && Caller->GetEquipment()!=EQUIP_FIRE_EXTINGUISHER && obj.IsValid() && obj.IsFlagSet(OF_HAS_FIRE_EXTINGUISHER)) { Person p(Caller); if(p.IsValid() && (p.IsCarryingPerson()|| p.HasCommand("HolsterWeapon") || p.IsLinkedWithPerson()|| p.GetFirehoseID()!=0 || p.IsPulling() || p.GetEnteredCarID() != -1)) return false; return true; } return false; } void PushActions(GameObject *Caller, Actor *Target, int childID) { Vector TargetPos = Target->GetTargetPoint(Caller, TARGET_EQUIPMENTDOOR); if (!Caller->IsCommandEnabled("Extinguish")) { Person p(Caller); p.EnableCommand("Extinguish", true); p.EnableCommand("Cool", true); p.EnableAutoTarget(true); } Caller->PushActionMove(ACTION_NEWLIST, TargetPos); Caller->PushActionTurnTo(ACTION_APPEND, Target); Caller->PushActionGetEquipment(ACTION_APPEND, Target, EQUIP_FIRE_EXTINGUISHER); Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_EQUIPMENT, Target, 8, false); Your looking to do the PushAction parts! of course you will half to define where the person is going to go which i belive would be this part Vector TargetPos = Target->GetTargetPoint(Caller, TARGET_EQUIPMENTDOOR); if (!Caller->IsCommandEnabled("Extinguish")) { Person p(Caller); p.EnableCommand("Extinguish", true); p.EnableCommand("Cool", true); p.EnableAutoTarget(true); }So in theory editing and put this in proper line of the scripts related to the items you mentioned would allow you to do what you wish! ( Im sure it would take some tinkering though! )