Roblox games have become increasingly complex, with sprawling mazes of dependencies, incomplete frameworks, and a challenging development experience.
No longer. Prvd 'M Wrong is a framework that leaves you with the fun stuff, delivering type-safe APIs and dependency resolution, along with comprehensive documentation, an ecosystem of packages, and unparalleled DX. Zero bloat, plugins, or lock-in required.
Get going in minutes with our on-rails tutorial.
- Type-safe APIs for both Luau and TypeScript
- Featherlight (<6kb minified & gzipped), choose to mix in packages as you need
- Uses dependency resolution for topological initialization
- Made to be extendable through modding APIs
- Non-intrusive first-class lifecycle events for flexibility
- Pragmatic and sensible API that makes development fun
local prvd = require("pkg/prvdmwrong")
local CharacterProvider = require("./character-provider")
local CombatProvider = {}
type Self = typeof(CombatController)
CombatProvider.characterProvider = prvd.use(CharacterProvider)
function CombatProvider:onStart()
print("Hello, Prvd 'M Wrong!")
end
function CombatProvider.performMove(self: Self, move: CombatMove)
local character = self.characterProvider:awaitCharacter()
-- do something with the character
end
return prvd(CombatProvider)
import { Provider, use } from "@prvdmwrong/core"
import { CharacterProvider } from "./character-provider"
@Provider()
export class CombatProvider {
public characterProvider: use(CharacterProvider)
public onStart() {
print("Hello, Prvd 'M Wrong!")
}
public performMove(move: CombatMove) {
const character = this.characterProvider.awaitCharacter()
// do something with the character
}
}