{"id":21803343,"url":"https://github.com/tru-dev/veritalib","last_synced_at":"2025-10-27T20:35:27.768Z","repository":{"id":59335960,"uuid":"528210652","full_name":"Tru-Dev/VeritaLib","owner":"Tru-Dev","description":"VeritaLib is a framework meant for use in LuaSTG Sub.","archived":false,"fork":false,"pushed_at":"2022-09-17T22:16:30.000Z","size":150,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-26T04:11:16.299Z","etag":null,"topics":["game","lua","luastg","shmup","touhou"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tru-Dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-24T00:39:48.000Z","updated_at":"2022-09-13T16:18:08.000Z","dependencies_parsed_at":"2022-09-24T18:10:57.512Z","dependency_job_id":null,"html_url":"https://github.com/Tru-Dev/VeritaLib","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tru-Dev%2FVeritaLib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tru-Dev%2FVeritaLib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tru-Dev%2FVeritaLib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tru-Dev%2FVeritaLib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tru-Dev","download_url":"https://codeload.github.com/Tru-Dev/VeritaLib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244752571,"owners_count":20504316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game","lua","luastg","shmup","touhou"],"created_at":"2024-11-27T11:41:42.011Z","updated_at":"2025-10-27T20:35:27.689Z","avatar_url":"https://github.com/Tru-Dev.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VeritaLib for LuaSTG Sub\n*Unlocking the power of LuaSTG.*\n\nVeritaLib is a framework meant for use in LuaSTG Sub.\n\n- [Download/Setup](#downloadsetup)\n- [Usage](#usage)\n- [Documentation](#documentation)\n- [Features (work in progress)](#features-work-in-progress)\n- [FAQ](#faq)\n- [License](#license)\n- [Credits](#credits)\n\n## Download/Setup\nHead over to the [releases page](https://github.com/Tru-Dev/VeritaLib/releases/latest) and download\nthe first zip file in the list. It should include a\n[specially-designed copy of LuaSTG Sub](https://github.com/Tru-Dev/LuaSTG-Sub/tree/verita) and a\ncopy of VeritaLib.\n\nVeritaLib uses a Lua preprocessor (run by LuaSTG itself) to allow easy customization. A\ndescription of the options is available [here](https://github.com/Tru-Dev/VeritaLib/wiki/Configuration-Reference).\nThey are also defined and described in `vlib_conf.lua`, feel free to edit them as needed.\n\nThe project is configured to build and debug automatically under Visual Studio Code.\nIt should prompt you to install the recommended extensions if you do not already have them.\n\nIf you do not use VS Code, then you can run the provided batch files to launch and build VeritaLib.\nThe batch files do not have any external dependencies aside from LuaSTG itself.\n\n## Usage\nWhen you have built VeritaLib with your preferred settings, add a `main.lua` file to your source tree\n(along with VeritaLib's files). A minimal tree should look like this:\n\n- Your project folder\n  - `res`: Resource folder\n  - `src`: Source code folder\n    - `VeritaLib`: Built VeritaLib code folder\n    - `loader.lua`: Smart Lua Loader, required by VeritaLib\n    - `main.lua`: LuaSTG entrypoint\n\nAt the top of your `main.lua`, you should at least add this line:\n```lua\nlstg.DoFile(\"src/loader.lua\")\n```\nThis will add a custom loader to the modules system to allow relative imports.\n\nIf you want to use VeritaLib, you'll probably want to require it:\n```lua\nlocal vlib = require(\"VeritaLib\")\n```\n\nVeritaLib uses a scenes system to manage global resources and state.  \nHere's a basic scene:\n```lua\nlocal Scene = vlib.Core.Scene\n\nlocal scene_hello = Scene.New {\n    init = function(self)\n        lstg.LoadTTF(\"Arial\", \"C:/Windows/Fonts/arial.ttf\", 64, 64)\n    end,\n    render = function(self)\n        lstg.RenderClear(lstg.Color(0xFF222222))\n        lstg.RenderTTF(\n            \"Arial\", \"Hello, World!\",\n            vlib.screen.width / 2, vlib.screen.width / 2,\n            vlib.screen.height / 2, vlib.screen.height / 2,\n            5, lstg.Color(0xFFFFFFFF), 2\n        )\n    end\n}\n\nScene.Set(scene_hello)\n```\n\nYou can read more about using VeritaLib in the documentation.\n\n## Documentation\nSee [the repo's wiki](https://github.com/Tru-Dev/VeritaLib/wiki).\n\nIf you're using VS Code, you should get intellisense if you install the\n[sumneko Lua extension](https://marketplace.visualstudio.com/items?itemName=sumneko.lua).\n\n## Features (work in progress)\n- [X] Intuitive OOP for game behavior and data classes\n- [X] Graphics contexts to facilitate shaders, render targets, and 2D/3D viewports\n- [X] Scene/stage system to manage resource scopes\n- [X] Input mapping system\n- [X] Texture pager/atlas\n- [X] Asynchronous resource loading\n- [ ] Menu helper\n\n## FAQ\n- Is this supposed to replace THlib?  \n  - Yes, but it's not meant to be the same thing as THlib.  \n    THlib is a rigid framework designed for only one purpose: creating Touhou-style shmups.  \n    Because this was very limiting for many use cases, I decided to make my own version.\n- Is this finished?\n  - Not yet.\n- Is there a graphical editor?\n  - An editor is planned, but has not been started.\n\n## License\nVeritaLib is distributed under the zlib license.  \nWhat this means is that you can use it without crediting me (although that would be appreciated!),\nbut if you modify it you need to a. state what you changed, and b. not claim that you made\nVeritalib yourself.\n\n## Credits\n- [TruDev](https://github.com/Tru-Dev): Creator of VeritaLib\n- [Zino](https://github.com/zinoLath): Contributor\n- [Kuanlan](https://github.com/Demonese): Creator of LuaSTG Sub\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftru-dev%2Fveritalib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftru-dev%2Fveritalib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftru-dev%2Fveritalib/lists"}