Drop-in Quest System & Framework v1.0

Drop-in quest framework with NPCs, branching, pools, leaderboards & Studio plugin. Cross-platform.
  • cover.png
  • carousel1.png
  • carousel2.png
  • carousel3.png
  • carousel4.png
  • carousel5.png
  • cover.png
  • carousel1.png
  • carousel2.png
  • carousel3.png
  • carousel4.png
  • carousel5.png

Quest & Objective System



Overview

A complete quest framework for any Roblox game. 12 objective types, 7 reward types, NPC quest givers with dialog UI, world waypoints, branching choices, difficulty variants, quest pools with daily/weekly resets, cross-server leaderboards, A/B cohorts, admin commands, webhook events, Discord webhooks, cinematic completion FX, a Studio plugin for visual editing, and DataStore-backed per-player saves.

Ships with 17+ starter quests, working NPC examples, and three layout presets — runs the moment you install it.

3 UI layouts (Modal / Tabbed / Drawer) and 6 color presets (Teal / Purple / Cyan / Gold / Crimson / Mono) — switch with one config line. Or pick "Custom" to hand-tune every color.

Open source. Plain Luau. No obfuscation. Edit any file freely.

The Engine


12 Objective Types
  • Collect — pick up tagged parts (auto-detected on tag-Touched)
  • Defeat — kill counter (you fire _G.CoreShunQuest_AddProgress from your combat code)
  • Reach — auto-detected when player enters a tagged region
  • Talk — auto-attached ProximityPrompt on tagged NPC
  • Use — auto-attached ProximityPrompt on tagged object
  • Earn — watches leaderstats currency increments
  • Touch — auto-detected on first contact with tagged part
  • Survive — stand in a tagged zone for N seconds, leaving resets timer
  • Sequence — touch a list of tagged parts in a specific order
  • TimeLimit — auto-fail if quest isn't complete within N seconds
  • Stat — auto-polled vs a player attribute or leaderstat
  • Custom — register your own polled predicate via _G.CoreShunQuest_Predicates

7 Reward Types
  • Currency — auto-creates leaderstats and adds to IntValues
  • Tool — clones a Tool from ServerStorage to backpack + StarterGear
  • Teleport — to a CFrame in this place, OR to another place via PlaceId
  • Badge — calls BadgeService:AwardBadge
  • Buff — multiplies a Humanoid stat (e.g. WalkSpeed × 2) for N seconds
  • Title — sets CSQuestTitle attribute (your nameplate script reads it)
  • Custom — buyer-defined effects via _G.CoreShunQuest_OnGrantReward

Quest Pools
  • Repeatable quests via random selection — author one pool with N candidates, system rotates fresh per-player picks on each reset
  • Daily / weekly resets — UTC-aligned scheduling
  • Anti-duplicate window — prevents same quest two cycles in a row
  • Per-player rotation — every player gets a different draw from the same pool
  • Quest reroll — let players spend currency to re-roll a daily pool, with per-cycle cap

Branching Quests
  • Choice modal on claim — player picks one of several paths
  • Deferred-claim UX — "Decide later" leaves the quest claimable; clicking Claim Reward again re-shows the modal
  • Choice tags persisted — read via _G.CoreShunQuest_GetChoiceTag(player, questId) from any script (server-side, survives rejoin via DataStore)
  • Auto-accept Next quest — chosen path's follow-up quest accepts automatically

Difficulty Variants
  • Easy / Normal / Hard (configurable) — picker modal on accept
  • Per-difficulty multipliers — scale objective targets and currency rewards independently
  • Pool quests auto-skip the picker (use the configured default)

The UI


Quest Log Panel
  • 3 layout presets — Modal (premium feel) · Tabbed (mobile-first) · Drawer (action games). Switch with one config line.
  • 6 color presets — Teal · Purple · Cyan · Gold · Crimson · Mono · Custom. Re-theme the entire UI in one line.
  • Filters + Search — search bar + status chips (All / Active / Available / Completed / Locked) at the top of the content column
  • History tab — auto-injected sidebar tab showing claimed quests sorted by recent
  • Pure scale UI — works on every device + aspect ratio. Mobile breakpoint auto-grows panel. Open button auto-relocates on touch devices.
  • Configurable hotkey — keyboard (default: J) + gamepad (default: nil)

