void main()
{


// Remove items from the player's inventory
object oItemToTake = GetItemPossessedBy(GetPCSpeaker(), "px_strangekey");
object oForge = OBJECT_SELF;

if((GetIsObjectValid(oItemToTake) == TRUE) && (GetObjectByTag("px_prototype_wargolem")!=OBJECT_INVALID))
        {
        object oTarget = GetObjectByTag("px_prototype_wargolem");
        effect eDec = EffectAttackDecrease(d12(1), ATTACK_BONUS_MISC);

        DestroyObject(oItemToTake);
        SetLocalInt(OBJECT_SELF, "sBurn", 1);
        AssignCommand(oForge, DelayCommand(0.2,ActionPlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE)));
        SoundObjectStop(GetNearestObjectByTag("fr_pax_forge"));

        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDec, oTarget);
        ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_SOUND_BURST),OBJECT_SELF,10.0);
        AssignCommand(oForge, DelayCommand(60.0,ActionPlayAnimation(ANIMATION_PLACEABLE_ACTIVATE)));
        }
else
    SpeakString("[The Forge is not hot enough to melt your key yet.]",TALKVOLUME_TALK);
}