Libromancer
This card can be used to Ritual Summon any "Libromancer" Ritual Monster. You must also Tribute monsters from your hand or field whose total Levels equal or exceed the Level of the Ritual Monster you Ritual Summon. If you Ritual Summon "Libromancer Fireburst" with this effect, using "Libromancer Firestarter" on the field, it cannot be destroyed, or banished, by card effects.
local CARD_ID_0 = 45001322 --Libromancer Firestarter
local CARD_ID_1 = 88106656 --Libromancer Fireburst
local SETCARD_ID_0 = 0x17c --Libromancer

local CARD_ID_0 = 45001322 --Libromancer Firestarter
local CARD_ID_1 = 88106656 --Libromancer Fireburst
local SETCARD_ID_0 = 0x17c --Libromancer
local s, id, o = GetID()
function s.initial_effect(c)
	aux.AddCodeList(c, CARD_ID_0, CARD_ID_1)
	--ritual summon
	aux.AddRitualProcGreater2(c, aux.FilterBoolFunction(Card.IsSetCard, SETCARD_ID_0), LOCATION_HAND, nil, nil, false, s.extraop)
end
function s.filter(c)
	return c:IsCode(CARD_ID_0) and c:IsPreviousLocation(LOCATION_ONFIELD)
end
function s.extraop(e, tp, eg, ep, ev, re, r, rp, tc, mat)
	if not (tc and tc:IsCode(CARD_ID_1) and mat:IsExists(s.filter, 1, nil)) then
		return
	end
	local c = e:GetHandler()
	local e1 = Effect.CreateEffect(c)
	e1:SetDescription(aux.Stringid(id, 0))
	e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
	e1:SetReset(RESET_EVENT + RESETS_STANDARD)
	e1:SetValue(1)
	tc:RegisterEffect(e1)
	local e2 = Effect.CreateEffect(c)
	e2:SetType(EFFECT_TYPE_FIELD)
	e2:SetCode(EFFECT_CANNOT_REMOVE)
	e2:SetRange(LOCATION_MZONE)
	e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
	e2:SetTargetRange(1, 1)
	e2:SetTarget(s.rmlimit)
	e2:SetReset(RESET_EVENT + RESETS_STANDARD)
	tc:RegisterEffect(e2)
end
function s.rmlimit(e, c, tp, r, re)
	return c == e:GetHandler() and r & REASON_EFFECT > 0
end


Libromancer
This card can be used to Ritual Summon any "Libromancer" Ritual Monster. You must also Tribute monsters from your hand or field whose total Levels equal or exceed the Level of the Ritual Monster you Ritual Summon. If you Ritual Summon "Libromancer Fireburst" with this effect, using "Libromancer Firestarter" on the field, it cannot be destroyed, or banished, by card effects.
-- Libromancer
local CARD_ID_0 = 45001322 --Libromancer Firestarter
local CARD_ID_1 = 88106656 --Libromancer Fireburst
local SETCARD_ID_0 = 0x17c --Libromancer
local s, id, o = GetID()
function s.initial_effect(c)
	aux.AddCodeList(c, CARD_ID_0, CARD_ID_1)
	--ritual summon
	aux.AddRitualProcGreater2(c, aux.FilterBoolFunction(Card.IsSetCard, SETCARD_ID_0), LOCATION_HAND, nil, nil, false, s.extraop)
end
function s.filter(c)
	return c:IsCode(CARD_ID_0) and c:IsPreviousLocation(LOCATION_ONFIELD)
end
function s.extraop(e, tp, eg, ep, ev, re, r, rp, tc, mat)
	if not (tc and tc:IsCode(CARD_ID_1) and mat:IsExists(s.filter, 1, nil)) then
		return
	end
	local c = e:GetHandler()
	local e1 = Effect.CreateEffect(c)
	e1:SetDescription(aux.Stringid(id, 0))
	e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
	e1:SetType(EFFECT_TYPE_SINGLE)
	e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
	e1:SetReset(RESET_EVENT + RESETS_STANDARD)
	e1:SetValue(1)
	tc:RegisterEffect(e1)
	local e2 = Effect.CreateEffect(c)
	e2:SetType(EFFECT_TYPE_FIELD)
	e2:SetCode(EFFECT_CANNOT_REMOVE)
	e2:SetRange(LOCATION_MZONE)
	e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
	e2:SetTargetRange(1, 1)
	e2:SetTarget(s.rmlimit)
	e2:SetReset(RESET_EVENT + RESETS_STANDARD)
	tc:RegisterEffect(e2)
end
function s.rmlimit(e, c, tp, r, re)
	return c == e:GetHandler() and r & REASON_EFFECT > 0
end

