The argument AnswerFuns is exactly what you want here. The purpose of this list input is to specify how the observed responses are translated into suitable scoring forms for each respective item. Here's a trivial example reflecting how this works:
options <- matrix(c("Strongly Disagree", "Disagree", "Neutral", "Agree", "Strongly Agree"),
nrow = 3, ncol = 5, byrow = TRUE)
questions <- c("Building CATs with mirtCAT is difficult.",
"mirtCAT requires a substantial amount of coding.",
"I would use mirtCAT in my research.")
df <- data.frame(Question = questions, Option=options, Type = 'checkbox')
AnswerFuns <- as.list(rep(NA, nrow(df)))
AnswerFuns[[1]] <- function(text) all(text %in% c("Strongly Disagree", "Disagree"))
AnswerFuns[[2]] <- function(text) all(text == "Neutral")
AnswerFuns[[3]] <- function(text) all(text == "Strongly Agree")
results <- mirtCAT(df = df, AnswerFuns=AnswerFuns)
summary(results)
The first question will only be given a 1 if the first two categories (and only the first two categories) are selected; otherwise, it will give a 0 (note that TRUE and FALSE evaluate to 1 and 0 in R, respectively. Though you can use this idea to return other numbers as well). The next two functions really aren't needed since they are supported within the df object directly, but demonstrate how this same line of reasoning can be applied to other items in the pool. HTH, and let me know if you have any questions.