{"id":"greenviper126/vluxyai","name":"vluxyai","scope":"greenviper126","platform":"roblox","description":"Simple, composable AI for Roblox: a state table, a pathfinder, a mover and some senses, stacked with a builder. Source: https://github.com/Vlux-Entertainment/VluxyAI","version":"0.12.0","latest":"0.12.0","versions":["0.1.2","0.1.4","0.1.5","0.1.6","0.1.7","0.1.8","0.2.0","0.2.1","0.10.0","0.11.0","0.12.0"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"57537fa709a72f3dccc2b6159436aae2287c9ab5b7efc27d03cacf25d870fba7","likes":0,"downloads":0,"install":"forest install greenviper126/vluxyai","url":"https://forest.dev/p/roblox/greenviper126/vluxyai","files":"https://api.forest.dev/ai/package/roblox/greenviper126/vluxyai/files","readme":"<div align=\"center\">\n\t<img src=\".moonwave/static/VluxIcon.png\" alt=\"Vlux\" height=\"150\" />\n\t<br/>\n\t<a href=\"https://discord.gg/Ebbp9UgBUD\"><img src=\"https://img.shields.io/discord/757104089984270346.svg?label=discord\" /></a>\n\t<p><a href=\"https://Vlux-Entertainment.github.io/VluxyAI/\">View Docs</a></p>\n</div>\n\n\n\n# VluxyAI\n\n**VluxyAI** is a simple, composable AI library for Roblox. An AI is a **brain** (a table of states), a\n**pathfinder** (plans), a **mover** (executes) and some **senses** (write a blackboard), stacked with\na builder into an **agent**.\n\n```lua\nlocal VluxyAI = require(ReplicatedStorage.Packages.VluxyAI)\n\nlocal Stalker = {\n\tInitial = \"Idle\",\n\tStates = {\n\t\tIdle = {\n\t\t\tTransitions = {\n\t\t\t\t{ To = \"Chase\", When = function(agent) return agent.Blackboard.SeenTarget ~= nil end },\n\t\t\t},\n\t\t},\n\t\tChase = {\n\t\t\tTransitions = {\n\t\t\t\t{ To = \"Idle\", When = function(agent) return agent.Blackboard.SeenPosition == nil end },\n\t\t\t},\n\t\t\tUpdate = function(agent)\n\t\t\t\tagent:MoveTo(agent.Blackboard.SeenPosition)\n\t\t\tend,\n\t\t},\n\t},\n}\n\nlocal agent = VluxyAI.Presets.Humanoid(rig) -- any Model with a PrimaryPart and a Humanoid\n\t:UseBrain(Stalker)\n\t:Build()\n\t:Start()\n```\n\n- **A brain is a table.** States have `Enter`, `Update`, `Exit` and an ordered list of transitions.\n  The whole AI reads top to bottom.\n- **Senses write, states read.** States never raycast; a blackboard holds what the AI knows.\n- **Everything is a contract.** Pass in your own pathfinder, mover or sense; the package never\n  learns your module exists. Mistakes fail at `Build()` with the path of the bad field.\n- **Headless core.** The runner, validator, scoring and navigator are plain Luau, tested under Lune.\n\n## What's in it\n\n- **Brains:** a state runner with interrupts, ready-made `When` predicates, utility scoring, and\n  states for patrolling, investigating, searching, wandering, roaming points of interest or an\n  authored graph (`States.GraphRoam`), staring and burrowing.\n- **Pathfinding:** `Navmesh` (PathfindingService), `Straight`, `Ladder`, `Graph` (A\\* over authored\n  nodes, read from a folder of parts) and `Hybrid`; doors and other scripted steps through `OnStep`.\n- **Movers:** `Humanoid` (`MoveTo`), `CFrame` (pivots anything, no rig needed) and `Record` (a\n  pivot in a table, for headless agents with no Instance on the server).\n- **Senses:** sight, hearing (with noise kinds, sources and strength), proximity, tagged sounds,\n  awareness, being watched, neighbours, safe areas, clues, hideouts and stamina.\n- **Groups and world:** a director (tension and difficulty), shared points of interest, claims,\n  doors, safe areas, rig collision and player noise.\n- **Combat:** attacks, and kills that are live, behind a black screen, or a non-lethal scare.\n- **Client presentation:** a server `Broadcaster` and client `Replica`, either mirroring the\n  server's rig or drawing a client-side puppet (`Presets.Puppet` on the server,\n  `Locomotion.AttachReplica` on the client), plus animation, footsteps and voice lines.\n- **Debug:** path, graph, sense and state visuals, and a runtime R15 rig.\n\nTags and attributes a game sets for the package are prefixed `VLUXYAI_` (`VLUXYAI_SAFE`,\n`VLUXYAI_SOUND`, `VLUXYAI_LIGHT`, `VLUXYAI_DOOR`, `VLUXYAI_HIDDEN`) so they do not collide with your\nown. Before 0.11.0 they were `AI_*`.\n\n## Install\n\n```toml\n[dependencies]\nVluxyAI = \"greenviper126/vluxyai@0.12.0\"\n```\n\nThen `wally install`. The package has no dependencies and is `shared` realm: requiring it on a\nclient is harmless.\n\n## Repository\n\n- `lib/` is the package. `examples/` is a playground: a seeded maze and four R15 example AIs that\n  show the package off; serve `test-place.project.json` and press Play.\n- `lune run tests/runner` runs the headless suite; `.\\Commands\\Verify.ps1` runs everything.\n- `PLAN.md` is the design record. `CLAUDE.md` is the map for contributors.\n\n## License\n\nMIT. See `LICENSE`.\n","readmeTruncated":false}