This repository contains the source code for the "Upside Engine" plugin. It is primarily written in Lua and includes components, windows, utilities and development packages used during its creation.
Important notice: this project contains code with bad practices. It should not be used as a reference or template for production projects.
UpsideEnginePlugin gathers a set of tools and components for scene creation and editing, tilemap handling, and other utilities used by the Upside Engine project. The code is being published as open source only so the community can:
- add new features;
- optimize and fix design and style issues;
- study how it works to create better-designed alternatives.
Do not assume this repository follows modern best practices—review and refactor before reuse.
Some notable paths:
src/— Main source code (Lua modules, components, windows, utilities).src/DevPackages/— Development packages included for convenience (for example, a copy of Roact for local testing).src/Windows/,src/Components/,src/Classes/— Organization by responsibility.
Consult the file tree for the full layout.
This project includes or depends on third-party packages and community work. Thanks and credit to the following projects:
- Roact — https://github.com/Roblox/roact
- StudioComponents — https://github.com/sircfenner/StudioComponents
- UpsideEngine — https://github.com/notreux/UpsideEngine
This repository is published to encourage contributions. If you want to help, suggested actions:
- Open issues describing bugs or specific improvements.
- Send small, focused pull requests (one feature or fix per PR).
- Refactor and add tests where appropriate — many modules are candidates for cleanup.
- Document modules you change and add usage examples.
- Update dependencies to their latest versions
Please follow the contribution guidelines in CONTRIBUTING.md (added to this repo) and observe any license requirements of included third-party code.
The codebase contains design decisions and coding practices that may be considered poor (tight coupling, lack of tests, inconsistent conventions, sparse comments, etc.).
Accordingly:
- Do not use this code as a blueprint for architecture or best practices without careful review and refactoring.
- If you are studying the project, treat it as an exploratory resource and compare with better-designed implementations.
- If you plan to reuse parts in production, rewrite and thoroughly test those parts.
The project is open source to let the community improve it. If you contribute, focus on refactors, test coverage and documentation.
This repository is licensed under the Apache License 2.0. See the LICENSE file for details.