HUD Tracker
  • Multi-quest tracking — pin multiple quests to the HUD, configurable max simultaneous (FIFO eviction at cap)
  • Per-card untrack — × button on each HUD card removes it without opening the menu
  • Compact / Detailed / Hidden HUD styles
  • Live progress — Survive ticks 0/30 → 30/30 visibly; Sequence ticks 1/3 → 2/3 → 3/3

NPC Quest Givers
  • Floating indicator — auto-renders ! (offerable) / (claim) / nothing (none) above tagged NPCs
  • Dialog UI — ProximityPrompt-triggered modal showing offered quests with Accept / Claim / Tracking buttons
  • Static + runtime registration — list NPCs in Config OR call _G.CoreShunQuest_RegisterGiver(part, quests) for dynamic ones

World Waypoints
  • 3D arrow — floating cyan ▼ above the next pending objective's tagged part, with live distance label
  • Auto-hides when the player is within HideWithinDistance studs (configurable)
  • Tracks only the player's tracked quests (configurable to show all active)
  • Sequence-aware — points to the NEXT step's part, not all of them

Cinematic Completion
  • Confetti shower — colorful particles drop from the top of the screen on completion
  • Screen flash — brief white flash that fades out
  • Panel pulse — subtle scale boost on the quest panel
  • Per-quest completion sound — override Quest.CompletionSoundId for boss-tier moments

Operations & Live-Ops


Admin Commands
  • Chat-driven moderation — gate by UserId list and/or group rank
  • /givequest <player> <questId> — bypasses prereqs
  • /completequest <player> <questId> — auto-accepts if needed
  • /resetquest / /resetall / /reroll / /quests / /help
  • Audit-logged to the server console + optional Discord webhook

Cross-Server Leaderboards
  • OrderedDataStore-backed — TotalCompletions, WeeklyCompletions, more (configurable)
  • Throttled writes — won't burn DataStore quota
  • Read API_G.CoreShunQuest_GetLeaderboard(boardId, topN)

Webhook Events
  • Discord-compatible JSON webhooks for Accept / Complete / Claim / Abandon / AdminAction events
  • Per-event toggles — only forward what you care about
  • Throttled to respect Discord's rate limits

A/B Cohorts
  • Deterministic UserId hash → bucket assignment with configurable weights (e.g. 50/50)
  • Test variant features safely on real players
  • Read API_G.CoreShunQuest_GetCohort(player)

Procedural Templates
  • {VARIABLES} in quest text — render player name, server id, objective targets, custom data
  • Built-in vars{PLAYER}, {USERNAME}, {OBJECTIVE_n}, {TARGET_n}, {REWARD_PRIMARY}, {DATE}, {SERVER}
  • Buyer-extensible — register custom vars on _G.CoreShunQuest_TemplateVars

Studio Plugin
  • Live quest browser — search, filter, click to inspect the full quest table
  • Validator — same checks the server runs at boot (duplicate IDs, broken Requires, missing categories, undefined currencies, NPC giver typos), prints to Output
  • Drop-in install — copy CoreShunQuestEditor.rbxm to your local Plugins folder

Integrations

  • NPC integration — tag a part with CSQuest_Guide (or list it in Config.QuestGivers.List), the system auto-attaches a ProximityPrompt and renders the indicator + dialog
  • Region detection — tag a region BasePart, system polls every 0.5s and progresses Reach / Survive objectives on entry
  • Currency rewards — auto-creates leaderstats. List your currencies in Config.Rewards.Currencies
  • Toast integration — auto-detected if CoreShunToast is installed; quest popups route through Toast. Falls back to built-in popups otherwise.
  • Settings Menu integration — honors reduce_motion (skips animations) and high_contrast (boosts UIStrokes) if Settings Menu is installed

DataStore Persistence

  • Per-player saves — quest progress, choice tags, completion counts, weekly buckets all persist across servers and sessions
  • Server-side sanitization — bad payloads clamped or rejected
  • Race-safe loading — synchronous load in PlayerAdded prevents race-window data loss
  • Rate-limited writes — defends against spam from misbehaving clients
  • Graceful fallback — falls back to in-memory mode if API access is off (settings still work in-session)
  • Smart shutdown flush — saves on PlayerRemoving + BindToClose without double-writing (DataStore quota safe)
  • Configurable DataStore name — change in Config.General.DataStoreName

Buyer Integration (_G Hooks)

