{"id":13316219,"url":"https://github.com/alphafantomu/rbx-types","last_synced_at":"2026-05-18T05:34:59.230Z","repository":{"id":141360079,"uuid":"490655528","full_name":"alphafantomu/rbx-types","owner":"alphafantomu","description":"Roblox Engine API annotations generator for Sumneko's LLS EmmyLua","archived":false,"fork":false,"pushed_at":"2023-01-12T02:29:50.000Z","size":1214,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-01T18:27:12.191Z","etag":null,"topics":["annotation-generator","https","libuv","lua","luajit","luau","luvit","reference","roblox-studio","robloxapi","robloxlua","ubuntu1804","windows"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alphafantomu.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-10T10:52:05.000Z","updated_at":"2022-05-15T03:50:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"9f79d17f-3f91-4bca-8cdf-de2ed237a862","html_url":"https://github.com/alphafantomu/rbx-types","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphafantomu%2Frbx-types","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphafantomu%2Frbx-types/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphafantomu%2Frbx-types/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alphafantomu%2Frbx-types/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alphafantomu","download_url":"https://codeload.github.com/alphafantomu/rbx-types/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240020010,"owners_count":19735101,"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":["annotation-generator","https","libuv","lua","luajit","luau","luvit","reference","roblox-studio","robloxapi","robloxlua","ubuntu1804","windows"],"created_at":"2024-07-29T18:20:37.656Z","updated_at":"2026-04-19T14:30:21.080Z","avatar_url":"https://github.com/alphafantomu.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# rbx-types\nA [EmmyLua style annotations](https://github.com/sumneko/lua-language-server/wiki/Annotations) generator for the Roblox [Engine API Reference](https://create.roblox.com/docs/reference/engine) created in Lua. Pre-generated annotations can be found [here](https://github.com/alphafantomu/rbx-types/releases/).\n\n## Usage Help\nBefore running rbx-types, make sure:\n- In the `rbx-types` directory using `cd` or OS equivalent command\n- Proper dependencies and requirements are met for the project\n\nTo run rbx-types, run the command in your terminal: `luvit .`, a folder named `rbxannotations` will be created with all the annotation files you need.\nYou might need to do some manual adjustments of the annotations as rbx-types only reformats the API data into EmmyLua style annotations.\n\nA folder named `FOLDER_NAME` (default: rbxannotations) cannot be in the same directory when running the program, it will error if it is detected.\n\n## Installation\nThis rbx-types runs on [luvit](https://luvit.io/), written and tested in a Ubuntu 18.04 Virtual Machine.\nIt should be noted that the project no longer requires [LuaRocks](https://luarocks.org/) and it's dependencies as of `v0.0.2`. But instructions will still be below for that version, additionally you can run the project in a Windows OS as of versions beyond `v0.0.2`.\n\n### Binaries\nYou will need some binaries before proceeding to use rbx-types, which are:\n- [luvit](https://luvit.io/)\n\nSections for each of these are found below, which are just commands to help you get through it. After running the commands per section, it is expected you return to your original directory.\n\n#### Luvit\n```bash\ncurl -L https://github.com/luvit/lit/raw/master/get-lit.sh | sh\n```\nLuvit has a LuaJIT interpreter but is not reliant on the Lua 5.1.5 that you installed earlier, as that was for LuaRocks.\nUpon installation, your current directory will have the following binaries:\n- `lit`\n- `luvit`\n- `luvi`\n\n`lit` is our required package manager and `luvit` is our Lua interpreter, `luvi` helps create self-contained binaries but it won't be used here.\nIf not done so already, please move `lit`, `luvit` and `luvi` to your binaries folder in Ubuntu, by default it is located at `/usr/local/bin`. If you are on Windows, the `PATH` should also point to a folder for your binaries.\n\n#### git\n`sudo apt install git`\n\n### Project Folder\nAfter installing the required binaries, please clone this repository by running the following command or copying manually:\n```bash\ngit clone --recursive https://github.com/alphafantomu/rbx-types.git\n```\nChange your directory to `rbx-types` by using `cd`.\n\n### Running rbx-types\nMake sure there is not a folder named `rbxannotations` in your current directory, then run `sudo luvit .` in `v0.0.1` or `luvit .` is `v0.0.2` and the generation process will begin.\nIf you are having to run rbx-types multiple times, this command to remove `rbxannotations` will prove useful:\n\n```bash\nsudo rm -r rbxannotations\n```\n\n### Output\nAfter the generating is complete, you will want to move your `rbxannotations` folder to the workspace that you're developing with the Roblox API on. \n\n## Important Note\nThe EmmyLua style that rbx-types uses is tested with [SumNeko's Lua Language Server](https://github.com/sumneko/lua-language-server), you may use any EmmyLua style intellisense but somethings may not be supported. The following things are not added to the annotations from the API reference:\n- Math Operation Annotations\n\nThe API Engine reference has a bunch of consistencies, I have tried to account for all of them but here are some that may cause you problems:\n- Parameter names that have bad Lua syntax for variable names will remove bad characters for syntax, such as dashes or parenthesis\n- Generics are used for unique class annotations, but they do not have restrictions on the generics themselves, they have restrictions on specific classnames however. Constructor/method Generics are used in these cases:\n  - `Instance.new`\n  - `Instance.FindFirstAncestorOfClass`\n  - `Instance.FindFirstChildOfClass`\n  - `Instance.FindFirstAncestorWhichIsA`\n  - `Instance.FindFirstChildWhichIsA`\n  - `ServiceProvider.FindService`\n  - `ServiceProvider.getService`\n  - `ServiceProvider.service`\n  - `ServiceProvider.GetService`\n- `RotationCurveKey` is an undocumented datatype that is only mentioned in [RotationCurve](https://create.roblox.com/docs/reference/engine/classes/RotationCurve), it is assumed to be a `table`.\n- If the API reference page for the class is not properly formatted, then rbx-types will also suffer from it, feel free to adjust annotations as you see fit. As an example, this is from [`Players.Chatted`](https://create.roblox.com/docs/reference/engine/classes/Players#PlayerChatted):\n![Players.Chatted](https://i.imgur.com/ArLsjvq.png)\n\nThe following pages are explicitly generated despite not being in the [reference list](https://create.roblox.com/docs/reference/engine):\n- [`SelectionBehavior`](https://create.roblox.com/docs/reference/engine/enums/SelectionBehavior)\n- [`PropertyStatus`](https://create.roblox.com/docs/reference/engine/enums/PropertyStatus)\n- [`WrapLayerAutoSkin`](https://create.roblox.com/docs/reference/engine/enums/WrapLayerAutoSkin)\n\nAny other annotation has to be specified using `---@type CLASSNAME` before it, where `CLASSNAME` is the class you want to attach the annotations of to a variable.\nAn example:\n```lua\n---@type Part\nlocal Part = game:GetService('Workspace'):FindFirstChild('Baseplate');\n```\n\nrbx-types has been tested on `Ubuntu 18.04` on [WSL 2](https://docs.microsoft.com/en-us/windows/wsl/install#upgrade-version-from-wsl-1-to-wsl-2).\n\n## License\n[MIT License](/LICENSE)\n\n## Contact\n- Discord: `Arivistraliavatoriar#2678`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falphafantomu%2Frbx-types","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falphafantomu%2Frbx-types","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falphafantomu%2Frbx-types/lists"}