{"id":"cameronnh/serverauthtoolkit","name":"serverauthtoolkit","scope":"cameronnh","platform":"roblox","description":"Mirrored from the Wally registry.","version":"0.2.18","latest":"0.2.18","versions":["0.1.0","0.1.2","0.1.3","0.1.4","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9","0.2.11","0.2.12","0.2.14","0.2.15","0.2.16","0.2.17","0.2.18"],"license":"MIT","licenseRating":"safe","licenseCaveats":["License identified from the packaged LICENSE file; the manifest declared none."],"licenseVerified":true,"dependencies":{},"integrity":"e9bca1605dfb019df1f674d5cba3ab22689ea90e86c1453f1d6bd3d6637827a1","likes":0,"downloads":0,"install":"forest install cameronnh/serverauthtoolkit","url":"https://forest.dev/p/roblox/cameronnh/serverauthtoolkit","files":"https://api.forest.dev/ai/package/roblox/cameronnh/serverauthtoolkit/files","readme":"<div align=\"center\">\r\n\t<h1>ServerAuthToolkit</h1>\r\n\t<p>Server-authoritative movement toolkit for Roblox Input Actions and client prediction.</p>\r\n\t<a href=\"https://cameronnh.github.io/ServerAuthToolkit/\"><strong>View docs</strong></a>\r\n</div>\r\n\r\n# ServerAuthToolkit\r\n\r\nServer-authoritative movement toolkit for Roblox games using Input Actions System and client-side prediction.\r\n\r\nRegister movement modules that define input, default state, and simulation logic. The toolkit handles player lifecycle, runs modules each simulation step, and replicates movement state through root-part attributes.\r\n\r\n## Installation\r\n\r\nAdd the package with [Wally](https://wally.run/):\r\n\r\n```toml\r\nServerAuthToolkit = \"cameronnh/serverauthtoolkit@0.1.2\"\r\n```\r\n\r\n## Quick start\r\n\r\nRequire the toolkit on both the server and client, register your modules, then start it:\r\n\r\n```lua\r\nlocal ServerAuthToolkit = require(ReplicatedStorage.ServerAuthToolkit)\r\n\r\nServerAuthToolkit:RegisterDefinition({\r\n\tName = \"Jump\",\r\n\tPriority = 1,\r\n\tActions = {\r\n\t\t{\r\n\t\t\tName = \"Jump\",\r\n\t\t\tType = Enum.InputActionType.Bool,\r\n\t\t\tBindings = {\r\n\t\t\t\tKeyboard = {\r\n\t\t\t\t\tKeyCode = Enum.KeyCode.Space,\r\n\t\t\t\t},\r\n\t\t\t\tGamepad = {\r\n\t\t\t\t\tKeyCode = Enum.KeyCode.ButtonA,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tApplyInput = function(state: ServerAuthToolkit.MovementState, inputState: boolean)\r\n\t\t\t\tstate.IsJumping = inputState\r\n\t\t\tend,\r\n\t\t},\r\n\t},\r\n\tNeededStates = {\r\n\t\tIsJumping = false,\r\n\t\tOnGround = false,\r\n\t},\r\n\tDisable = {\r\n\t\t\"JumpAction\",\r\n\t},\r\n\tProcess = function(state, deltaTime)\r\n\t\t-- Jump logic\r\n\tend,\r\n})\r\n\r\nServerAuthToolkit:Start()\r\n```\r\n\r\nCall `Start` once per process after registering modules and animations.\r\n\r\n## Features\r\n\r\n- Movement modules with priority-ordered simulation\r\n- Input Actions integration and movement state replication\r\n- Client camera hooks for pre-simulation and post-camera effects\r\n- Built-in animation helpers and flat look-direction utilities\r\n","readmeBorrowedFrom":{"version":"0.1.2","source":"wally"},"readmeTruncated":false}