{"id":"termsofgit/module-loader","name":"module-loader","scope":"termsofgit","platform":"roblox","description":"fork of crusherfire's ModuleLoader (better)","version":"3.1.0","latest":"3.1.0","versions":["3.1.0"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"910405a74dc30121c7e02be5bbd5e12d8612163c5cfe131c64464c100f5c8e68","likes":0,"downloads":0,"install":"forest install termsofgit/module-loader","url":"https://forest.dev/p/roblox/termsofgit/module-loader","files":"https://api.forest.dev/ai/package/roblox/termsofgit/module-loader/files","readme":"# [Tutorial](https://youtu.be/dJjZ7ml9bSo?si=dOwrWtZQjJvYBVvN)\r\n# [Wally](https://wally.run/package/crusherfire/module-loader)\n\n## Shared player lifecycle hooks\n\nLoaded modules can optionally define any of these methods:\n\n```luau\nfunction Module:PlayerAdded(player: Player) end\nfunction Module:PlayerRemoving(player: Player) end\nfunction Module:CharacterAdded(player: Player, character: Model) end\nfunction Module:CharacterRemoving(player: Player, character: Model) end\n```\n\nThe loader owns the Roblox event connections and forwards events to every module that\nimplements the corresponding method. Players and characters that already exist when loading\nfinishes are passed through `PlayerAdded` and `CharacterAdded` after `Init` and `Start`.\n\nModules may return any value. Lifecycle methods are only inspected and invoked when the\nreturned value is a table.\n","readmeTruncated":false}