{"id":"daemon6109/astar-pathfinding","name":"astar-pathfinding","scope":"daemon6109","platform":"roblox","description":"Deterministic grid-based A* pathfinding for Roblox and Luau.","version":"1.1.2","latest":"1.1.2","versions":["1.1.2"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"bafc748f9cfb5fe655bc889f37bc556a4120e53b24b5789a3820b8abbfd6a973","likes":0,"downloads":0,"install":"forest install daemon6109/astar-pathfinding","url":"https://forest.dev/p/roblox/daemon6109/astar-pathfinding","files":"https://api.forest.dev/ai/package/roblox/daemon6109/astar-pathfinding/files","readme":"# AStarPathfinding\n\nA deterministic, shared-realm A* pathfinding library for Roblox and Luau.\nIt provides a grid, nodes, Manhattan-distance heuristic, and an A* solver with\neight-directional movement.\n\n## Install\n\n```toml\n# wally.toml\n[dependencies]\nAStarPathfinding = \"daemon6109/astar-pathfinding@1.1.2\"\n```\n\nThen run:\n\n```sh\nwally install\n```\n\n## Use\n\n```luau\nlocal ReplicatedStorage = game:GetService(\"ReplicatedStorage\")\nlocal Packages = ReplicatedStorage:WaitForChild(\"Packages\")\nlocal AStarPathfinding = require(Packages:WaitForChild(\"AStarPathfinding\"))\n\nlocal grid = AStarPathfinding.Grid({\n\twidth = 16,\n\theight = 16,\n\tblockProbability = 0,\n})\n\n-- Mark terrain as blocked when needed.\ngrid:getNode(8, 8).walkable = false\n\nlocal solver = AStarPathfinding.AStar({ grid = grid })\nlocal path = solver:findPath(1, 1, 16, 16)\n\nif path then\n\tfor _, node in path do\n\t\tprint(node.x, node.y)\n\tend\nend\n```\n\nCoordinates are one-indexed. `findPath` returns `nil` when either endpoint is\nblocked/out of bounds or no route exists.\n\n## Development\n\n```sh\nbash scripts/test.sh\n```\n\n## Publishing\n\nThe package archive is intentionally limited to the runtime module, this\nREADME, and the MIT license. Before publishing a new version:\n\n```sh\nwally manifest-to-json\nwally package --list\nwally publish\n```\n\nVersions are immutable in the public Wally registry. Update both\n`wally.toml` and `src/AStarPathfinding/init.luau` to the same next semantic\nversion before publishing.\n\n## License\n\n[MIT](LICENSE)\n","readmeTruncated":false}