Mirrored Packages
Some packages on Forest carry a Mirrored badge. These are packages imported from Wally , brought over so the ecosystem’s existing open-source libraries are installable from day one.
Wally is a Roblox package manager, so mirrored packages are a Roblox-only concept.
What “Mirrored” means
- The source is unmodified. A mirrored version contains the exact files its author published to Wally.
- Only open-source packages are mirrored. A version is imported only when it declares (or ships in its archive) a recognized open-source license, and it gets the same license safety rating as any other package. Each version’s license notes state exactly where its license came from.
- The scope is reserved, not owned. Mirrored packages have no Forest account behind them yet. The author’s scope name is held in reserve so nobody else can register it. That’s why the byline isn’t a profile link.
- The mirror stays current. New Wally releases of a mirrored package appear on Forest automatically, and packages removed upstream are removed here too.
Using a mirrored package
Install it like any other package:
forest i evaera/promiseDependencies, version ranges, the lockfile, and integrity checks all behave exactly as they do for native Forest packages.
Mirrored packages that have dependencies include a few small generated .lua link files alongside the original source. Wally arranged installed packages differently on disk, so these links let the package’s internal requires resolve inside Forest’s Packages layout. They’re part of the published archive and covered by the same integrity hash as everything else.
Server-realm packages from Wally
Wally tracked realms: a package declared itself shared or server, and a project listed server packages under [server-dependencies], which Wally installed into a separate ServerPackages folder. Forest packages carry no realm, but a project gets the same separation from a mount. If a mirrored package was server-realm on Wally (anti-cheat, server frameworks), install it into a server-only mount so it never replicates to clients:
forest mount create ServerPackages
forest i <scope>/<name> --mount ServerPackagesMoving a project from Wally
Run forest init --project in a folder with a wally.toml (or just forest install, which offers to create the manifest), and Forest offers to import it:
[dependencies]become the top-leveldependencies, installed intoPackages/.[server-dependencies]and[dev-dependencies], when present, becomeServerPackagesandDevPackagesmounts. Those are Wally’s own folder names, so your existing Rojo mappings keep working.- Version requirements carry over. A bare Wally version already meant a compatible range, so
1.2.3is written as^1.2.3. - Wally aliases that differ from the package’s name become Forest aliases, so your code keeps requiring packages by the same names (
Packages.Promise). Aliases starting with_or.are dropped, since Forest doesn’t allow them. - The
licensefrom[package], if set, is copied intoforest.json. wally.lockis deleted:forest-lock.jsonreplaces it.wally.tomlstays where it is, but Forest never reads it again, so delete it when you’re ready.
Dependencies resolve as is, because Wally’s open-source packages are mirrored here under the same scope/name; one that isn’t mirrored (for example, one without an open-source license) fails to resolve until you replace it. Entries init can’t parse are skipped with a warning. The next forest install fills those folders and takes them over: Wally’s _Index folders and link modules are removed, and the removal is reported in one line.
The import is a prompt, so without an interactive terminal (a script or CI) you get a plain manifest instead. forest init for package authoring offers the same import; there the default mount sits next to your root module, as usual for a package.
Claiming your scope
If you published these packages on Wally, the scope is being held for you, and you can claim it now. You claim a scope by verifying the same GitHub identity that owned it on Wally: link that GitHub account to your Forest account, then claim the scope from your account settings (or, if the scope name matches the account you’re signing up as, verify inline during registration). Once claimed, the packages become yours to manage like any other Forest packages, and future Wally releases keep mirroring in. A Studio can claim a scope too; an admin or owner verifies with their own linked GitHub.
If you need something changed or taken down that a claim doesn’t cover, reach out through forest.dev .