{"id":13821453,"url":"https://github.com/PaperMC/Starlight","last_synced_at":"2025-05-16T12:33:22.961Z","repository":{"id":37555857,"uuid":"315056309","full_name":"PaperMC/Starlight","owner":"PaperMC","description":"Rewrites the light engine to fix lighting performance and lighting errors","archived":true,"fork":false,"pushed_at":"2024-03-08T12:47:55.000Z","size":601,"stargazers_count":1270,"open_issues_count":2,"forks_count":135,"subscribers_count":45,"default_branch":"fabric","last_synced_at":"2025-05-13T21:06:08.849Z","etag":null,"topics":["fabric","forge","java","light-engine","minecraft","minecraft-performance"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PaperMC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"PaperMC","open_collective":"PaperMC"}},"created_at":"2020-11-22T14:28:02.000Z","updated_at":"2025-05-03T15:47:43.000Z","dependencies_parsed_at":"2023-12-26T04:38:16.522Z","dependency_job_id":"97f1df52-97f2-49b0-baf0-b255c8e17298","html_url":"https://github.com/PaperMC/Starlight","commit_stats":{"total_commits":95,"total_committers":8,"mean_commits":11.875,"dds":0.3157894736842105,"last_synced_commit":"cca03d62da48e876ac79196bad16864e8a96bbeb"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2FStarlight","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2FStarlight/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2FStarlight/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2FStarlight/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PaperMC","download_url":"https://codeload.github.com/PaperMC/Starlight/tar.gz/refs/heads/fabric","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254530666,"owners_count":22086656,"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":["fabric","forge","java","light-engine","minecraft","minecraft-performance"],"created_at":"2024-08-04T08:01:22.191Z","updated_at":"2025-05-16T12:33:22.016Z","avatar_url":"https://github.com/PaperMC.png","language":"Java","readme":"Starlight (Fabric)\n==\nFabric mod for completely rewriting the vanilla light engine.\n\n## Future updates past 1.20\nPlease see: https://gist.github.com/Spottedleaf/6cc1acdd03a9b7ac34699bf5e8f1b85c\nThis project will not receive further updates for the foreseeable future.\n\n## Download\n[CurseForge (Fabric)](https://www.curseforge.com/minecraft/mc-mods/starlight)\n[Modrinth (Fabric)](https://modrinth.com/mod/starlight)\n\n## Contact\n[Discord](https://discord.gg/tuinity)\n\n## Results\n~~The graph below shows how much time the light engine was active while generating 10404 chunks:~~\nSee \"Notice about invalid gen test results\" in [TECHNICAL_DETAILS.md](TECHNICAL_DETAILS.md) \nfor why there is no 1.20 data for this test.\n\nBelow is a graph detailing how long light updates took for breaking/placing\na block on a large platform at y = 254 down to a large platform at y = 0:\n![Block update at height graph](https://i.imgur.com/ZQx7Ek0.png)\n- Tested via [LightBench](https://github.com/Spottedleaf/lightbench) on 1.20-rc1\n- World is just a flat world with bedrock at y = 0 and grass at y = 254\n- CPU: Ryzen 9 7950X\n\nBelow is a graph detailing light update times for a simple glowstone\nplace/break:\n![Simple glowstone block update](https://i.imgur.com/MrA2PQk.png)\n- Tested via [LightBench](https://github.com/Spottedleaf/lightbench) on 1.20-rc1\n- World is just a flat world with bedrock at y = 0 and grass at y = 254\n- CPU: Ryzen 9 7950X\n- Tested breaking and placing the glowstone on the bedrock platform,\n  where skylight could not interfere with the test.\n\nThe results indicate that Starlight is faster for light propagation, but \nthe absolute times indicate that it is unlikely to affect FPS in any\nsituation on the client.\n\n## Purpose\nCurrently, Starlight's light section management is depended on for both Paper's rewrite\nof the chunk system (people in the modding space call this \"TACS\") and Folia's additional\nchanges to that system. In Starlight, light sections are tied directly to ChunkAccess objects.\n\nThe light section management prevents most bugs (including performance ones)\ninvolving missing/absent light sections, as Starlight assumes that no updates\nare possible unless the chunk exists. This is why there are basically zero performance or bug related\nissues with the light section management in Starlight. \n\nThis difference in light section management allows Paper's rewrite of the chunk system (which is designed\nas a solid base for [Folia](https://github.com/PaperMC/Folia) to build on, which adds regionized multithreading\nto the dedicated server) to greatly simplify and optimize its chunk unload/load logic as it no longer needs to\nconsider any light engine state as there is no light engine state.\n\nThe \"stateless\" property of Starlight allows the chunk system to run light updates / generation\nin parallel provided the scheduling is done right, see patch \"Increase parallelism for neighbour writing chunk statuses\"\nin 1.19 Folia. This is critical to allowing the chunk system to scale beyond 10 worker threads,\nwhich is important for dedicated servers with more players to stress chunk generation.\n","funding_links":["https://github.com/sponsors/PaperMC","https://opencollective.com/PaperMC"],"categories":["Java"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPaperMC%2FStarlight","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPaperMC%2FStarlight","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPaperMC%2FStarlight/lists"}