Skip to main content

Quick Start

Quill is a strictly and fully typed framework that lets you use providers (or services and controllers) as well as components. It is the first framework on Roblox ever to have fully typed components with full intellisense and autocomplete.

Installation

All Quill crates are available on Pesde and Wally:

Terminal
pesde add featherfall/quill_[CRATE] # Replace [CRATE] with your crate of choice, for example featherfall/quill_core

Start using Quill

You're now ready to use Quill! While most module loaders simply bootstrap services and controllers, Quill allows you to use both providers and components. Let's start with a simple provider to begin with.

provider.luau
local provider = {}

function provider.init(self: self)
-- Initialize your properties and everything that other providers may depend on here.
-- For example, you'd initialize your datastore wrapper or signals in this function.
end

function provider.start(self: self)
-- Run your providers' logic here.
-- For example, you'd put a game loop here.
end

-- Allows for easy typechecking of any properties and methods.
export type self = typeof(provider)
return provider

Now, assuming you've placed your new provider in a folder under a bootstrapper script, you can start Quill!

bootstrapper.luau
local quill = require("@pkg/quill")

quill.new()
:with_modules(script.providers:GetChildren())
:write()