Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/prvdmwrong/prvdmwrong
Build better games. Prvd 'M Wrong is a Roblox game framework built with modern standards delivering type-safe APIs, dependency resolution, and unparalleled DX. Zero bloat, plugins, or lock-in required.
https://github.com/prvdmwrong/prvdmwrong
framework game library lua luau roblox roblox-ts typescript
Last synced: 2 months ago
JSON representation
Build better games. Prvd 'M Wrong is a Roblox game framework built with modern standards delivering type-safe APIs, dependency resolution, and unparalleled DX. Zero bloat, plugins, or lock-in required.
- Host: GitHub
- URL: https://github.com/prvdmwrong/prvdmwrong
- Owner: prvdmwrong
- License: apache-2.0
- Created: 2024-07-26T08:47:41.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-10-19T13:03:49.000Z (3 months ago)
- Last Synced: 2024-10-20T01:31:58.930Z (3 months ago)
- Topics: framework, game, library, lua, luau, roblox, roblox-ts, typescript
- Language: Luau
- Homepage: https://prvdmwrong.github.io/prvdmwrong/latest
- Size: 27.6 MB
- Stars: 13
- Watchers: 0
- Forks: 4
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-roblox - Prvd 'M Wrong - Roblox game framework built with modern standards delivering type-safe APIs, dependency resolution, and unparalleled DX. (Libraries / Frameworks)
README
[![Continuous Integration](https://img.shields.io/github/actions/workflow/status/prvdmwrong/prvdmwrong/ci.yml?style=flat-square&label=Continuous%20Integration)](https://github.com/prvdmwrong/prvdmwrong/actions/workflows/ci.yml)
[![Documentation Status](https://img.shields.io/github/actions/workflow/status/prvdmwrong/prvdmwrong/docs.yml?style=flat-square&label=Documentation)](https://github.com/prvdmwrong/prvdmwrong/actions/workflows/docs.yml)
![Prvd 'M Wrong is dual-licensed under MIT](https://img.shields.io/badge/license-MIT%20or%20Apache%202.0-blue?style=flat-square)
[![Releases](https://img.shields.io/github/v/tag/prvdmwrong/prvdmwrong?&style=flat-square)](https://github.com/prvdmwrong/prvdmwrong/releases)
[![NPM Version](https://img.shields.io/npm/v/%40prvdmwrong%2Fcore?style=flat-square)](https://www.npmjs.com/package/@prvdmwrong/core)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.](https://prvdmwrong.github.io/prvdmwrong/latest/tutorials/)
## Highlights
- 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## Code Sample
```Luau
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!")
endfunction CombatProvider.performMove(self: Self, move: CombatMove)
local character = self.characterProvider:awaitCharacter()
-- do something with the character
endreturn prvd(CombatProvider)
``````TypeScript
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
}
}
```