Rescue
Cannot be Special Summoned from the Deck. You can banish this card you control; Special Summon 2 Level 4 or lower Normal Monsters with the same name from your Deck, but destroy them during the End Phase. You can only use this effect of "Rescue Rabbit" once per turn.
local CARD_ID_0 = 59822133 --Blue-Eyes Spirit Dragon

local CARD_ID_0 = 59822133 --Blue-Eyes Spirit Dragon
local s, id, o = GetID()
function s.initial_effect(c)
	--cannot special summon
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE + EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
	e1:SetRange(LOCATION_DECK)
	e1:SetCode(EFFECT_SPSUMMON_CONDITION)
	c:RegisterEffect(e1)
	--special summon
	local e2 = Effect.CreateEffect(c)
	e2:SetDescription(aux.Stringid(id, 0))
	e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
	e2:SetType(EFFECT_TYPE_IGNITION)
	e2:SetRange(LOCATION_MZONE)
	e2:SetCountLimit(1, id)
	e2:SetCost(s.spcost)
	e2:SetTarget(s.sptg)
	e2:SetOperation(s.spop)
	c:RegisterEffect(e2)
end
function s.spcost(e, tp, eg, ep, ev, re, r, rp, chk)
	if chk == 0 then
		return e:GetHandler():IsAbleToRemoveAsCost()
	end
	Duel.Remove(e:GetHandler(), POS_FACEUP, REASON_COST)
end
function s.filter(c, e, tp)
	return c:IsType(TYPE_NORMAL) and c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e, 0, tp, false, false)
end
function s.filter2(c, g)
	return g:IsExists(Card.IsCode, 1, c, c:GetCode())
end
function s.sptg(e, tp, eg, ep, ev, re, r, rp, chk)
	if chk == 0 then
		local g = Duel.GetMatchingGroup(s.filter, tp, LOCATION_DECK, 0, nil, e, tp)
		return not Duel.IsPlayerAffectedByEffect(tp, CARD_ID_0) and Duel.GetMZoneCount(tp, e:GetHandler()) > 1 and g:IsExists(s.filter2, 1, nil, g)
	end
	Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, nil, 2, tp, LOCATION_DECK)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
	if Duel.IsPlayerAffectedByEffect(tp, CARD_ID_0) then
		return
	end
	if Duel.GetLocationCount(tp, LOCATION_MZONE) < 2 then
		return
	end
	local g = Duel.GetMatchingGroup(s.filter, tp, LOCATION_DECK, 0, nil, e, tp)
	local dg = g:Filter(s.filter2, nil, g)
	if dg:GetCount() >= 1 then
		local fid = e:GetHandler():GetFieldID()
		Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SPSUMMON)
		local sg = dg:Select(tp, 1, 1, nil)
		local tc1 = sg:GetFirst()
		dg:RemoveCard(tc1)
		local tc2 = dg:Filter(Card.IsCode, nil, tc1:GetCode()):GetFirst()
		Duel.SpecialSummonStep(tc1, 0, tp, tp, false, false, POS_FACEUP)
		Duel.SpecialSummonStep(tc2, 0, tp, tp, false, false, POS_FACEUP)
		tc1:RegisterFlagEffect(id, RESET_EVENT + RESETS_STANDARD, 0, 1, fid)
		tc2:RegisterFlagEffect(id, RESET_EVENT + RESETS_STANDARD, 0, 1, fid)
		Duel.SpecialSummonComplete()
		sg:AddCard(tc2)
		sg:KeepAlive()
		local e1 = Effect.CreateEffect(e:GetHandler())
		e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
		e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
		e1:SetCode(EVENT_PHASE + PHASE_END)
		e1:SetCountLimit(1)
		e1:SetLabel(fid)
		e1:SetLabelObject(sg)
		e1:SetCondition(s.descon)
		e1:SetOperation(s.desop)
		Duel.RegisterEffect(e1, tp)
	end
end
function s.desfilter(c, fid)
	return c:GetFlagEffectLabel(id) == fid
end
function s.descon(e, tp, eg, ep, ev, re, r, rp)
	local g = e:GetLabelObject()
	if not g:IsExists(s.desfilter, 1, nil, e:GetLabel()) then
		g:DeleteGroup()
		e:Reset()
		return false
	else
		return true
	end
end
function s.desop(e, tp, eg, ep, ev, re, r, rp)
	local g = e:GetLabelObject()
	local tg = g:Filter(s.desfilter, nil, e:GetLabel())
	Duel.Destroy(tg, REASON_EFFECT)
