{"id":"featherfall-org/quill","name":"quill","scope":"featherfall-org","platform":"roblox","description":"A lightweight yet extremely powerful game framework.","version":"0.1.0-alpha","latest":"0.1.0-alpha","versions":["0.1.0-alpha"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"e2399959eb5cd7d3e871a0b2816c23b389bba10cea57f0eaccc935cbbc4b18e1","likes":0,"downloads":0,"install":"forest install featherfall-org/quill","url":"https://forest.dev/p/roblox/featherfall-org/quill","files":"https://api.forest.dev/ai/package/roblox/featherfall-org/quill/files","readme":"<h1 align=\"center\">\r\n\t<a href=\"https://featherfall.gitbook.io/quill\">\r\n\t\t<img src=\"images/logo.png\" alt=\"Reflex\" width=\"200\" />\r\n\t</a>\r\n\t<br />\r\n\t<b>Quill</b>\r\n</h1>\r\n\r\n<div align=\"center\">\r\n\r\nThe <b>best</b> all-in-one lightweight Roblox game framework.\r\n \r\n</div>\r\n\r\n---\r\n\r\n&nbsp;\r\n\r\n## 🪶 Quill\r\n\r\n**Quill** is a book-inspired Roblox game framework inspired by [Sapphire](https://github.com/Mark-Marks/sapphire), designed to simplify your workflow's setup.\r\n\r\nYou can use Quill for Chapters (services/controllers) and Characters (components). Eventually, you will be able to use Quill to handle networking, data saving, and will be able to add your own extensions.\r\n\r\n&nbsp;\r\n\r\n## 📦 Installation\r\n\r\nThis package is available for Wally and Pesde.\r\n\r\n```toml\r\n# wally.toml\r\n[dependencies]\r\nquill = \"featherfall-org/quill@0.1.0-alpha\"\r\n\r\n#pesde.toml\r\n[dependencies]\r\nquill = { wally = \"featherfall-org/quill\", version = \"0.1.0-alpha\" }\r\n```\r\n\r\n&nbsp;\r\n\r\n## 📚 Getting Started\r\n\r\n[Take me to the documentation →](https://featherfall.gitbook.io/quill)\r\n\r\n### 🚀 Start using Quill\r\n\r\nQuill requires some sort of bootstrapper to launch your lifecycle hooks. You can start by making bootstrappers for the server and client.\r\n\r\n```lua\r\nlocal quill = require(path.to.quill)\r\n\r\nquill()\r\n    :register_chapters(script.chapters)\r\n    :register_characters(script.characters)\r\n    :begin_reading()\r\n```\r\n\r\n### 📖 Using Chapters\r\n\r\nNow that you have made your bootstrappers, you can begin writing your Chapters. Here's what a Chapter might look like:\r\n\r\n```lua\r\nlocal Players = game:GetService(\"Players\")\r\n\r\nlocal example = {\r\n    priority = 1,\r\n}\r\n\r\nfunction example:player_added(player: Player)\r\n    print(player.Name .. \" has joined the game!\")\r\nend\r\n\r\nfunction example:state_something(statement: string)\r\n    print(statement)\r\nend\r\n\r\nfunction example:init()\r\n    Players.PlayerAdded:Connect(function(player)\r\n        self:player_added(player)\r\n    end)\r\nend\r\n\r\nreturn example\r\n```\r\n\r\n### 👤 Using Characters\r\n\r\nYou may also want to include components in your workflow; Quill provides components that are called Characters. Here's what a Character might look like:\r\n\r\n```lua\r\nlocal example = {\r\n    tag = \"Example_Tag\",\r\n}\r\n\r\nfunction example:init()\r\n    print(\"Character is attached to \" .. self.instance:GetFullName())\r\nend\r\n\r\nfunction example:destroy()\r\n    print(\"Character \" .. self.instance:GetFullName() .. \" has been destroyed!\")\r\nend\r\n\r\nreturn example\r\n```\r\n\r\n&nbsp;\r\n\r\n## 📺 Credits\r\n\r\nCredits go to [Mark-Marks](https://github.com/Mark-Marks) for the creation of Sapphire and its architecture, which is what Quill draws its inspiration from, and [littensy](https://github.com/littensy) for the documentation and README inspiration.\r\n\r\n&nbsp;\r\n\r\n## 📝 License\r\n\r\nQuill is licensed under the [MIT License](LICENSE.md).","readmeTruncated":false}