Reading (server or client):
  • _G.CoreShunQuest_GetActive(player)
  • _G.CoreShunQuest_GetCompleted(player)
  • _G.CoreShunQuest_GetProgress(player, id)
  • _G.CoreShunQuest_IsComplete(player, id)
  • _G.CoreShunQuest_GetChoiceTag(player, id)
  • _G.CoreShunQuest_GetCohort(player)
  • _G.CoreShunQuest_GetLeaderboard(boardId, topN)

Writing (server-side):
  • _G.CoreShunQuest_Accept(player, questId)
  • _G.CoreShunQuest_Abandon(player, questId)
  • _G.CoreShunQuest_AddProgress(player, questId, objIdx, n)
  • _G.CoreShunQuest_Complete(player, questId) — force-complete
  • _G.CoreShunQuest_RerollPool(player, poolId)
  • _G.CoreShunQuest_OfferQuest(player, questId)
  • _G.CoreShunQuest_RegisterGiver(part, quests, displayName)

UI control + lifecycle (client):
  • _G.CoreShunQuest_Open / Close / Toggle
  • _G.CoreShunQuest_Track / Untrack / GetTracked
  • _G.CoreShunQuest_OpenReroll(poolId)
  • _G.CoreShunQuest_OnAccept / OnProgress / OnComplete / OnClaim / OnAbandon
  • _G.CoreShunQuest_OnGrantReward(player, action, quest) — wire custom rewards
  • _G.CoreShunQuest_OnGrantCurrency(player, currency, amount) — mirror to your own economy
  • _G.CoreShunQuest_Predicates — register polled predicates for Custom objectives
  • _G.CoreShunQuest_TemplateVars — register custom template variables

Cross-Platform

  • Desktop — mouse hover, click drag, optional keyboard hotkey (J by default)
  • Mobile — touch-friendly buttons, panel auto-grows on small screens, open button auto-relocates to right-edge middle. Uses Activated for tap-tolerance.
  • Console — D-pad navigable via Roblox's built-in GuiService, optional gamepad hotkey

What's Included

  • CoreShunQuestSystem.rbxmx — the full quest system (drop into Workspace + run installer)
  • CoreShunQuestEditor.rbxm — the Studio plugin (copy to local Plugins folder)
  • QuestConfig.lua — single config ModuleScript (the only file you edit)
  • QuestPresets.lua — 6 color palettes (extensible)
  • QuestServer.lua — DataStore + remotes + objective watchers + admin commands
  • QuestClient.lua — UI + 3 layouts + HUD + popups + cinematic FX
  • Installer.lua — one-click command bar installer
  • Manual.pdf — comprehensive feature guide
  • Cheatsheet.pdf — visual quick-reference
  • README.txt — setup + reference
  • Rojo project — for active development

Easy Installation

  1. Drag CoreShunQuestSystem.rbxmx into your place
  2. Open the Studio Command Bar
  3. Run require(workspace.CoreShunQuestSystem.Installer)()
  4. Tag NPCs / regions / objects with CSQuest_<TagName> via CollectionService
  5. Press F5 — press J or click the floating ★ button. 17+ starter quests are already wired.
  6. Optional: copy CoreShunQuestEditor.rbxm to %LOCALAPPDATA%\Roblox\Plugins\ for the Studio editor plugin

Frequently Asked


How do I add my own quests?
Open QuestConfig in ReplicatedStorage. Append to Config.Quests with an Id, Category, Name, Objectives, and Rewards. Save. Quest appears next playtest.

How do I make daily quests vary day-to-day?
Use a Quest Pool. Author 5-20 daily candidates, set MaxActive = 3, system rotates fresh picks per player on UTC midnight.

How do I add an NPC that gives quests?
Tag a BasePart with CSQuest_Guide, add an entry to Config.QuestGivers.List mapping that tag to a list of quest Ids. Done — floating "!" indicator + dialog UI auto-render.

How do I make a branching quest?
Add a Choices table to any quest. The choice modal pops up on Claim, the chosen Tag is recorded on the player, and the chosen Next quest auto-accepts.

How do I make a quest with multiple difficulty levels?
Add a Difficulties table with TargetMul + RewardMul per tier. A picker modal shows on accept; targets and rewards scale accordingly.

My NPC doesn't show a Talk prompt.
Tag the NPC's interaction part with CSQuest_<YourTag> matching the objective's Tag value. The system auto-attaches a ProximityPrompt on boot.

