Creating daily quests is something which gets asked a lot - depending on how exactly you want to do it, this is currently either very hard or very easy to do.
Option 1: Accept or finish a quest no more than once a day
If by "daily" quest you mean that you want a player to be able to finish or accept specific quest no more than once a day, this is very easy to do! Simply set the accept cooldown of a quest to 1 day:
/qa/qaAdmin commands for NotQuestsediteditOpens subcommands for editing a specific quest.questName<quest>Identifier of the quest to edit; use /qa list to see available quests.Acceptsquest nameExamplequestNameacceptCooldownacceptCooldownConfigures the cooldown before this quest can be accepted again.completecompleteApplies this cooldown after quest completion.setsetSets the cooldown players must wait after completing this quest before accepting it again.1d<duration>New cooldown duration, such as 30s, 500ms, 10m, or 2h.AcceptsdurationExample1d
Option 2: Daily quest from a predefined quest pool
If you want to have multiple quests set, and every day, the player can pick and finish one of them, this is possible but a lot harder to do in notquests! There is currently a system in the works to make that work very easily - but it's currently not done.
Since notquests is built to be super powerful, it's possible now nonetheless - just in a more complex way. Here's how:
Say you have Quest A and B which should be in the daily pool (you can set it to be weekly or monthly as well for weekly or daily quests).
Give them a 1 day cooldown: /qa/qaAdmin commands for NotQuestsediteditOpens subcommands for editing a specific quest.A<quest>Identifier of the quest to edit; use /qa list to see available quests.Acceptsquest nameExampleAacceptCooldownacceptCooldownConfigures the cooldown before this quest can be accepted again.completecompleteApplies this cooldown after quest completion.setsetSets the cooldown players must wait after completing this quest before accepting it again.1d<duration>New cooldown duration, such as 30s, 500ms, 10m, or 2h.AcceptsdurationExample1d and /qa/qaAdmin commands for NotQuestsediteditOpens subcommands for editing a specific quest.B<quest>Identifier of the quest to edit; use /qa list to see available quests.Acceptsquest nameExampleBacceptCooldownacceptCooldownConfigures the cooldown before this quest can be accepted again.completecompleteApplies this cooldown after quest completion.setsetSets the cooldown players must wait after completing this quest before accepting it again.1d<duration>New cooldown duration, such as 30s, 500ms, 10m, or 2h.AcceptsdurationExample1d
Create two actions which give you the Quest when executed: /qa/qaAdmin commands for NotQuestsactionsactionsManages saved actions, inline actions, and action execution.addaddCreates a new saved action.giveQuestA<actionName>Name used to save this action.Acceptsaction nameExamplegiveQuestAGiveQuestGiveQuestGives another quest to the target player.A<quest>Quest that should be given to the target player.AcceptstextExampleA and
/qa/qaAdmin commands for NotQuestsactionsactionsManages saved actions, inline actions, and action execution.addaddCreates a new saved action.giveQuestB<actionName>Name used to save this action.Acceptsaction nameExamplegiveQuestBGiveQuestGiveQuestGives another quest to the target player.B<quest>Quest that should be given to the target player.AcceptstextExampleB
Create an Action action which executes either Action giveQuestA or giveQuestB randomly: /qa/qaAdmin commands for NotQuestsactionsactionsManages saved actions, inline actions, and action execution.addaddCreates a new saved action.giveDailyQuest<actionName>Name used to save this action.Acceptsaction nameExamplegiveDailyQuestActionActionExecutes one or more saved actions, optionally multiple times or as a random subset.giveQuestA,giveQuestB<actions>Saved action name or comma-separated saved action names to execute.AcceptsstringListExamplegiveQuestA,giveQuestB1<amount>Number of times to execute the selected saved actions.AcceptsintegerExample1--minRandom--minRandomMinimum number of referenced actions to randomly choose each time this action runs.Acceptsinteger1Value for --minRandomMinimum number of referenced actions to randomly choose each time this action runs.AcceptsintegerExample1--maxRandom--maxRandomMaximum number of referenced actions to randomly choose each time this action runs.Acceptsinteger1Value for --maxRandomMaximum number of referenced actions to randomly choose each time this action runs.AcceptsintegerExample1
Without the --minRandom 1 --maxRandom 1 flags it would execute both actions and thus give you both Quests. With these flags however, it only chooses 1 random one out of those.
Add two conditions to this Action action so it executes only when neither A or B are on cooldown: /qa/qaAdmin commands for NotQuestsactionsactionsManages saved actions, inline actions, and action execution.editeditOpens subcommands for editing a saved action.giveDailyQuest<action>Identifier of the saved action to edit; use /qa actions to list saved actions.Acceptssaved action nameExamplegiveDailyQuestconditionsconditionsManages conditions required before the selected action can run.addaddAdds a condition to the selected saved action.QuestOnCooldownQuestOnCooldownChecks whether the selected quest is currently on cooldown for the target player.A<Quest>Quest identifier to check.AcceptstextExampleAequals<operator>How to compare the selected boolean variable: equals, and, or.Acceptscomparison operatorExampleequalsfalse<expression>Boolean value or expression to compare with the selected variable value.AcceptstextExamplefalse and
/qa/qaAdmin commands for NotQuestsactionsactionsManages saved actions, inline actions, and action execution.editeditOpens subcommands for editing a saved action.giveDailyQuest<action>Identifier of the saved action to edit; use /qa actions to list saved actions.Acceptssaved action nameExamplegiveDailyQuestconditionsconditionsManages conditions required before the selected action can run.addaddAdds a condition to the selected saved action.QuestOnCooldownQuestOnCooldownChecks whether the selected quest is currently on cooldown for the target player.B<Quest>Quest identifier to check.AcceptstextExampleBequals<operator>How to compare the selected boolean variable: equals, and, or.Acceptscomparison operatorExampleequalsfalse<expression>Boolean value or expression to compare with the selected variable value.AcceptstextExamplefalse
Execute the action like this. Should do exactly what you want with the daily Quest pool: /qa/qaAdmin commands for NotQuestsactionsactionsManages saved actions, inline actions, and action execution.editeditOpens subcommands for editing a saved action.giveDailyQuest<action>Identifier of the saved action to edit; use /qa actions to list saved actions.Acceptssaved action nameExamplegiveDailyQuestexecuteexecuteExecutes the selected action or command.
You can put this command anywhere - e.g. with the citizens plugin, you could make an npc run that command for a certain player