{"id":15888210,"url":"https://github.com/corecii/roblox-screenshot","last_synced_at":"2025-06-12T22:34:39.741Z","repository":{"id":105909366,"uuid":"146169172","full_name":"Corecii/roblox-screenshot","owner":"Corecii","description":"A combination Node.js server and Lua module to allow automated screenshot taking in Roblox Studio. Includes masking for transparent backgrounds and cropping.","archived":false,"fork":false,"pushed_at":"2018-09-09T11:26:53.000Z","size":1139,"stargazers_count":14,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-12T22:34:25.909Z","etag":null,"topics":[],"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/Corecii.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":"2018-08-26T09:53:46.000Z","updated_at":"2024-06-28T09:08:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"88c072ad-6f5b-42af-b1a6-878de97459c1","html_url":"https://github.com/Corecii/roblox-screenshot","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Corecii/roblox-screenshot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Corecii%2Froblox-screenshot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Corecii%2Froblox-screenshot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Corecii%2Froblox-screenshot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Corecii%2Froblox-screenshot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Corecii","download_url":"https://codeload.github.com/Corecii/roblox-screenshot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Corecii%2Froblox-screenshot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259542105,"owners_count":22873752,"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":[],"created_at":"2024-10-06T06:06:41.275Z","updated_at":"2025-06-12T22:34:39.334Z","avatar_url":"https://github.com/Corecii.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":" \n# Screenshotter\n \n Combined with a small Node.js server, `roblox-screenshot` takes, crops, and masks screenshots of the Roblox viewport for automated screenshotting.\n \n For docs, see [`module.lua`](https://github.com/Corecii/roblox-screenshot/blob/master/module.lua).\n\n For examples, see [`ExamplePatterns.lua`](https://github.com/Corecii/roblox-screenshot/blob/master/ExamplePatterns.lua) and [`Tests.lua`](https://github.com/Corecii/roblox-screenshot/blob/master/Tests.lua).\n\n You can use the module in Studio at any time with\n\n ```lua\n local Screenshotter = require(2218503664)\n ```\n\n ---\n \n## Installation\n \n Head to [the Releases page](https://github.com/Corecii/roblox-screenshot/releases) to download the latest release. Unzip it and place it somewhere you can run it from.\n \n Head to [the Node.js page](https://nodejs.org/en/) and download the Current version. Install Node.js. Make sure that you install `npm` and that `node` and `npm` are added to your PATH.\n \n Windows:\n \n 1. Run `Install.bat`, which downloads all of the dependencies\n \n Mac:\n \n 1. Open the terminal to the `roblox-screenshot` folder\n 2. Run `npm install`\n 3. Turn off `allow_previews` and `allow_registry_login` in `settings.json`\n \n## Running\n\n Check `settings.json` to make sure the settings are to your liking.\n\n * `allow_previews` allows scripts to copy screenshots to your Roblox content directory to preview screenshots in-game.\n * `allow_uploads` allows scripts to upload screenshots to Roblox\n * `allow_registry_login` allows scripts to upload screenshots to your account. Scripts *do not* see your login cookie.\n * `allow_password_login` allows scripts to upload screenshots to accounts that they have the username and password for. Scripts *do* see these login cookies.\n \n Windows:\n \n 1. Run `Run.bat`\n \n Mac:\n \n 1. Open the terminal to the `roblox-screenshot` folder\n 2. Run `node .`\n\n While calibrating or taking screenshots, you must leave the Roblox Studio window open and leave it unobstructed. `roblox-screenshot` takes a screenshot of your screen and crops it down to the Roblox Studio viewport, so `roblox-screenshot` will only work properly if Roblox Studio is on top.\n \n ---\n \n## Compatibility\n \n The server *should* work on Mac (and Linux). I have no way to test this out though, and the following restrictions apply to the Mac server *if it works*:\n \n * Previews will not work, as I don't know where the Roblox directory is on Mac. You should turn previews off in `settings.json` to avoid errors.\n * Registry login will not work, since the Registry is a Windows feature.\n \n Advice or pull requests to fix these features or to fix general Mac compatibility is appreciated and encouraged.\n \n ---\n \n## Issues\n \n### Display scaling on Windows\n \n Display scaling on windows can cause the screenshot program to not take screenshots of the whole screen.\n `Install.bat` will automatically add registry keys to disable scaling for the screenshot program.\n If this does not work for you, you will need to go to `node_modules/screenshot_desktop/lib/win32` and change the compatibility options of `screenCapture.exe` yourself. You will need to run Calibrate or Screenshot from the Lua module at least once for this file to appear.\n \n### Package issues\n \n Some packages are included using their github address instead of automatically through npm.\n \n * `screenshot-desktop` does this because it uses some changes I made to add `png` support.\n * `tough-cookie` and `winreg` do this because I was having issues with their npm packages, but the versions on github do not have the issues.\n\n### HTTP API doesn't do validation\n\n Since roblox-screenshot is meant to be used from the Lua module, the Lua module does all of the validation. The Node HTTP API doesn't do any validation and will just error if used incorrectly. The main exception to this is that file names are sanitized, so it's not possible to create or delete files outside of `screenshots` and `previews` using roblox-screenshot.\n\n### `roblox-screenshot` does not check what is using it\n\n Any program on the computer can use roblox-screenshot to take screenshots, and roblox-screenshot might be open to other computer on the local network or the internet if you have a public IP and no firewall. This is not a major issue because:\n\n * Any program that can use roblox-screenshot to take screenshots could do so itself. Any program that can use roblox-screenshot to make many files/folders for malicious purposes could do so itself much faster than it could by using roblox-screenshot.\n * It's highly unlikely for anyone to target roblox-screenshot from other computer.\n * roblox-screenshot does not release any useful information in its API results. It does not serve up images of screenshots, it does not allow modifying files outside of its `screenshots` or `previews` directories, and it does not allow writing or reading arbitrary data.\n\n These issues can be solved with some sort of key authentication where the user has to grant programs and processes the ability to use roblox-screenshot. This is a nice long-term goal, and will fit best if roblox-screenshot ever has a better user-facing UI using something like Electron.\n\n As it is, the risks are not great enough to focus significant time on this.\n\n---\n\n## TODO\n\n* Utility API for creating pseudo-particles that stay static between masked screenshots\n* Find a background object that is unaffected by fog\n* API to get existing spritesheet info saved in json files\n* API to get directory contents\n* Support `directory` arguments in `Preview` and `Unpreview` endpoints\n* Add key authentication","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorecii%2Froblox-screenshot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcorecii%2Froblox-screenshot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorecii%2Froblox-screenshot/lists"}