Region quests aren't completing.
The system uses bounding-box hit detection on the player's HRP. Make sure your tagged region is tall enough that the player's body fits inside vertically (a 1-stud-tall floor plate won't trigger; use 6+ studs height).

How do I award currency / items / teleport / titles from a quest?
Add the corresponding reward type to the Rewards table: Currency, Tool, Teleport, Badge, Buff, Title, or Custom. Manual covers the schema for each.

Quest progress resets on rejoin in Studio?
DataStores need API access enabled in Studio: File → Game Settings → Security → "Enable Studio Access to API Services". Without it, the system falls back to in-memory mode and progress is lost on stop.

Does it work on mobile and console?
Yes. Pure scale UI, mobile breakpoint auto-grows the panel, controller D-pad navigation. Open button auto-relocates to avoid Roblox's jump button. Click handlers use Activated for touch-tolerance.

Can I use my own image as the open button?
Yes. Set Config.OpenButton.Style = "Image" and provide ImageId = "rbxassetid://YOUR_ID".

Can I disable a feature I don't want?
Yes — every feature section (QuestGivers, Waypoints, Branching, Difficulty, Filters, History, Reroll, Admin, Cinematic, Leaderboards, Cohorts, Webhooks, Templates) has an Enabled flag. Toggle off and the rest of the system adapts.

Can I open the menu from my own button?
Yes. Call _G.CoreShunQuest_Open() from any LocalScript.

Will it conflict with my existing systems?
It uses its own DataStore name and Remotes folder. Tag names use the CSQuest_ prefix to avoid collisions.

Open source?
Fully. Plain Luau, no obfuscation. Edit any file to customize.

Pairs Well With

  • Daily Rewards — daily quests + daily login = full retention loop
  • Toast — quest popups route through Toast automatically when installed
  • Settings Menu — reduce-motion + high-contrast settings honored

More Tools by coreshun

  • In-Game Systems — Settings Menu, Music Player (premium), Simple Music Player, Daily Rewards, Loading Screen, Advanced Chat System, Toast, Anti-Exploit, AutoRejoin, Codes Redemption
  • Studio Plugins — Color Picker, UI Wireframe, Gamepass Manager, TODO Tracker (free)
  • Bundles — up to 45% off
Browse all: builtbybit.com/creators/coreshun

Support

Discord: discord.com/invite/hdB5tadkk8


$9.99 · 12 objective types · 7 reward types · NPC givers · Waypoints · Branching · Difficulty · Cinematics · Leaderboards · Studio plugin · Open source
Buy a license now
$9.99
EULA
Standard EULA
Use on any projects you own with attribution
Support
Standard
Includes:
Download the resource
Access new updates
Support from the creator
Support duration
1 year
Share and earn
Refer this resource and earn a 40% commission.
257 Views
6 Purchases
7 Downloads
May 6, 2026 Published
N/A Updated
Not yet rated
940 KB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. System
  1. Menu & UI
Genre
  1. Roleplay
  1. Adventure
  1. Open world
Supported languages
  1. English
Creator
Recommended for you
Stop exploiters in their tracks with 9 server-authoritative detections.
Not yet rated
34 purchases
A fully configurable Chat Tags, Name Colors, Team Chat & Anti-Spam System built on TextChatService
Not yet rated
27 purchases
Drop-in settings menu. Center modal, 4 widgets, DataStore saves, sound FX, all platforms.
5.00 star(s) 1 ratings
16 purchases
A Roblox Studio plugin with color picking, color scheme generators, eyedropper, apply to selections.
Not yet rated
2 purchases
Award XP in one line. The engine owns the curve, rewards, prestige, saving, and the UI.
Not yet rated
0 purchases
Share and earn
Refer this resource and earn a 40% commission.
257 Views
6 Purchases
7 Downloads
May 6, 2026 Published
N/A Updated
Not yet rated
940 KB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. System
  1. Menu & UI
Genre
  1. Roleplay
  1. Adventure
  1. Open world
Supported languages
  1. English
Creator
Recommended for you
Stop exploiters in their tracks with 9 server-authoritative detections.
Not yet rated
34 purchases
A fully configurable Chat Tags, Name Colors, Team Chat & Anti-Spam System built on TextChatService
Not yet rated
27 purchases
Drop-in settings menu. Center modal, 4 widgets, DataStore saves, sound FX, all platforms.
5.00 star(s) 1 ratings
16 purchases
A Roblox Studio plugin with color picking, color scheme generators, eyedropper, apply to selections.
Not yet rated
2 purchases
Award XP in one line. The engine owns the curve, rewards, prestige, saving, and the UI.
Not yet rated
0 purchases
Top