end


Rescue
Cannot be Special Summoned from the Deck. You can banish this card you control; Special Summon 2 Level 4 or lower Normal Monsters with the same name from your Deck, but destroy them during the End Phase. You can only use this effect of "Rescue Rabbit" once per turn.
-- Rescue
local CARD_ID_0 = 59822133 --Blue-Eyes Spirit Dragon
local s, id, o = GetID()
function s.initial_effect(c)
	--cannot special summon
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE + EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
	e1:SetRange(LOCATION_DECK)
	e1:SetCode(EFFECT_SPSUMMON_CONDITION)
	c:RegisterEffect(e1)
	--special summon
	local e2 = Effect.CreateEffect(c)
	e2:SetDescription(aux.Stringid(id, 0))
	e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
	e2:SetType(EFFECT_TYPE_IGNITION)
	e2:SetRange(LOCATION_MZONE)
	e2:SetCountLimit(1, id)
	e2:SetCost(s.spcost)
	e2:SetTarget(s.sptg)
	e2:SetOperation(s.spop)
	c:RegisterEffect(e2)
end
function s.spcost(e, tp, eg, ep, ev, re, r, rp, chk)
	if chk == 0 then
		return e:GetHandler():IsAbleToRemoveAsCost()
	end
	Duel.Remove(e:GetHandler(), POS_FACEUP, REASON_COST)
end
function s.filter(c, e, tp)
	return c:IsType(TYPE_NORMAL) and c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e, 0, tp, false, false)
end
function s.filter2(c, g)
	return g:IsExists(Card.IsCode, 1, c, c:GetCode())
end
function s.sptg(e, tp, eg, ep, ev, re, r, rp, chk)
	if chk == 0 then
		local g = Duel.GetMatchingGroup(s.filter, tp, LOCATION_DECK, 0, nil, e, tp)
		return not Duel.IsPlayerAffectedByEffect(tp, CARD_ID_0) and Duel.GetMZoneCount(tp, e:GetHandler()) > 1 and g:IsExists(s.filter2, 1, nil, g)
	end
	Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, nil, 2, tp, LOCATION_DECK)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
	if Duel.IsPlayerAffectedByEffect(tp, CARD_ID_0) then
		return
	end
	if Duel.GetLocationCount(tp, LOCATION_MZONE) < 2 then
		return
	end
	local g = Duel.GetMatchingGroup(s.filter, tp, LOCATION_DECK, 0, nil, e, tp)
	local dg = g:Filter(s.filter2, nil, g)
	if dg:GetCount() >= 1 then
		local fid = e:GetHandler():GetFieldID()
		Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SPSUMMON)
		local sg = dg:Select(tp, 1, 1, nil)
		local tc1 = sg:GetFirst()
		dg:RemoveCard(tc1)
		local tc2 = dg:Filter(Card.IsCode, nil, tc1:GetCode()):GetFirst()
		Duel.SpecialSummonStep(tc1, 0, tp, tp, false, false, POS_FACEUP)
		Duel.SpecialSummonStep(tc2, 0, tp, tp, false, false, POS_FACEUP)
		tc1:RegisterFlagEffect(id, RESET_EVENT + RESETS_STANDARD, 0, 1, fid)
		tc2:RegisterFlagEffect(id, RESET_EVENT + RESETS_STANDARD, 0, 1, fid)
		Duel.SpecialSummonComplete()
		sg:AddCard(tc2)
		sg:KeepAlive()
		local e1 = Effect.CreateEffect(e:GetHandler())
		e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
		e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
		e1:SetCode(EVENT_PHASE + PHASE_END)
		e1:SetCountLimit(1)
		e1:SetLabel(fid)
		e1:SetLabelObject(sg)
		e1:SetCondition(s.descon)
		e1:SetOperation(s.desop)
		Duel.RegisterEffect(e1, tp)
	end
end
function s.desfilter(c, fid)
	return c:GetFlagEffectLabel(id) == fid
end
function s.descon(e, tp, eg, ep, ev, re, r, rp)
	local g = e:GetLabelObject()
	if not g:IsExists(s.desfilter, 1, nil, e:GetLabel()) then
		g:DeleteGroup()
		e:Reset()
		return false
	else
		return true
	end
end
function s.desop(e, tp, eg, ep, ev, re, r, rp)
	local g = e:GetLabelObject()
	local tg = g:Filter(s.desfilter, nil, e:GetLabel())
	Duel.Destroy(tg, REASON_EFFECT)
end

