Compare commits

...

267 commits

Author SHA1 Message Date
str1k3r d35927cf5b
fix: panoramas (#195)
Some checks failed
Nix / build (push) Has been cancelled
2026-08-19 01:08:15 +03:00
str1k3r 580a6bc7eb
fix(lceonline): being logged out every app open (#194) 2026-08-18 22:47:12 +03:00
github-actions[bot] ff1958614c chore: update stable Homebrew casks/formula [skip ci] 2026-08-18 13:31:13 +00:00
/home/neo b70fa735a2
silly bump (#190) 2026-08-18 15:53:02 +03:00
João Pedro Carvalho 42b3cf62e5
feat(skins): 2D integrated skin editor (direct/3D character painting … (#187)
Co-authored-by: /home/neo <158327205+neoapps-dev@users.noreply.github.com>
2026-08-18 15:39:10 +03:00
/home/neo 0e1c9250bf
1.6.1 (#189) 2026-08-18 15:36:27 +03:00
github-actions[bot] 116fda9c27 chore: update Nix stable pin to v1.6.0 [skip ci] 2026-08-18 00:12:55 +00:00
github-actions[bot] b4daee985a chore: update stable Homebrew casks/formula [skip ci] 2026-08-17 23:19:02 +00:00
/home/neo e8dd728c48
fix build issue ig (#182) 2026-08-17 21:51:50 +03:00
/home/neo d6f622c913
Merge diamond into main (#175)
Co-authored-by: str1k3r <115313679+S1l3ntStr1ke87@users.noreply.github.com>
2026-08-17 21:42:38 +03:00
João Pedro Carvalho 816997803a
fix(ClickParticles): clear remaining particles and remove click effects when animations are disabled (#178)
Some checks failed
Nix / build (push) Has been cancelled
2026-08-11 13:31:19 +03:00
João Pedro Carvalho 51a95949ad
fix(rpc): discord rpc proper shutdown when launcher closes (#179) 2026-08-11 13:30:51 +03:00
/home/neo d536a6590b
feat: xbox360+ps3+java->windows64 world conversion (#145)
Some checks failed
Nix / build (push) Has been cancelled
Co-authored-by: str1k3r <115313679+S1l3ntStr1ke87@users.noreply.github.com>
2026-08-07 19:01:24 +03:00
Edward? cb684177fe
Fix: Added stable branch to flake and needed packages (#165)
Some checks failed
Nix / build (push) Has been cancelled
2026-07-23 17:27:13 +03:00
Edward? 19380b0585
Feat: Adding homebrew cask and formula method of install (#159)
Some checks failed
Nix / build (push) Has been cancelled
2026-07-18 19:59:19 +03:00
Edward? 962979c70e
Feat: Adding Gentoo Ebuild (#148)
Some checks failed
Nix / build (push) Has been cancelled
Co-authored-by: /home/neo <158327205+neoapps-dev@users.noreply.github.com>
2026-07-17 04:28:24 +03:00
Edward? 8da6a217bc
Feat: Nix Flake install method with ci (#146)
Some checks are pending
Nix / build (push) Waiting to run
2026-07-16 21:08:19 +03:00
Jan Dróżdż 4a561a0c78
Fixed bug with the audio track skipping on Windows (#143)
Co-authored-by: /home/neo <158327205+neoapps-dev@users.noreply.github.com>
2026-07-15 15:57:45 +03:00
Byte b164a52bf8
fix(lceonline): Always use the latest download available (#139) 2026-07-14 15:25:55 +03:00
str1k3r 1c65b48958
fix(lceonline): user turning null by refreshing token when app is opened (#138) 2026-07-13 14:15:06 +03:00
/home/neo 9cf05611a3
feat(hooks/useGameManager): partnership with LapboardMC (#137) 2026-07-13 13:17:31 +03:00
str1k3r 0d316a6518
fix: appheader and panorama not showing on setup (#136) 2026-07-13 12:02:19 +03:00
/home/neo 5f04f26eb8
bump (#133) 2026-07-12 20:11:06 +03:00
/home/neo 0a32333019
1.6.0 drop 1 (#132) 2026-07-12 20:07:52 +03:00
/home/neo 0594d330be
fix(versions): custom path empty directory, fixes #127 (#131) 2026-07-12 10:06:37 +03:00
str1k3r e8038f3c3e
fix(lceonline): client not opening & webview window for lceonline login (#129) 2026-07-12 09:43:17 +03:00
/home/neo 124bbad12c
docs: readme (#126) 2026-07-11 21:24:01 +03:00
/home/neo 034fbf5737
feat: 1.5.0 drop 2 (#122)
Co-authored-by: str1k3r <115313679+S1l3ntStr1ke87@users.noreply.github.com>
2026-07-11 21:04:53 +03:00
/home/neo f46453f1cd
feat: extended description and required versions (#119) 2026-07-07 17:10:20 +03:00
/home/neo b8c448dab8
feat(workshop): dependencies support (#118) 2026-07-07 16:30:48 +03:00
/home/neo dd3048b88c
chore: bump (#117) 2026-07-06 22:11:40 +03:00
neoapps-dev 7124b4a316 chore: bump 2026-07-06 21:55:04 +03:00
/home/neo ecf3ca084f
feat(credits): more people (#115) 2026-07-04 15:56:19 +03:00
/home/neo f7177b43bd
feat(credits): more people (#114)
Co-authored-by: Sarah <asdyousif22.acc2@gmail.com>
2026-07-04 15:32:11 +03:00
/home/neo 5238a9de4e
feat(hooks/useGameManager): Moon Edition panorama (#113) 2026-07-04 14:17:51 +03:00
/home/neo d9441c9a52
feat(devtools): initial model editor (#112) 2026-07-04 14:01:20 +03:00
/home/neo 121a0bf4cf
fix(hooks/useGamepad): focus state (#110) 2026-07-02 15:52:28 +03:00
/home/neo 2e8e6cdec3
feat(devtools): community guides (#109) 2026-07-02 15:25:21 +03:00
Specifix d7eca9ea60
Fix typo in Free Multiplayer section (#107)
Corrected a typo in the README regarding multiplayer service.
2026-07-01 11:21:33 +03:00
/home/neo 58581203e0
feat(icon): macOS style (#106) 2026-06-30 22:31:11 +03:00
/home/neo 3842bee2ab
feat: bad apple (#105) 2026-06-28 23:33:12 +03:00
/home/neo 9b4d7c7167
feat(downloadoverlay): custom image (#104) 2026-06-28 22:35:12 +03:00
/home/neo 074c1e50b9
feat: titlebar dragging (#103) 2026-06-28 20:48:50 +03:00
/home/neo b5667532ca
feat: savedata parsing and 360revived new link (#101) 2026-06-28 20:36:29 +03:00
/home/neo a94e4ec758
feat: parallel downloads, redesigned download overlay (#100) 2026-06-28 18:12:40 +03:00
/home/neo 92bd9c6f2a
feat(credits): more logos and moon edition (#99) 2026-06-28 17:11:49 +03:00
/home/neo e2459777b2
feat: neoLegacy official DLCs support (#98) 2026-06-28 17:03:53 +03:00
/home/neo e2a58ab948
fix(workshop): no image for plugins, and description bug fix (#97) 2026-06-28 15:56:05 +03:00
/home/neo 62b81e5145
feat: bring back titlebar on non-macOS systems, and show on fullscreen (#96) 2026-06-28 15:26:55 +03:00
/home/neo 98f92c3173
feat: download retry and error surfacing (#95) 2026-06-28 14:38:33 +03:00
/home/neo 85855ac4af
feat: workaround neoLegacy slim skin support (#94) 2026-06-27 14:44:33 +03:00
/home/neo 2e57576200
feat(intro): skip on keypress or click (#92) 2026-06-26 21:47:01 +03:00
/home/neo 0459370846
feat: neoLegacy gitea link, placeholder for moon edition, and bluerne… (#91) 2026-06-26 21:04:44 +03:00
/home/neo ef2dbc085f
feat(GameManager): new hellish ends logo (#90) 2026-06-25 14:19:05 +03:00
str1k3r 4e5a0ebb12
fix(lceonline): no image not showing when no icon is specified (#89) 2026-06-25 13:06:29 +03:00
str1k3r a1558b6693
fix: black screen when opening server plugins (#88) 2026-06-25 01:08:02 +03:00
/home/neo 5d7d2148cc
feat(VersionsMenu): download to custom path (#87) 2026-06-24 19:58:34 +03:00
/home/neo e65ea4e06a
fix: fresh install fullscreen (#86) 2026-06-24 13:41:17 +03:00
/home/neo d90c95da7f
bump (#84) 2026-06-23 18:58:21 +03:00
neoapps-dev 587d1983b8 fix: sfx issue, closes #80 2026-06-22 22:29:03 +03:00
neoapps-dev b3162d4e02 feat: revelations logo and instance deletion 2026-06-22 14:25:43 +03:00
neoapps-dev 4dc55c918a fix!: bug that deleted the instance right after downloading 2026-06-22 13:58:57 +03:00
neoapps-dev b7c8ef7e86 ci: release notes 2026-06-22 13:50:03 +03:00
/home/neo 9f617d4b40
docs: update screenshots 2026-06-22 13:34:18 +03:00
/home/neo 7d272115a7
docs: fill in screenshots 2026-06-22 13:33:45 +03:00
neoapps-dev 1c2c73b95c bump 2026-06-22 13:28:16 +03:00
neoapps-dev 6ae2932f6f ci: no more portable binaries; installer has custom path input 2026-06-21 16:47:10 +03:00
str1k3r a89bab677a
Update Bytebukkits API's to LCEOnlines (#79) 2026-06-21 15:21:19 +03:00
KayJannOnGit 84e13e31a8 feat: added splashes by community 2026-06-21 13:55:14 +02:00
neoapps-dev aaeb2bea47 end partnership with Relic Network. They switched to Java 2026-06-19 21:04:25 +03:00
neoapps-dev 1b4d6f590b feat: unzip fallback 2026-06-18 23:55:44 +03:00
neoapps-dev 04bd863d8e feat: more easter eggs 2026-06-17 20:46:15 +03:00
neoapps-dev 6e2f5d1bf2 feat: dinnerbone easter egg 2026-06-17 20:30:24 +03:00
neoapps-dev a401cffb6b feat: slightly better RPC 2026-06-16 21:44:51 +03:00
neoapps-dev 3483ad6b2f feat: slightly better RPC 2026-06-16 21:43:37 +03:00
neoapps-dev 8b707dfc1b fix: logout on session expire 2026-06-16 20:06:13 +03:00
neoapps-dev 38fca607fd feat: deeplinks 2026-06-16 19:20:50 +03:00
neoapps-dev 6312fb4540 fix(skinsview): misalignment 2026-06-15 23:09:58 +03:00
neoapps-dev 6418528da9 feat(screenshots): queues and caching 2026-06-15 22:52:53 +03:00
neoapps-dev 6f64b43358 fix(download+branches): fetch from rust, no update notif without url 2026-06-15 18:16:52 +03:00
neoapps-dev 49e7f823ce feat: customization saving 2026-06-15 18:04:47 +03:00
neoapps-dev dbe68e4c6c feat: gitea support 2026-06-15 17:45:53 +03:00
neoapps-dev 25bc6754d7 fix: delete files AFTER download 2026-06-14 21:37:01 +03:00
neoapps-dev 1b0150b719 feat: skin viewer in skin changing menu 2026-06-14 21:11:38 +03:00
neoapps-dev ffd4e22d4a fix: better workshop ui 2026-06-14 20:36:17 +03:00
neoapps-dev 55844ea118 fix: better inactive color 2026-06-14 20:31:23 +03:00
neoapps-dev 583dc5a427 feat: new builtin skin 2026-06-14 20:01:22 +03:00
neoapps-dev 879d4a0a2d feat: new builtin skin 2026-06-14 19:54:56 +03:00
neoapps-dev d436483cb2 feat: plugin settings support 2026-06-14 19:37:44 +03:00
neoapps-dev 0f3ddae8c7 feat: workshop plugins 2026-06-14 18:59:35 +03:00
neoapps-dev 8e27a4bed1 feat: initial plugin support 2026-06-14 18:05:20 +03:00
neoapps-dev e105686b23 feat(LCELiveView): fix ui 2026-06-14 17:15:34 +03:00
neoapps-dev bc7c029675 fix: notif crop 2026-06-09 12:17:42 +03:00
neoapps-dev cfcdb74606 feat: ui fixes 2026-06-09 12:08:09 +03:00
neoapps-dev eecd6dc506 fix: compile issues 2026-06-08 16:30:56 +03:00
neoapps-dev 31dc2b2548 fix: ui issues 2026-06-08 16:30:02 +03:00
KayJann 1740975b3c feat: better setup view, will be even more improved 2026-06-08 01:36:53 +02:00
KayJann a05dd01c69 feat: use emerald launcher logo in setupview 2026-06-08 00:24:26 +02:00
neoapps-dev 8bf6116b05 fix: start fullscreen issues 2026-06-07 23:33:30 +03:00
KayJann 495e82e8d6 feat: ui fixes 2026-06-07 18:31:49 +02:00
KayJann 4c146626be fix: oops i renamed moog city 2 file 2026-06-07 17:16:30 +02:00
KayJann 5ac10e216a fix: USE 9 SLICE SCALING EVERYWHERE 2026-06-07 17:15:21 +02:00
KayJann c0df824b64 feat: update credits 2026-06-04 22:10:53 +02:00
KayJann b6db45b159 feat: ui fixes + new credit view (not finished yet 2026-06-04 01:07:23 +02:00
KayJann fa7e97bc1f feat: changing the logo to the one that was voted on the poll 2026-06-02 16:09:47 +02:00
KayJann 8bf7502c44 Merge branch 'feature/big-cool-ui-redesign' 2026-06-02 16:01:31 +02:00
KayJann 4675b2e5b5 Revert "feat: some new splashes"
This reverts commit 9d76b02bd1.
2026-06-02 16:00:56 +02:00
KayJann aa84a6a148 fix: Moog City 2 file name 2026-06-02 15:51:39 +02:00
KayJann 14d222e656 refractor: extract splashes to src/data/splashes.ts 2026-06-02 14:59:34 +02:00
KayJann b49cc294bc refractor(workshop): idk man i improved some things 2026-06-02 14:33:44 +02:00
KayJann 9d76b02bd1 feat: some new splashes 2026-06-02 09:27:59 +02:00
KayJann a60567613b style(lcelive): 9-slice scaling to main container 2026-06-02 02:31:54 +02:00
KayJann c01b745063 feat(versions): replaced wools icons with build logo 2026-06-02 02:21:46 +02:00
KayJann 98e28154a2 fix(toast): fixed sound replay on click 2026-06-02 02:18:19 +02:00
KayJann 88956902a8 refractor(ui): optimized App.txs animations and extract CSS 2026-06-02 02:14:02 +02:00
KayJann c6b26454e7 feat: add sfx to toasts 2026-06-02 01:49:30 +02:00
KayJann bd632e7e0b feat: add new lce team cinematic intro 2026-06-02 01:41:48 +02:00
KayJann b76e0c305d feat(audio): add Moog City 2.. 2026-06-01 10:23:19 +02:00
KayJann d10c4f6876 feat: new splash texts by the community 2026-06-01 10:11:56 +02:00
neoapps-dev 7baa96c798 docs(readme): AUR 2026-05-28 23:29:21 +03:00
neoapps-dev 5a01c5fcd3 feat: customize title image and panorama 2026-05-28 22:37:13 +03:00
neoapps-dev 04073b5ef9 docs: readme 2026-05-28 21:26:47 +03:00
neoapps-dev c7877db61c ci: draft 2026-05-28 21:25:55 +03:00
neoapps-dev 377f093e47 docs: edit readme 2026-05-28 03:06:35 +03:00
neoapps-dev 49220c99e9 feat(GameManager): update HellishEnds link 2026-05-28 03:04:43 +03:00
neoapps-dev 41cbd20fbb ci(macos): get rid of the custom building 2026-05-27 22:28:51 +03:00
neoapps-dev 798b037920 fix(macos): missing import 2026-05-27 22:20:09 +03:00
neoapps-dev 4356db0996 fix(LocEditorView): shallow copy and add in-place saving 2026-05-27 22:07:40 +03:00
neoapps-dev d70ab4a128 ci: use tauri action 2026-05-27 22:01:28 +03:00
neoapps-dev 91b633d575 fix(SettingsView): make backspace do nothing 2026-05-26 22:38:37 +03:00
neoapps-dev 3bb6a9d5fd fix: state closure and config save 2026-05-26 21:50:10 +03:00
neoapps-dev 0c1b2beced feat: another settings category, launch prefixes, backup&restore and more 2026-05-26 19:15:56 +03:00
neoapps-dev 3525bd6523 bump 2026-05-26 17:00:22 +03:00
neoapps-dev c3c3abb2e3 feat: playtime counting 2026-05-25 17:46:56 +03:00
neoapps-dev e1a49069f0 remove lce bridge its a PAIN 2026-05-25 14:33:35 +03:00
neoapps-dev 114e775b2a feat: java bridge 2026-05-25 13:23:01 +03:00
neoapps-dev 3a7335f43d chore: remove console2lce because IT DOESNT WORK 2026-05-24 11:27:21 +03:00
neoapps-dev f85829c88c feat: initial support for importing worlds 2026-05-23 22:11:18 +03:00
neoapps-dev a647f0c7dc feat(rust): full refactor to everything. now code is readable 2026-05-23 18:56:16 +03:00
neoapps-dev 736376dc04 feat(react): typescriptify everything 2026-05-23 18:31:49 +03:00
neoapps-dev 043d8445f2 fix(workshop): compile issues 2026-05-22 15:52:54 +03:00
neoapps-dev 2168031ac3 feat: partner logos 2026-05-21 20:53:07 +03:00
neoapps-dev 9997bbb292 docs: update discord link 2026-05-21 20:09:24 +03:00
neoapps-dev 1c88642e5c fix: compile issues 2026-05-21 19:43:40 +03:00
Byte 0e0b8ff77d
Update ByteBukkit Integrations and fix some labeling (#51) 2026-05-21 19:20:30 +03:00
neoapps-dev e6d88173d6 feat(LCELive): add -ip, -port and -quitondisconnect for neoLegacy 2026-05-21 14:14:45 +03:00
neoapps-dev 773da39fe1 fix(Windows): hide cmd.exe window on extraction 2026-05-21 13:49:27 +03:00
neoapps-dev 8bb20a072d fix(AudioController): Autoplay policy handling for WebView2 2026-05-21 11:37:44 +03:00
neoapps-dev 7107161dc1 fix(SetupView): use checkboxes 2026-05-21 11:23:45 +03:00
neoapps-dev d85c9b2a2c feat(Workshop): collab with ByteBukkit to bring plugins and servers 2026-05-17 21:57:20 +03:00
neoapps-dev 9abc4756b7 feat(GameManager): update Revelations link 2026-05-17 20:03:45 +03:00
neoapps-dev 1db0ac797e feat: add Relic Network 2026-05-17 19:55:57 +03:00
neoapps-dev f43698aea4 feat: bring back servers.db manipulation 2026-05-17 14:45:11 +03:00
neoapps-dev 66628c4bd2 ci: get rid of nightly 2026-05-17 14:16:22 +03:00
neoapps-dev c2fb9ece72 fix: get rid of UDP broadcase and use port 61000 instead of a random port 2026-05-17 14:11:32 +03:00
neoapps-dev 45b69acb9b ci: publish release 2026-05-16 20:54:57 +03:00
neoapps-dev 558878f9df ci: build artifacts 2026-05-16 20:37:13 +03:00
neoapps-dev be910f2334 chore: bump 2026-05-16 20:24:59 +03:00
/home/neo 46e04a7c4b
merge experimental into main (#42) 2026-05-16 20:23:15 +03:00
neoapps-dev e29fd4da6f fix(flatpak): IPC permission 2026-05-16 13:59:21 +03:00
/home/neo f2398aad23
v1.2.0 (#33) 2026-05-15 20:31:41 +03:00
neoapps-dev bd2bf0ecab ci: experimental ci 2026-05-14 22:28:20 +03:00
/home/odd 7d530fe258
More splashes! (#23) 2026-05-08 13:27:38 +03:00
neoapps-dev 5f8f084064 fix: panorama 2026-05-06 15:21:00 +03:00
neoapps-dev a24330ae2b fix: revelations using Nightly 2026-05-06 15:12:36 +03:00
neoapps-dev b04d1f06eb fix: branch cycling logic 2026-05-05 14:12:52 +03:00
neoapps-dev 1411f78388 fix: 360revived and hellish ends downloading 2026-05-04 22:29:25 +03:00
neoapps-dev c5a05ca3e2 feat: branches support, and redesigned a bit the versions menu 2026-05-04 20:38:29 +03:00
neoapps-dev f9487ce632 feat: dynamic link for neoLegacy 2026-05-04 19:43:30 +03:00
neoapps-dev e17fbd2354 fix 2026-05-03 23:37:04 +03:00
neoapps-dev c087dbcd69 feat: use latest instead of Stable 2026-05-03 19:14:59 +03:00
neoapps-dev 5fb311859a revert steamworks, causes problems for now 2026-05-01 23:13:37 +03:00
neoapps-dev b01b1273b1 feat: initial steamworks support 2026-05-01 22:31:29 +03:00
neoapps-dev 1b02b443d7 feat: switch neoLegacy to stable release 2026-05-01 20:45:57 +03:00
neoapps-dev d874b194a2 fix: Steam integration grids 2026-05-01 15:46:34 +03:00
neoapps-dev f648cbbcc4 fix: macos build 2026-04-30 23:10:01 +03:00
neoapps-dev 212413ff1a fix: windows and macos builds 2026-04-30 23:02:38 +03:00
neoapps-dev 7414efce47 feat: initial support for steam integration 2026-04-30 22:51:28 +03:00
neoapps-dev eddba38829 fix: preserve profileX.dat for achievements 2026-04-30 20:06:11 +03:00
neoapps-dev 365a8143ff feat: enhanced update checker for game and launcher 2026-04-30 19:02:34 +03:00
neoapps-dev 1ecc47c32f feat: cleaner UI for version detection 2026-04-30 18:35:39 +03:00
neoapps-dev b589e43d3e fix(devtools/grf): offset issues 2026-04-28 13:03:57 +03:00
neoapps-dev 74d2b71084 feat(devtools/grf): fix undefined error 2026-04-28 12:53:01 +03:00
neoapps-dev 972a5958c6 feat(devtools/grf): support for editing and creating new GRF/GRH files 2026-04-28 12:28:32 +03:00
neoapps-dev f52f8b4700 fix?: windows renaming issues 2026-04-26 16:24:50 +03:00
neoapps-dev 5d38578349 fix: proper workshop handling 2026-04-26 16:17:23 +03:00
neoapps-dev 60c8e016da fix: screenshots:// on windows again 2026-04-26 15:15:36 +03:00
neoapps-dev 87e841f565 fix: audio on GNU/Linux 2026-04-25 20:24:19 +03:00
neoapps-dev 9d80eea7d7 feat: rpc for swf 2026-04-25 19:57:20 +03:00
neoapps-dev e19d311546 fix: swf editor view 2026-04-25 19:32:37 +03:00
neoapps-dev a6641065ab fix: swf editor view 2026-04-25 19:22:37 +03:00
neoapps-dev ac9fdec501 feat: SWF editor enhancements 2026-04-25 19:12:23 +03:00
neoapps-dev c25bb7cbaf feat: SWF editor enhancements 2026-04-25 18:32:56 +03:00
neoapps-dev 29f4fdff47 docs: update revelations link 2026-04-25 14:42:09 +03:00
KayJann 8080a35b16
Fix get on github button size 2026-04-25 13:40:09 +02:00
KayJann 559ee0452c
Small changes in README.md 2026-04-25 13:35:00 +02:00
KayJann e1df420379
Update README.md 2026-04-25 13:12:26 +02:00
neoapps-dev 79c819a2eb fix: windows systems not loading using screenshots:// 2026-04-25 13:45:54 +03:00
neoapps-dev 79bd169439 feat: scan Windows64/GameHDD for screenshots as well 2026-04-25 13:40:42 +03:00
neoapps-dev 0bc81e5854 fix: build issues 2026-04-24 19:53:32 +03:00
neoapps-dev eb63406540 fix: DLCSync, SkinSync and Workshop items for locally imported versions 2026-04-24 19:01:00 +03:00
neoapps-dev 1b36112fde feat: versions-in-workshop! 2026-04-24 18:05:58 +03:00
neoapps-dev f960c75f9a feat: build date in the footer 2026-04-24 16:46:17 +03:00
neoapps-dev e7442ab8ad fix: download url 2026-04-24 12:09:44 +03:00
KayJann f8f9e27d67 fix: new logo and name for Legacy Nether Fork 2026-04-24 10:09:47 +02:00
KayJann 657c97a71b fix: new discord links 2026-04-23 20:16:07 +02:00
neoapps-dev 341acc9071 feat: local custom TUs support 2026-04-23 15:44:00 +03:00
neoapps-dev 754efe1195 fix: full slim skin support, all versions 2026-04-23 14:52:22 +03:00
/home/neo d9787595db
ci: run at 5PM UTC rather than on push 2026-04-23 13:17:19 +03:00
KayJann 4ccae74746 fix: real macos GPTK3 detection 2026-04-22 22:02:49 +02:00
KayJann 4f307dee39 feat: add legacy nether fork edition ! (new collab) 2026-04-22 21:27:41 +02:00
neoapps-dev 3cb787fc72 fix: oops removed delta 2026-04-22 20:43:01 +03:00
neoapps-dev fcb389b86d feat: cape support to skin viewer 2026-04-22 20:40:21 +03:00
neoapps-dev 106cc736bb feat: screenshots redesign 2026-04-22 20:04:05 +03:00
neoapps-dev 31d229a48f fix: make views more responsive and fix workshop scrolling issue 2026-04-22 19:51:27 +03:00
neoapps-dev fea0d56f9d feat: autoupdate based on date rather than version 2026-04-22 16:10:31 +03:00
neoapps-dev b18dc6f898 docs: add download button to readme 2026-04-22 15:16:02 +03:00
neoapps-dev c4436b27cd docs: BUILDING.md 2026-04-22 15:08:42 +03:00
/home/neo 020ed90786
docs: add screenshot 2026-04-22 15:07:06 +03:00
neoapps-dev 3f269ea08e docs: unslopify README 2026-04-22 15:02:31 +03:00
neoapps-dev f6cac74de4 feat: SWF image viewer 2026-04-22 14:43:22 +03:00
neoapps-dev 1febea2f68 feat: update notification for game update 2026-04-21 21:27:58 +03:00
neoapps-dev 2fe2749d62 feat: redesign setup 2026-04-21 21:16:54 +03:00
neoapps-dev a691a55885 feat: remove, update support to workshop, and installed tab 2026-04-21 21:03:11 +03:00
neoapps-dev 32fa9b48a6 fix: overlapping preventing you from changing username with mouse 2026-04-20 18:33:14 +03:00
neoapps-dev 3cd8340704 fix: make seed based on username, change skin pack skin name 2026-04-20 15:26:47 +03:00
neoapps-dev 2706ad9cbc feat: use a seeded id for skin and cape 2026-04-20 11:37:53 +03:00
neoapps-dev fb52972089 feat: workshop redesign part 2 2026-04-19 22:51:50 +03:00
KayJann 86dc293b26
Update Discord link in README.md 2026-04-19 21:04:48 +02:00
neoapps-dev 394c667407 feat: workshop redesign! 2026-04-19 20:54:12 +03:00
neoapps-dev eedd9700f4 feat(discordRPC): more tabs support 2026-04-19 20:40:55 +03:00
albertbogusz 02fa714f3c
fix: improve Proton directory detection on Linux (#6) 2026-04-19 17:17:59 +03:00
neoapps-dev 8d48b2f938 fix: preserve screenshots when updating 2026-04-17 20:55:31 +03:00
neoapps-dev 37a3666022 feat: ignore Common/res/mob/char.png when updating as its no longer used 2026-04-17 14:21:15 +03:00
neoapps-dev 8dfab72ae2 feat: use LCE's pointer 2026-04-16 22:47:47 +03:00
neoapps-dev 09bb57e9a6 fix: change id for cape and skin 2026-04-16 19:20:46 +03:00
neoapps-dev b13260ed05 feat: initial CAPE support! 2026-04-16 18:42:28 +03:00
neoapps-dev 7ab84170c4 feat: organize flags, and better skin sync 2026-04-16 17:29:01 +03:00
neoapps-dev afebdffced fix: PCK3, hex values and force slim skins to be wide 2026-04-16 17:04:22 +03:00
neoapps-dev 1a0f51d698 chore: react code cleanup 2026-04-16 12:34:11 +03:00
neoapps-dev 51f2a78469 fix: server port to 1026 2026-04-16 11:40:41 +03:00
neoapps-dev 912d0da76e feat: TRUE support for slim skins, produce a PCK from a skin 2026-04-15 23:11:59 +03:00
neoapps-dev 4a0a329f6b feat: game options editor 2026-04-15 22:19:27 +03:00
neoapps-dev 3f4a776600 feat: colours and game rules editors 2026-04-15 21:45:20 +03:00
neoapps-dev 3088ea0fd3 feat: localisation editor 2026-04-15 21:08:38 +03:00
neoapps-dev 718aa8f125 feat(PCK): feature parity with Quiver 2026-04-15 18:29:09 +03:00
neoapps-dev f046e06e12 feat(PCK): feature parity with Quiver 2026-04-15 14:06:26 +03:00
neoapps-dev 24a4599ecf fix: appimage
NEKI STOP MESSING WITH IT:
2026-04-15 11:30:06 +03:00
neoapps-dev 8165e6c22c fix: version number 2026-04-15 11:13:13 +03:00
/home/neo 2d425c7bd0
docs: better readme 2026-04-13 20:09:48 +03:00
FarDeath 30e4de0577
fix: Permission Issue on Release (#1) 2026-04-13 19:40:46 +03:00
neoapps-dev d51ca80202 fix: modal index 2026-04-12 18:37:46 +03:00
neoapps-dev c49f62e539 feat: screenshots tab! 2026-04-12 18:31:57 +03:00
neoapps-dev 55acb96468 fix!: remove journeyman's skin 2026-04-12 16:31:16 +03:00
neoapps-dev aa28d50a2b fix!: Emerald Team list 2026-04-12 16:22:52 +03:00
neoapps-dev 7b25f2afbc fix: skin sync for neoLegacy 2026-04-12 15:48:55 +03:00
neoapps-dev 7941e8e1da fix: neoLegacy URL 2026-04-12 14:56:53 +03:00
Santiago Fisela e2a3e4b52c Appimage test fix 2026-04-11 17:48:08 -03:00
Santiago Fisela a78064377d Reapply "Hope this doesn't break appimages on gentoo + steam deck test"
This reverts commit a7577bbd72.
2026-04-11 17:22:15 -03:00
Santiago Fisela a7577bbd72 Revert "Hope this doesn't break appimages on gentoo + steam deck test"
This reverts commit 4a0f2df6eb.
2026-04-11 17:02:26 -03:00
Santiago Fisela 4a0f2df6eb Hope this doesn't break appimages on gentoo + steam deck test
I'll likely revert this lol
2026-04-11 16:35:05 -03:00
neoapps-dev 12fdcf0335 fix(workshop): im a dumbass 2026-04-11 20:58:34 +03:00
neoapps-dev 84c9296b51 docs: neoLegacy 2026-04-11 19:47:35 +03:00
neoapps-dev 6b434699e9 docs: remove LMRP as its now merged with neoLegacy 2026-04-11 19:44:49 +03:00
neoapps-dev fc0dbae680 logo 2026-04-11 19:37:46 +03:00
neoapps-dev 331d3e1ae9 docs: readme icon 2026-04-11 19:34:36 +03:00
Santiago Fisela c534c98ad5 Revelations link update 2026-04-11 12:32:47 -03:00
296 changed files with 45277 additions and 7776 deletions

246
.github/workflows/experimental.yml vendored Normal file
View file

@ -0,0 +1,246 @@
name: "experimental"
on:
workflow_dispatch:
jobs:
build-tauri:
strategy:
fail-fast: false
matrix:
include:
- platform: "macos-latest"
args: "--target aarch64-apple-darwin"
artifact-name: macos-aarch64
- platform: "macos-latest"
args: "--target x86_64-apple-darwin"
artifact-name: macos-x86_64
- platform: "ubuntu-22.04"
args: ""
artifact-name: linux
- platform: "windows-latest"
args: ""
artifact-name: windows
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libudev-dev
- name: setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: "pnpm"
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: "./src-tauri -> target"
- name: install frontend dependencies
run: pnpm install
- name: build Tauri app
run: pnpm run tauri:build -- ${{ matrix.args }}
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
- name: Create PKG with post-install script (macOS only)
if: matrix.platform == 'macos-latest'
run: |
mkdir -p pkg_temp/scripts
cp scripts/postinstall.sh pkg_temp/scripts/
MACOS_BUNDLE_DIR=$(find src-tauri/target -path "*/release/bundle/macos" -type d | head -n 1)
APP_PATH=$(find "$MACOS_BUNDLE_DIR" -name "*.app" -type d | head -n 1)
if [ -z "$APP_PATH" ]; then
echo "No .app found in $MACOS_BUNDLE_DIR"
exit 1
fi
APP_NAME=$(basename "$APP_PATH")
pkgbuild --root "$APP_PATH/.." \
--install-location /Applications \
--scripts pkg_temp/scripts \
--identifier "com.emerald.legacy" \
--version "1.0.0" \
"Emerald-Legacy-Launcher.pkg"
mv "Emerald-Legacy-Launcher.pkg" "$MACOS_BUNDLE_DIR/"
- name: upload build artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact-name }}
path: |
src-tauri/target/**/release/bundle/**/*
build-flatpak:
runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:freedesktop-23.08
options: --privileged
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: sleep for 10 seconds
run: sleep 10
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: Emerald.Legacy.Launcher.flatpak
manifest-path: flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml
cache-key: flatpak-builder-${{ github.sha }}
- name: upload flatpak artifact
uses: actions/upload-artifact@v4
with:
name: flatpak
path: Emerald.Legacy.Launcher.flatpak
build-appimage:
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- name: Bootstrap keyring and git
run: |
pacman -Syu --noconfirm archlinux-keyring
pacman -S --noconfirm --needed git
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/cache@v4
with:
path: |
src-tauri/target
node_modules
/var/cache/pacman/pkg
key: arch-${{ hashFiles('src-tauri/Cargo.lock', 'pnpm-lock.yaml') }}
restore-keys: arch-
- name: Install build dependencies
run: |
pacman -S --noconfirm --needed \
base-devel wget zsync nodejs patchelf \
cargo cargo-tauri \
gtk3 libayatana-appindicator webkit2gtk-4.1 glib-networking librsvg \
xorg-server-xvfb
- name: setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Build deb with tauri
run: |
pnpm install
cargo-tauri build --bundles deb --config '{"bundle":{"createUpdaterArtifacts":false},"build":{"beforeBuildCommand":"pnpm build"}}'
- name: Extract deb into /usr
run: |
cd src-tauri/target/release/bundle/deb
ar x ./*.deb
tar -xf data.tar.*
cp -a usr/. /usr/
- name: Build AppImage
run: |
cd pkg/AppImage
chmod +x ./AppImage.sh
./AppImage.sh
- uses: actions/upload-artifact@v4
with:
name: appimage
path: pkg/AppImage/dist/*.AppImage
build-android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: "pnpm"
- name: setup Java 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- name: setup Android SDK
uses: android-actions/setup-android@v4
- name: install Android SDK components
run: |
sdkmanager --install "platforms;android-36" "build-tools;36.0.0" "ndk;28.2.13676358"
yes | sdkmanager --licenses
sudo apt-get install -y glslang-tools
- name: install Rust stable with android target
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-linux-android
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: "./src-tauri -> target"
- name: install frontend dependencies
run: pnpm install
- name: download android bundled assets
run: pnpm android:assets
- name: restore gradle wrapper jar
run: |
VER=$(sed -n 's/.*gradle-\([0-9][0-9.]*\)-bin\.zip.*/\1/p' src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties)
curl -fL -o src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar \
"https://raw.githubusercontent.com/gradle/gradle/v${VER}/gradle/wrapper/gradle-wrapper.jar"
- name: set up android signing keystore
env:
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
run: |
printf '%s' "$ANDROID_KEYSTORE_BASE64" | base64 -d > src-tauri/gen/android/app/release.keystore
cat > src-tauri/gen/android/app/key.properties <<EOF
keyAlias=$ANDROID_KEY_ALIAS
keyPassword=$ANDROID_KEYSTORE_PASSWORD
storeFile=release.keystore
storePassword=$ANDROID_KEYSTORE_PASSWORD
EOF
- name: build Android APK
env:
ANDROID_NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/28.2.13676358
NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/28.2.13676358
run: npx tauri android build --target aarch64
- name: upload APK
uses: actions/upload-artifact@v4
with:
name: android-apk
path: src-tauri/gen/android/app/build/outputs/apk/universal/release/*.apk

View file

@ -1,112 +0,0 @@
name: 'nightly'
on:
push:
branches: ["main"]
jobs:
nightly-tauri:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: 'macos-latest'
args: '--target aarch64-apple-darwin'
- platform: 'macos-latest'
args: '--target x86_64-apple-darwin'
- platform: 'ubuntu-22.04'
args: ''
- platform: 'windows-latest'
args: ''
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libudev-dev
- name: setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: 'pnpm'
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: install frontend dependencies
run: pnpm install
- name: build and fix macOS
if: matrix.platform == 'macos-latest'
run: |
pnpm tauri build ${{ matrix.args }}
pnpm run post-build:macos
- uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: nightly
releaseName: 'Emerald Nightly'
releaseBody: |
# Emerald Legacy Launcher (Nightly)
# What to download?
- `Emerald.Legacy.Launcher-*.rpm` for GNU/Linux (RHEL)
- `Emerald.Legacy.Launcher-*.deb` for GNU/Linux (Debian+Ubuntu)
- `Emerald.Legacy.Launcher-*.AppImage` for GNU/Linux (Universal)
- `Emerald.Legacy.Launcher-*_x64.dmg` for macOS (Intel)
- `Emerald.Legacy.Launcher-*_aarch64.dmg` for macOS (M-series)
- `Emerald.Legacy.Launcher-*.exe` for Windows (Setup)
- `Emerald.Legacy.Launcher-*.msi` for Windows (Setup)
---
# Windows SmartScreen
This software is completely safe. Because the launcher is unsigned, you will see a "Windows protected your PC" window. To proceed:
1. Click the **"More info"** link under the main text.
2. Click the **"Run anyway"** button that appears.
---
# macOS "Damaged" Error Fix
The macOS builds now include automatic fixes for Gatekeeper quarantine issues. The app should launch without "application is damaged" errors.
releaseDraft: false
prerelease: true
args: ${{ matrix.args }}
nightly-flatpak:
runs-on: ubuntu-latest
permissions:
contents: write
needs: nightly-tauri # Wait for Tauri release to be created
container:
image: bilelmoussaoui/flatpak-github-actions:freedesktop-23.08
options: --privileged
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.flatpak
manifest-path: flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml
cache-key: flatpak-builder-${{ github.sha }}
- uses: softprops/action-gh-release@v2
with:
files: io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.flatpak
tag_name: nightly
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

42
.github/workflows/nix.yml vendored Normal file
View file

@ -0,0 +1,42 @@
name: Nix
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
id-token: write
concurrency:
group: nix-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Build stable package
run: nix build .#emerald-legacy-launcher --print-build-logs
- name: Build git package
run: nix build .#emerald-legacy-launcher-git --out-link result-git --print-build-logs
- name: Flake check
run: nix flake check --print-build-logs
- name: Verify outputs
run: |
test -x ./result/bin/emerald-legacy-launcher
test -x ./result-git/bin/emerald-legacy-launcher
nix path-info -Sh ./result ./result-git
ls -la ./result/bin/
ls -la ./result-git/bin/
ls -la ./result/share/applications/ || true

View file

@ -1,5 +1,4 @@
name: 'publish' name: "publish"
on: on:
workflow_dispatch: workflow_dispatch:
@ -8,26 +7,32 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
version: ${{ steps.version.outputs.version }} version: ${{ steps.version.outputs.version }}
body: ${{ steps.version.outputs.body }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- id: version - id: version
run: echo "version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT run: |
echo "version=$(jq -r .version package.json)" >> $GITHUB_OUTPUT
echo "body<<EOF" >> "$GITHUB_OUTPUT"
cat RELEASE_NOTES.md >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
publish-tauri: publish-tauri:
needs: get-version
permissions: permissions:
contents: write contents: write
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
- platform: 'macos-latest' - platform: "macos-latest"
args: '--target aarch64-apple-darwin' args: "--target aarch64-apple-darwin"
- platform: 'macos-latest' - platform: "macos-latest"
args: '--target x86_64-apple-darwin' args: "--target x86_64-apple-darwin"
- platform: 'ubuntu-22.04' - platform: "ubuntu-22.04"
args: '' args: ""
- platform: 'windows-latest' - platform: "windows-latest"
args: '' args: ""
runs-on: ${{ matrix.platform }} runs-on: ${{ matrix.platform }}
steps: steps:
@ -47,7 +52,7 @@ jobs:
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: lts/* node-version: lts/*
cache: 'pnpm' cache: "pnpm"
- name: install Rust stable - name: install Rust stable
uses: dtolnay/rust-toolchain@stable uses: dtolnay/rust-toolchain@stable
@ -57,69 +62,164 @@ jobs:
- name: Rust cache - name: Rust cache
uses: swatinem/rust-cache@v2 uses: swatinem/rust-cache@v2
with: with:
workspaces: './src-tauri -> target' workspaces: "./src-tauri -> target"
- name: install frontend dependencies - name: install frontend dependencies
run: pnpm install run: pnpm install
- name: Create PKG with post-install script
if: matrix.platform == 'macos-latest'
run: |
# Create temporary directory for PKG creation
mkdir -p pkg_temp/scripts
cp scripts/postinstall.sh pkg_temp/scripts/
# Build the app first
pnpm tauri build -- ${{ matrix.args }}
# Find the built app
APP_PATH=$(find src-tauri/target/release/bundle/macos/ -name "*.app" | head -1)
APP_NAME=$(basename "$APP_PATH")
# Create PKG with post-install script
pkgbuild --root "$APP_PATH/.." \
--install-location /Applications \
--scripts pkg_temp/scripts \
--identifier "com.emerald.legacy" \
--version "1.0.0" \
--install-location "/Applications" \
--root "$APP_PATH" \
"Emerald-Legacy-Launcher.pkg"
# Move PKG to bundle directory
mkdir -p src-tauri/target/release/bundle/macos/
mv "Emerald-Legacy-Launcher.pkg" src-tauri/target/release/bundle/macos/
- uses: tauri-apps/tauri-action@v0 - uses: tauri-apps/tauri-action@v0
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
with: with:
tagName: v__VERSION__ tagName: v__VERSION__
releaseName: 'Emerald v__VERSION__' releaseName: "Emerald v__VERSION__"
releaseBody: | releaseBody: ${{ needs.get-version.outputs.body }}
# What to download? releaseDraft: true
- `Emerald.Legacy.Launcher-*.rpm` for GNU/Linux (RHEL)
- `Emerald.Legacy.Launcher-*.deb` for GNU/Linux (Debian+Ubuntu)
- `Emerald.Legacy.Launcher-*.AppImage` for GNU/Linux (Universal, Currently Broken)
- `Emerald.Legacy.Launcher-*_x64.dmg` for macOS (Intel)
- `Emerald.Legacy.Launcher-*_aarch64.dmg` for macOS (M-series)
- `Emerald.Legacy.Launcher-*.exe` for Windows (Setup)
- `Emerald.Legacy.Launcher-*.msi` for Windows (Setup)
- `Emerald.Legacy.Launcher.flatpak` for GNU/Linux (Flatpak, Recommended)
---
# Windows SmartScreen
This software is completely safe. Because the launcher is unsigned, you will see a "Windows protected your PC" window. To proceed:
1. Click the **"More info"** link under the main text.
2. Click the **"Run anyway"** button that appears.
---
# macOS "Damaged" Error Fix
The macOS builds now include automatic fixes for Gatekeeper quarantine issues. The app should launch without "application is damaged" errors.
releaseDraft: false
prerelease: false prerelease: false
uploadUpdaterJson: true
args: ${{ matrix.args }} args: ${{ matrix.args }}
build-appimage:
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- name: Bootstrap keyring and git
run: |
pacman -Syu --noconfirm archlinux-keyring
pacman -S --noconfirm --needed git
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/cache@v4
with:
path: |
src-tauri/target
node_modules
/var/cache/pacman/pkg
key: arch-${{ hashFiles('src-tauri/Cargo.lock', 'pnpm-lock.yaml') }}
restore-keys: arch-
- name: Install build dependencies
run: |
pacman -S --noconfirm --needed \
base-devel wget zsync nodejs patchelf \
cargo cargo-tauri \
gtk3 libayatana-appindicator webkit2gtk-4.1 glib-networking librsvg \
xorg-server-xvfb
- name: setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Build deb with tauri
run: |
pnpm install
cargo-tauri build --bundles deb --config '{"bundle":{"createUpdaterArtifacts":false},"build":{"beforeBuildCommand":"pnpm build"}}'
- name: Extract deb into /usr
run: |
cd src-tauri/target/release/bundle/deb
ar x ./*.deb
tar -xf data.tar.*
cp -a usr/. /usr/
- name: Build AppImage
run: |
cd pkg/AppImage
chmod +x ./AppImage.sh
./AppImage.sh
- uses: actions/upload-artifact@v4
with:
name: appimage
path: pkg/AppImage/dist/*.AppImage* #neo: *.AppImage* because .zsync as well
build-android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: "pnpm"
- name: setup Java 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- name: setup Android SDK
uses: android-actions/setup-android@v4
- name: install Android SDK components
run: |
sdkmanager --install "platforms;android-36" "build-tools;36.0.0" "ndk;28.2.13676358"
yes | sdkmanager --licenses
sudo apt-get install -y glslang-tools
- name: install Rust stable with android target
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-linux-android
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: "./src-tauri -> target"
- name: install frontend dependencies
run: pnpm install
- name: download android bundled assets
run: pnpm android:assets
- name: restore gradle wrapper jar
run: |
VER=$(sed -n 's/.*gradle-\([0-9][0-9.]*\)-bin\.zip.*/\1/p' src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties)
curl -fL -o src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar \
"https://raw.githubusercontent.com/gradle/gradle/v${VER}/gradle/wrapper/gradle-wrapper.jar"
- name: set up android signing keystore
env:
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
run: |
printf '%s' "$ANDROID_KEYSTORE_BASE64" | base64 -d > src-tauri/gen/android/app/release.keystore
cat > src-tauri/gen/android/app/key.properties <<EOF
keyAlias=$ANDROID_KEY_ALIAS
keyPassword=$ANDROID_KEYSTORE_PASSWORD
storeFile=release.keystore
storePassword=$ANDROID_KEYSTORE_PASSWORD
EOF
- name: build Android APK
env:
ANDROID_NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/28.2.13676358
NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/28.2.13676358
run: npx tauri android build --target aarch64
- name: upload APK
uses: actions/upload-artifact@v4
with:
name: android-apk
path: src-tauri/gen/android/app/build/outputs/apk/universal/release/*.apk
publish-flatpak: publish-flatpak:
needs: get-version needs: [get-version, build-appimage, build-android]
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: write contents: write
@ -130,16 +230,29 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
submodules: true submodules: true
- name: sleep for 10 seconds - name: sleep for 20 seconds
run: sleep 10 run: sleep 20
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6 - uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with: with:
bundle: Emerald.Legacy.Launcher.flatpak bundle: emerald.flatpak
manifest-path: flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml manifest-path: flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml
cache-key: flatpak-builder-${{ github.sha }} cache-key: flatpak-builder-${{ github.sha }}
- uses: actions/download-artifact@v4
with:
name: appimage
path: appimage
- uses: actions/download-artifact@v4
with:
name: android-apk
path: android
- uses: softprops/action-gh-release@v2 - uses: softprops/action-gh-release@v2
with: with:
body: ${{ needs.get-version.outputs.body }}
tag_name: v${{ needs.get-version.outputs.version }} tag_name: v${{ needs.get-version.outputs.version }}
files: Emerald.Legacy.Launcher.flatpak files: |
emerald.flatpak
appimage/*.AppImage*
android/*.apk
draft: true
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -0,0 +1,47 @@
name: Update Homebrew Cask (Stable)
on:
release:
types: [published]
jobs:
update-cask:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: main
- name: Download release assets and update homebrew files
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
TAG="${{ github.event.release.tag_name }}"
VERSION="${TAG#v}"
echo "Processing tag $TAG (version: $VERSION)"
mkdir -p dist
# Download the Intel dmg, Apple Silicon dmg, and Linux AppImage
gh release download "$TAG" --dir dist --pattern "*_x64.dmg" --pattern "*_aarch64.dmg" --pattern "*_amd64.AppImage" -R "${{ github.repository }}"
ls -l dist
# Calculate hashes
INTEL_HASH=$(sha256sum dist/*_x64.dmg | cut -d' ' -f1)
ARM_HASH=$(sha256sum dist/*_aarch64.dmg | cut -d' ' -f1)
LINUX_HASH=$(sha256sum dist/*_amd64.AppImage | cut -d' ' -f1)
echo "Intel SHA: $INTEL_HASH"
echo "ARM SHA: $ARM_HASH"
echo "Linux SHA: $LINUX_HASH"
python3 scripts/update-homebrew.py --type stable --version "$VERSION" --intel-hash "$INTEL_HASH" --arm-hash "$ARM_HASH" --linux-hash "$LINUX_HASH"
- name: Commit and push changes
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add Casks/ Formula/
git diff --quiet && git diff --staged --quiet || (git commit -m "chore: update stable Homebrew casks/formula [skip ci]" && git push origin main)

41
.github/workflows/update-nix-stable.yml vendored Normal file
View file

@ -0,0 +1,41 @@
name: Update Nix Flake (Stable)
on:
release:
types: [published]
jobs:
update-flake:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: main
- uses: DeterminateSystems/nix-installer-action@main
- name: Prefetch release source and update flake.nix
run: |
TAG="${{ github.event.release.tag_name }}"
VERSION="${TAG#v}"
echo "Processing tag $TAG (version: $VERSION)"
BASE32_HASH=$(nix-prefetch-url --unpack \
"https://github.com/LCE-Hub/LCE-Emerald-Launcher/archive/refs/tags/${TAG}.tar.gz")
SRC_HASH=$(nix hash to-sri --type sha256 "$BASE32_HASH")
echo "stableSrcHash: $SRC_HASH"
python3 scripts/update-nix-stable.py --version "$VERSION" --src-hash "$SRC_HASH"
- name: Commit and push changes
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add flake.nix
git diff --quiet && git diff --staged --quiet || (
git commit -m "chore: update Nix stable pin to ${{ github.event.release.tag_name }} [skip ci]" &&
git push origin main
)

12
.gitignore vendored
View file

@ -1,5 +1,6 @@
# Rust # Rust
/src-tauri/target/ /src-tauri/target/
/src-tauri/tests
# Node # Node
/node_modules/ /node_modules/
@ -23,6 +24,10 @@
.DS_Store .DS_Store
Thumbs.db Thumbs.db
# Nix
/result
/result-*
# Log files # Log files
*.log *.log
@ -30,4 +35,9 @@ Thumbs.db
/.flatpak-builder /.flatpak-builder
/*.flatpak /*.flatpak
/emerald-repo /emerald-repo
/ignore/* /ignore/*
# Android bundled runtime assets (too large for GitHub; must be present in the working tree)
/src-tauri/gen/android/app/src/main/assets/imagefs.tar.zst
/src-tauri/gen/android/app/src/main/assets/proton-*.tar.zst

3
.gitmodules vendored
View file

@ -1,3 +1,6 @@
[submodule "flatpak/shared-modules"] [submodule "flatpak/shared-modules"]
path = flatpak/shared-modules path = flatpak/shared-modules
url = https://github.com/flathub/shared-modules.git url = https://github.com/flathub/shared-modules.git
[submodule "DiamondRuntime"]
path = DiamondRuntime
url = https://github.com/LCE-Hub/DiamondRuntime.git

View file

@ -32,4 +32,17 @@ codesign --force --deep --sign - "/path/to/Emerald\ Legacy\ Launcher.app"
```sh ```sh
pnpm flatpak # or npm pnpm flatpak # or npm
``` ```
## Gentoo
A Portage overlay lives in [`gentoo/`](gentoo/). See the GNU/Linux installation section in [README.md](README.md).
## Android
Building Emerald on Android is pretty easy,
```sh
pnpm android:assets #neo: fetches the rootfs and proton11
pnpm tauri android build -t aarch64
```

View file

@ -0,0 +1,18 @@
cask "lce-emerald-launcher" do
version "1.6.1"
sha256 intel: "dd86c3f63088585f71ab94acd7c3e3ec0b535fc06ef71e7770741e08fe60782f",
arm: "e2e6c50a5b0b847ed7c857ab8a4ae421fa8666096f3c9fa8bb216f21639dcfd2"
url "https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases/download/v#{version}/LCE.Emerald.Launcher_#{version}_#{arch}.dmg"
name "LCE Emerald Launcher"
desc "Minecraft Legacy Console Edition Launcher"
homepage "https://github.com/LCE-Hub/LCE-Emerald-Launcher"
app "LCE Emerald Launcher/LCE Emerald Launcher.app"
zap trash: [
"~/Library/Application Support/com.emerald.legacy",
"~/Library/Preferences/com.emerald.legacy.plist",
"~/Library/Saved Application State/com.emerald.legacy.savedState",
]
end

1
DiamondRuntime Submodule

@ -0,0 +1 @@
Subproject commit c3f56e880c4c59fe591fa2bf863ea6f247886749

View file

@ -0,0 +1,19 @@
class LceEmeraldLauncher < Formula
desc "Minecraft Legacy Console Edition Launcher"
homepage "https://github.com/LCE-Hub/LCE-Emerald-Launcher-cask"
url "https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases/download/v#{version}/LCE.Emerald.Launcher_#{version}_amd64.AppImage"
sha256 "3f135df96014e6bf83ced13a89ba2ec4599532104e60aea97c45d1d246de62f2"
version "1.6.1"
license "GPL-3.0-only"
depends_on :linux
def install
# Rename and install the AppImage
bin.install "LCE.Emerald.Launcher_#{version}_amd64.AppImage" => "lce-emerald-launcher"
end
test do
assert_predicate bin/"lce-emerald-launcher", :exist?
end
end

216
README.md
View file

@ -1,12 +1,11 @@
<div align="center"> <div align="center">
<img height="150" src="https://raw.githubusercontent.com/Emerald-Legacy-Launcher/Emerald-Legacy-Launcher/refs/heads/main/public/images/icon.png" alt="LCE Emerald Launcher Logo"> <img height="150" src="https://raw.githubusercontent.com/LCE-Hub/LCE-Emerald-Launcher/refs/heads/main/public/images/icon.png" alt="LCE Emerald Launcher Logo">
<h1>LCE Emerald Launcher</h1> <h1>LCE Emerald Launcher</h1>
<p><strong>FOSS cross-platform launcher for Minecraft Legacy Console Edition</strong></p> <p><strong>FOSS cross-platform launcher for Minecraft Legacy Console Edition</strong></p>
<p> <p>
<img src="https://img.shields.io/badge/version-1.0.0-blue?style=flat-square" alt="Version"> <img src="https://img.shields.io/badge/version-1.6.1-blue?style=flat-square" alt="Version">
<img src="https://img.shields.io/badge/license-GPL--3.0-green?style=flat-square" alt="License"> <img src="https://img.shields.io/badge/license-GPL--3.0-green?style=flat-square" alt="License">
<img src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey?style=flat-square" alt="Platforms"> <img src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20GNU/Linux-lightgrey?style=flat-square" alt="Platforms">
</p> </p>
</div> </div>
@ -14,16 +13,20 @@
<a href="https://ko-fi.com/kayjann"> <a href="https://ko-fi.com/kayjann">
<img src="https://img.shields.io/badge/ko--fi-Donate%20to%20the%20Project-grey?style=for-the-badge&logo=kofi&logoColor=white&labelColor=FF5E5B" alt="Donate to the Project"> <img src="https://img.shields.io/badge/ko--fi-Donate%20to%20the%20Project-grey?style=for-the-badge&logo=kofi&logoColor=white&labelColor=FF5E5B" alt="Donate to the Project">
</a> </a>
<a href="https://discord.gg/vD8akRU24f"> <a href="https://discord.gg/cQVKhQXcCx">
<img src="https://img.shields.io/badge/discord-Join%20the%20Community-grey?style=for-the-badge&logo=discord&logoColor=white&labelColor=5865F2" alt="Join the Community"> <img src="https://img.shields.io/badge/discord-Join%20the%20Community-grey?style=for-the-badge&logo=discord&logoColor=white&labelColor=5865F2" alt="Join the Community">
</a> </a>
</p> </p>
--- ---
> [!IMPORTANT] | Main Screen | Versions Menu | Workshop |
> **macOS support for LCE Emerald Launcher is currently in Beta.** |-------------|---------------|----------|
> Expect minor bugs, frequent updates, and features that are still being polished as we work toward a stable release. | <img width="1388" height="918" alt="image" src="https://github.com/user-attachments/assets/28269ade-db3b-4bff-ac15-e8a6eb53a69e" /> | <img width="1551" height="997" alt="image" src="https://github.com/user-attachments/assets/dca543ab-94cf-48ce-8e61-dfe92fe278a7" /> | <img width="1551" height="997" alt="image" src="https://github.com/user-attachments/assets/d7bc0ed2-3bf4-4704-83c3-75c716d13a65" /> |
<a href="https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases/latest">
<img src="https://raw.githubusercontent.com/rubenpgrady/get-it-on-github/refs/heads/main/get-it-on-github.png" style="width: 160px">
</a>
--- ---
@ -31,15 +34,12 @@
- [Overview](#overview) - [Overview](#overview)
- [Features](#features) - [Features](#features)
- [Screenshots](#screenshots)
- [Installation](#installation) - [Installation](#installation)
- [Windows](#windows) - [Windows](#windows)
- [macOS](#macos) - [macOS](#macos)
- [Linux](#linux) - [GNU/Linux](#gnulinux)
- [Game Versions & Partnerships](#game-versions--partnerships)
- [Building from Source](#building-from-source) - [Building from Source](#building-from-source)
- [Troubleshooting](#troubleshooting) - [Troubleshooting](#troubleshooting)
- [Roadmap](#roadmap)
- [Acknowledgments](#acknowledgments) - [Acknowledgments](#acknowledgments)
- [License](#license) - [License](#license)
@ -47,63 +47,29 @@
## Overview ## Overview
Emerald Legacy Launcher is a **high-performance, open-source launcher** for Minecraft Legacy Console Edition (LCE). Built to centralize the fragmented LCE scene, it provides a lightweight, unified hub for playing your favorite console versions of Minecraft on PC. LCE Emerald Launcher is the easiest way to play Minecraft Legacy Console Edition on PC. Install community builds, manage versions, customize skins, and launch instantly from one lightweight hub.
**Why Emerald?** Traditional launchers often rely on bloated frameworks, consuming excessive resources. Emerald utilizes a modern **Rust/Tauri** architecture, using only **~15MB of RAM** — leaving your PC's resources dedicated to the game itself. **Why Emerald?** Traditional launchers often rely on bloated frameworks, consuming excessive resources. Emerald utilizes a modern **Tauri** architecture, using only a low amount of RAM, leaving your PC's resources dedicated to the game itself.
The project started as a solo effort and has grown into a collaborative community project, bringing together expertise from various LCE preservation initiatives.
--- ---
## Features ## Features
### Core Features
| Feature | Description | | Feature | Description |
|---------|-------------| |---------|-------------|
| **Automated Setup** | One-click installation for TU19, Legacy Evolved, Revelations, and 360Revived versions | | **Automated Setup** | One-click installation for neoLegacy, Revelations, 360 Revived, Hellish Ends and others |
| **Cross-Platform** | Native support for Windows, macOS (Intel & Apple Silicon), and Linux | | **Cross-Platform** | Native support for Windows, macOS (Intel & Apple Silicon), and Linux (Steam Deck is also supported!) |
| **Lightweight** | Very light RAM usage thanks to Rust backend and Tauri framework | | **Lightweight** | Very light RAM usage thanks to Rust backend and Tauri framework |
| **Easy Configuration** | Built-in settings for username, game parameters, and profiles | | **Easy Configuration** | Built-in settings for username, game parameters, and profiles |
| **Skin Viewer** | Interactive skin preview using Three.js with layer support |
### Advanced Features | **Custom Skins** | Import and manage your own skins and capes |
| **Controller Support** | Full gamepad navigation support (keyboard support included) |
| Feature | Description |
|---------|-------------|
| **3D Skin Viewer** | Interactive skin preview using Three.js with layer support |
| **Custom Skins** | Import and manage your own skins with local storage |
| **Controller Support** | Full gamepad navigation support (keyboard fallback included) |
| **Discord Rich Presence** | Show your current activity and game status on Discord | | **Discord Rich Presence** | Show your current activity and game status on Discord |
| **Workshop and modloader** | *(Coming Soon)* Community content and mod browser | | **Workshop** | Community content like DLCs, Textures, Skins and more |
| **Free Multiplayer** | Powered by LCEOnline, Emerald provides a free multiplayer service so you can play with anyone without port forwarding! |
--- | **Developer Tools** | Create and edit 4J's propriatery file formats with ease! |
| **World conversion** | Import `.ms` files, Java worlds or even an Xbox 360/PS3 world! |
## Game Versions & Partnerships | **Playtime counting** | Count your playtime and see your most active days! |
Emerald Legacy Launcher integrates multiple community-driven builds of Minecraft Legacy Console Edition. Each build brings unique features and improvements to the classic LCE experience.
### Available Builds
| Build | Developer | Platform | Description |
|-------|-----------|----------|-------------|
| **[Revelations](https://github.com/itsRevela/MinecraftConsoles)** | [@itsRevela](https://github.com/itsRevela) | GitHub | Enhanced LCE with uncapped FPS, graphics fixes, hardcore hearts, and dedicated server security. Features LAN multiplayer, split-screen, and keyboard & mouse support. |
| **[360 Revived](https://github.com/BluTac10/360Revived)** | [@BluTac10](https://github.com/BluTac10) | GitHub | PC port of Xbox 360 Edition TU19 with desktop optimizations. Features keyboard & mouse, fullscreen, LAN multiplayer, dedicated server, and split-screen support. |
| **[Legacy Evolved](https://codeberg.org/piebot/LegacyEvolved)** | [@piebot](https://codeberg.org/piebot) | Codeberg | Backports newer title updates to LCE TU19 base. Currently porting TU25 (~98% complete) and TU31 (~76% complete). |
### Coming Soon: Legacy Minecraft Restoration Project (LMRP)
**LMRP** will be our **first major collaboration** to bring fully functional **online mini-games** back to Legacy Console Edition. This groundbreaking project aims to:
- Restore classic LCE mini-games (Battle, Tumble, Glide)
- Preserve the authentic mini-game mechanics and maps
Stay tuned for updates on this exciting partnership! :)
---
## Screenshots
<img width="1680" alt="Emerald Legacy Launcher Screenshot" src="https://github.com/user-attachments/assets/a5dd6aa1-2200-4f08-84e5-e75a8052ba79" />
--- ---
@ -111,12 +77,10 @@ Stay tuned for updates on this exciting partnership! :)
### Windows ### Windows
Download the latest release from [GitHub Releases](https://github.com/Emerald-Legacy-Launcher/Emerald-Legacy-Launcher/releases):
| Format | Best For | | Format | Best For |
|--------|----------| |--------|----------|
| `.exe` (NSIS) | Standard installation with uninstaller | | `.exe` (NSIS) | Standard installation with uninstaller |
| `.msi` | Enterprise/IT deployment | | `.msi` | A fallback option in case the `.exe` does not work |
**⚠️ Windows SmartScreen Warning:** **⚠️ Windows SmartScreen Warning:**
> Since the launcher is unsigned, Windows may show a "Windows protected your PC" warning. To proceed: > Since the launcher is unsigned, Windows may show a "Windows protected your PC" warning. To proceed:
@ -128,7 +92,8 @@ Download the latest release from [GitHub Releases](https://github.com/Emerald-Le
| Format | Architecture | | Format | Architecture |
|--------|-------------| |--------|-------------|
| `.dmg` (x64) | Intel Macs | | `.dmg` (x64) | Intel Macs |
| `.dmg` (aarch64) | Apple Silicon (M1/M2/M3) | | `.dmg` (aarch64) | Apple Silicon (M-series and A-series) |
| Homebrew Cask | Intel & Apple Silicon (via tap) |
**Installation Steps:** **Installation Steps:**
1. Download the appropriate DMG for your Mac 1. Download the appropriate DMG for your Mac
@ -137,7 +102,16 @@ Download the latest release from [GitHub Releases](https://github.com/Emerald-Le
- Right-click the app → **Open** → confirm **Open** - Right-click the app → **Open** → confirm **Open**
- Or run: `xattr -cr "/Applications/Emerald Legacy Launcher.app"` - Or run: `xattr -cr "/Applications/Emerald Legacy Launcher.app"`
### Linux **Homebrew:**
```bash
# Tap the repository
brew tap LCE-Hub/lce-emerald-launcher https://github.com/LCE-Hub/LCE-Emerald-Launcher
# Install stable release
brew install --cask lce-emerald-launcher
```
### GNU/Linux
Multiple distribution formats available: Multiple distribution formats available:
@ -146,13 +120,67 @@ Multiple distribution formats available:
| `.deb` | Debian, Ubuntu, Linux Mint | | `.deb` | Debian, Ubuntu, Linux Mint |
| `.rpm` | RHEL, Fedora, openSUSE | | `.rpm` | RHEL, Fedora, openSUSE |
| `.AppImage` | Universal (no installation required) | | `.AppImage` | Universal (no installation required) |
| `Flatpak` | Universal with sandboxing | | `.flatpak` | Universal with sandboxing (recommended over AppImage) |
| Nix flake | NixOS and any Linux with [Nix](https://nixos.org/download/) installed |
| Homebrew | Any Linux with [Homebrew](https://brew.sh/) installed |
**AUR:**
Special thanks to [AntiApple4life](https://aur.archlinux.org/packages?O=0&SeB=m&K=AntiApple4life) for the AUR packages!
```bash
# git version
paru -S emerald-legacy-launcher-git # or yay
# stable version
paru -S emerald-legacy-launcher # or yay
# binary stable version
paru -S emerald-legacy-launcher-bin # or yay
```
**Nix:**
Requires [Nix](https://nixos.org/download/) with flakes enabled (`experimental-features = nix-command flakes` in `nix.conf`).
```bash
# stable release (default) — tracks https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases
nix run github:LCE-Hub/LCE-Emerald-Launcher
# or explicitly:
nix run github:LCE-Hub/LCE-Emerald-Launcher#emerald-legacy-launcher
# git / latest main
nix run github:LCE-Hub/LCE-Emerald-Launcher#emerald-legacy-launcher-git
# Install to your user profile
nix profile install github:LCE-Hub/LCE-Emerald-Launcher # stable
nix profile install github:LCE-Hub/LCE-Emerald-Launcher#emerald-legacy-launcher-git # git
```
On NixOS, add the flake as an input and install `packages.<system>.default` / `emerald-legacy-launcher` (stable) or `emerald-legacy-launcher-git` (main).
**Gentoo:**
This repository includes a local Portage overlay under [`gentoo/`](gentoo/). Point `repos.conf` at that directory, then emerge the package (build fetches Cargo/npm deps over the network; Wine/Proton is needed at runtime to launch games):
```bash
# /etc/portage/repos.conf/emerald-legacy-launcher.conf
[emerald-legacy-launcher]
location = /path/to/LCE-Emerald-Launcher/gentoo
auto-sync = no
sudo emerge games-util/emerald-legacy-launcher # 1.6.1
# sudo emerge =games-util/emerald-legacy-launcher-9999 # live git
```
**Flatpak Installation:** **Flatpak Installation:**
```bash ```bash
flatpak install emerald.flatpak flatpak install emerald.flatpak
``` ```
**Homebrew:**
```bash
# Tap the repository
brew tap LCE-Hub/lce-emerald-launcher https://github.com/LCE-Hub/LCE-Emerald-Launcher
# Install stable release
brew install lce-emerald-launcher
```
**Dependencies (if building from source):** **Dependencies (if building from source):**
```bash ```bash
# Ubuntu/Debian # Ubuntu/Debian
@ -166,37 +194,7 @@ sudo dnf install webkit2gtk4.1-devel libappindicator-gtk3-devel librsvg2-devel p
## Building from Source ## Building from Source
### Requirements Refer to [BUILDING.md](BUILDING.md).
- **Node.js** (LTS recommended)
- **Rust** (latest stable)
- **PNPM** (recommended) or NPM
- Platform-specific dependencies:
- Linux: `WebKit2GTK-4.1`
- macOS: WebKit (pre-installed)
- Windows: Edge WebView2 Runtime (usually pre-installed)
### Build Steps
```bash
# Clone the repository
git clone https://github.com/Emerald-Legacy-Launcher/Emerald-Legacy-Launcher.git
cd Emerald-Legacy-Launcher
# Install dependencies
pnpm install
# Development mode
pnpm tauri dev
# Production build
pnpm tauri build
```
**Flatpak Build:**
```bash
pnpm flatpak
```
--- ---
@ -230,36 +228,20 @@ sudo apt install --reinstall libwebkit2gtk-4.1-0
### Controller Not Detected ### Controller Not Detected
- Connect controller before launching the launcher - Connect controller before launching the launcher
- Xbox and PlayStation controllers are best supported - PlayStation controllers are not supported in-game but work in launcher. Use Steam Input.
---
## Roadmap
Track our progress and upcoming features on the [Development Roadmap](https://github.com/orgs/Emerald-Legacy-Launcher/projects/2).
--- ---
## Acknowledgments ## Acknowledgments
*Proudly developed by a passionate team from the LCE community.* - **The Emerald Team** - Technical development and maintenance
- **4J Studios & Mojang** - Original creators of Legacy Console Edition
- **The Emerald Team** — Technical development and maintenance - **The LCE Community** - Research and foundations for LCE on PC
- **4J Studios & Mojang** — Original creators of Legacy Console Edition - **Str1k3r** - Original creator of LCEOnline
- **The LCE Community** — Research and foundations for LCE on PC - **DTention** - Original creator of [LCE-Save-Converter](https://github.com/dtentiion/LCE-Save-Converter)
- **Tauri & Rust Communities** — Core technologies and ecosystem
--- ---
## License ## License
This project is licensed under the **[GNU GPL v3 License](LICENSE)**. This project is licensed under the **[GNU GPL v3 License](LICENSE)**.
You are free to:
- **Use** — Use the launcher for any purpose
- **Study** — Access and study the source code
- **Share** — Redistribute copies
- **Improve** — Submit improvements and modifications
See `LICENSE` file for full terms.

BIN
RELEASE_ARTWORK.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

25
RELEASE_NOTES.md Normal file
View file

@ -0,0 +1,25 @@
![Release Artwork](https://raw.githubusercontent.com/LCE-Hub/LCE-Emerald-Launcher/refs/heads/main/RELEASE_ARTWORK.png)
- Fix title bar and panorama not showing on setup
- **Partnership with LapboardMC!**
- **Removed LCEOnline Client, LCEOnline functionality is built into Emerald**
- Fix audio skipping bug on Windows
- Gentoo, Nix flakes and Homebrew support
- **Xbox 360, PS3 and Java -> LCE world importing support (beta!)**
- Proper Discord RPC shutdown
- Remove click effects when disabling animations
- **FULL Android Port powered by our own DiamondRuntime for running the game!**
- Fix neoLegacy downloading issue
- **A lot of UI polish (thanks piebot!)**
- Add 2 default capes
- Add more default skins
- **Emerald Arguments.Schema support!**
- **Partnership with Amythest LCE**
- Fix Slim skins rendering in-launcher
- Randomize splash texts
- **Partnership with Project Lost Legacy (soon!)**
- Add Player Head to Discord RPC
- Make skin face inwards instead of outwards
- Game crash log viewer support!
- **Intel macOS support**
- And more that I forgot!

27
flake.lock Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1784120854,
"narHash": "sha256-KesHgItiZPgGX740axSiQLcIQ8D24MDqNpkKYWIek8k=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "753cc8a3a87467296ddd1fa93f0cc3e81120ee46",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

107
flake.nix Normal file
View file

@ -0,0 +1,107 @@
{
description = "LCE Emerald Launcher FOSS cross-platform launcher for Minecraft Legacy Console Edition";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs =
{ self, nixpkgs }:
let
inherit (nixpkgs) lib;
systems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
forAllSystems = lib.genAttrs systems;
pkgsFor =
system:
import nixpkgs {
inherit system;
overlays = [ self.overlays.default ];
};
# Bump these together when packaging a new upstream stable release.
stableVersion = "1.6.0";
stableSrcHash = "sha256-VlqBCZa42MLmJ1nUNlH7PIcLp/X7mBLCS/hm/ISiHNA=";
in
{
overlays.default = final: _prev: {
emerald-legacy-launcher = final.callPackage ./nix/package.nix {
version = stableVersion;
src = final.fetchFromGitHub {
owner = "LCE-Hub";
repo = "LCE-Emerald-Launcher";
rev = "v${stableVersion}";
hash = stableSrcHash;
};
};
emerald-legacy-launcher-git = final.callPackage ./nix/package.nix {
version = "unstable-${self.shortRev or self.dirtyShortRev or "dirty"}";
src = self;
};
};
packages = forAllSystems (
system:
let
pkgs = pkgsFor system;
in
{
default = pkgs.emerald-legacy-launcher;
emerald-legacy-launcher = pkgs.emerald-legacy-launcher;
emerald-legacy-launcher-git = pkgs.emerald-legacy-launcher-git;
}
);
apps = forAllSystems (system: {
default = {
type = "app";
program = lib.getExe self.packages.${system}.default;
};
emerald-legacy-launcher-git = {
type = "app";
program = lib.getExe self.packages.${system}.emerald-legacy-launcher-git;
};
});
checks = forAllSystems (system: {
package = self.packages.${system}.default;
package-git = self.packages.${system}.emerald-legacy-launcher-git;
});
devShells = forAllSystems (
system:
let
pkgs = pkgsFor system;
in
{
default = pkgs.mkShell {
inputsFrom = [ pkgs.emerald-legacy-launcher-git ];
packages = with pkgs; [
cargo
rustc
rustfmt
clippy
cargo-tauri
nodejs
pnpm_10
unzip
libarchive
python3
pkg-config
];
shellHook = ''
echo "Emerald Legacy Launcher dev shell"
echo " pnpm install && pnpm tauri dev"
'';
};
}
);
formatter = forAllSystems (system: (pkgsFor system).nixfmt);
};
}

View file

@ -1,7 +1,9 @@
[Desktop Entry] [Desktop Entry]
Name=Emerald Legacy Launcher Name=Emerald Legacy Launcher
Comment=FOSS cross-platform launcher for Minecraft Legacy Console Edition Comment=FOSS cross-platform launcher for Minecraft Legacy Console Edition
Exec=emerald-legacy-launcher Exec=emerald-legacy-launcher %u
Icon=io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher Icon=io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher
Type=Application Type=Application
Categories=Game; Categories=Game;
MimeType=x-scheme-handler/emerald;x-scheme-handler/emeraldlauncher;x-scheme-handler/discord-1482504445152460871;
StartupNotify=true

View file

@ -12,7 +12,7 @@
<url type="homepage">https://github.com</url> <url type="homepage">https://github.com</url>
<developer_name>Emerald Team</developer_name> <developer_name>Emerald Team</developer_name>
<releases> <releases>
<release version="1.0.0" date="2026-03-19"> <release version="1.6.0" date="2026-03-19">
<description> <description>
<p>Latest stable release of the Emerald Legacy Launcher.</p> <p>Latest stable release of the Emerald Legacy Launcher.</p>
</description> </description>

View file

@ -8,6 +8,7 @@ sdk-extensions:
command: emerald-legacy-launcher command: emerald-legacy-launcher
finish-args: finish-args:
- --share=network - --share=network
- --share=ipc
- --device=input - --device=input
- --socket=x11 - --socket=x11
- --socket=wayland - --socket=wayland
@ -15,6 +16,9 @@ finish-args:
- --filesystem=xdg-data - --filesystem=xdg-data
- --socket=pulseaudio - --socket=pulseaudio
- --filesystem=xdg-run/pipewire-0 - --filesystem=xdg-run/pipewire-0
- --socket=session-bus
- --talk-name=org.freedesktop.portal.Desktop
- --talk-name=org.freedesktop.portal.OpenURI
modules: modules:
- shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json - shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json

View file

@ -0,0 +1 @@
DIST emerald-legacy-launcher-1.5.1.tar.gz 18500442 BLAKE2B 365d9dd36ee6fddb90625719b599c8fc492eba4ce0fb8926c953f2a7d7f4987bf77d91de6a140a489534ba61e8a71bf9e65d8e015a35af31bccb84ca3a023178 SHA512 c713ef81e56d55d7135fa4228f875822a3eee38ace86d8d28a59a8b4afeff28844bf698e9902eb66075b425a0fb71ae72969ae1fe99ce185a005b5f42a4dccc8

View file

@ -0,0 +1,79 @@
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop xdg
DESCRIPTION="FOSS cross-platform launcher for Minecraft Legacy Console Edition"
HOMEPAGE="https://github.com/LCE-Hub/LCE-Emerald-Launcher"
SRC_URI="https://github.com/LCE-Hub/LCE-Emerald-Launcher/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/LCE-Emerald-Launcher-${PV}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
# Cargo crates and npm packages are fetched at build time.
RESTRICT="network-sandbox"
RDEPEND="
dev-libs/glib:2
dev-libs/libayatana-appindicator
dev-libs/openssl:=
net-libs/libsoup:3.0
net-libs/webkit-gtk:4.1
x11-libs/cairo
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3
x11-libs/pango
"
DEPEND="${RDEPEND}"
BDEPEND="
|| (
>=dev-lang/rust-1.77.0:*
>=dev-lang/rust-bin-1.77.0:*
)
net-libs/nodejs[npm]
virtual/pkgconfig
"
# Rust binaries ignore *FLAGS from make.conf.
QA_FLAGS_IGNORED="usr/bin/emerald-legacy-launcher"
src_prepare() {
default
# Disable updater artifact signing (no Tauri signing key in distro builds).
sed -i \
-e 's/"createUpdaterArtifacts": true/"createUpdaterArtifacts": false/' \
src-tauri/tauri.conf.json || die
}
src_compile() {
local -x CI=true
local -x npm_config_audit=false
local -x npm_config_fund=false
local -x npm_config_update_notifier=false
npm install || die "npm install failed"
npm run tauri -- build --no-bundle || die "tauri build failed"
}
src_install() {
dobin src-tauri/target/release/emerald-legacy-launcher
newicon -s 32 src-tauri/icons/32x32.png emerald-legacy-launcher.png
newicon -s 64 src-tauri/icons/64x64.png emerald-legacy-launcher.png
newicon -s 128 src-tauri/icons/128x128.png emerald-legacy-launcher.png
newicon -s 256 src-tauri/icons/128x128@2x.png emerald-legacy-launcher.png
newicon -s 512 src-tauri/icons/icon.png emerald-legacy-launcher.png
domenu "${FILESDIR}"/emerald-legacy-launcher.desktop
insinto /usr/share/metainfo
newins flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml \
io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml
dodoc README.md LICENSE
}

View file

@ -0,0 +1,79 @@
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop git-r3 xdg
DESCRIPTION="FOSS cross-platform launcher for Minecraft Legacy Console Edition"
HOMEPAGE="https://github.com/LCE-Hub/LCE-Emerald-Launcher"
EGIT_REPO_URI="https://github.com/LCE-Hub/LCE-Emerald-Launcher.git"
LICENSE="GPL-3"
SLOT="0"
PROPERTIES="live"
# Cargo crates and npm packages are fetched at build time.
RESTRICT="network-sandbox"
RDEPEND="
dev-libs/glib:2
dev-libs/libayatana-appindicator
dev-libs/openssl:=
net-libs/libsoup:3.0
net-libs/webkit-gtk:4.1
x11-libs/cairo
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3
x11-libs/pango
"
DEPEND="${RDEPEND}"
BDEPEND="
|| (
>=dev-lang/rust-1.77.0:*
>=dev-lang/rust-bin-1.77.0:*
)
net-libs/nodejs[npm]
virtual/pkgconfig
"
# Rust binaries ignore *FLAGS from make.conf.
QA_FLAGS_IGNORED="usr/bin/emerald-legacy-launcher"
src_prepare() {
default
# Prefer npm for the frontend build; disable updater artifact signing
# (no Tauri signing key in distro builds).
sed -i \
-e 's/"createUpdaterArtifacts": true/"createUpdaterArtifacts": false/' \
src-tauri/tauri.conf.json || die
}
src_compile() {
local -x CI=true
local -x npm_config_audit=false
local -x npm_config_fund=false
local -x npm_config_update_notifier=false
npm install || die "npm install failed"
npm run tauri -- build --no-bundle || die "tauri build failed"
}
src_install() {
dobin src-tauri/target/release/emerald-legacy-launcher
newicon -s 32 src-tauri/icons/32x32.png emerald-legacy-launcher.png
newicon -s 64 src-tauri/icons/64x64.png emerald-legacy-launcher.png
newicon -s 128 src-tauri/icons/128x128.png emerald-legacy-launcher.png
newicon -s 256 src-tauri/icons/128x128@2x.png emerald-legacy-launcher.png
newicon -s 512 src-tauri/icons/icon.png emerald-legacy-launcher.png
domenu "${FILESDIR}"/emerald-legacy-launcher.desktop
insinto /usr/share/metainfo
newins flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml \
io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml
dodoc README.md LICENSE
}

View file

@ -0,0 +1,11 @@
[Desktop Entry]
Name=LCE Emerald Launcher
Comment=FOSS cross-platform launcher for Minecraft Legacy Console Edition
Exec=emerald-legacy-launcher %u
Icon=emerald-legacy-launcher
Type=Application
Categories=Game;
MimeType=x-scheme-handler/emerald;x-scheme-handler/emeraldlauncher;x-scheme-handler/discord-1482504445152460871;
StartupNotify=true
StartupWMClass=emerald-legacy-launcher
Terminal=false

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<upstream>
<remote-id type="github">LCE-Hub/LCE-Emerald-Launcher</remote-id>
<bugs-to>https://github.com/LCE-Hub/LCE-Emerald-Launcher/issues</bugs-to>
</upstream>
<longdescription lang="en">
LCE Emerald Launcher is a FOSS cross-platform Tauri launcher for
Minecraft Legacy Console Edition. It installs community builds,
manages versions, skins, and workshop content, and launches the game
via Wine/Proton on Linux.
</longdescription>
</pkgmetadata>

View file

@ -0,0 +1,3 @@
masters = gentoo
thin-manifests = true
sign-manifests = false

View file

@ -0,0 +1 @@
emerald-legacy-launcher

View file

@ -4,6 +4,14 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" /> <link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script>
if (/Android/i.test(navigator.userAgent)) {
document.documentElement.classList.add("is-android");
document
.querySelector('meta[name="viewport"]')
.setAttribute("content", "width=1280");
}
</script>
<link rel="preload" href="/fonts/Mojangles.ttf" as="font" type="font/truetype" crossorigin> <link rel="preload" href="/fonts/Mojangles.ttf" as="font" type="font/truetype" crossorigin>
<link rel="preload" href="/images/MenuTitle.png" as="image"> <link rel="preload" href="/images/MenuTitle.png" as="image">
<title>Emerald Legacy Launcher</title> <title>Emerald Legacy Launcher</title>

135
nix/package.nix Normal file
View file

@ -0,0 +1,135 @@
{
lib,
stdenv,
rustPlatform,
cargo-tauri,
nodejs,
pkg-config,
pnpm_10,
fetchPnpmDeps,
pnpmConfigHook,
wrapGAppsHook4,
openssl,
webkitgtk_4_1,
glib-networking,
libayatana-appindicator,
librsvg,
udev,
version ? "1.5.1",
src ? null,
}:
# Disable updater artifact signing — Nix builds have no Tauri signing key.
let
tauriConfOverride = builtins.toFile "tauri-nix.conf.json" ''
{
"bundle": {
"createUpdaterArtifacts": false
}
}
'';
defaultSrc = lib.cleanSourceWith {
src = ../.;
filter =
path: _type:
let
baseName = baseNameOf path;
in
!(builtins.elem baseName [
".git"
"node_modules"
"target"
"dist"
"build-flatpak"
"emerald-repo"
"result"
"result-dev"
]);
};
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "emerald-legacy-launcher";
inherit version;
src = if src != null then src else defaultSrc;
cargoRoot = "src-tauri";
buildAndTestSubdir = finalAttrs.cargoRoot;
cargoHash = "sha256-tSbFyle2eQ5Dw9fTXloIepOZU1UxhkF6/KZBRXehm4w=";
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-6na8YlSTkdnSse8DQjBnTBpfmKSYj3+1FLWVyyfUx1g=";
};
nativeBuildInputs = [
cargo-tauri.hook
nodejs
pkg-config
pnpmConfigHook
pnpm_10
]
++ lib.optionals stdenv.hostPlatform.isLinux [ wrapGAppsHook4 ];
buildInputs = [
openssl
]
++ lib.optionals stdenv.hostPlatform.isLinux [
glib-networking
libayatana-appindicator
librsvg
udev
webkitgtk_4_1
];
tauriBuildFlags = [
"-c"
tauriConfOverride
];
postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace "$cargoDepsCopy"/*/libappindicator-sys-*/src/lib.rs \
--replace-fail "libayatana-appindicator3.so.1" \
"${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
'';
# Prefer the project's pnpm frontend build over the npm beforeBuildCommand.
preBuild = ''
substituteInPlace src-tauri/tauri.conf.json \
--replace-fail '"beforeBuildCommand": "npm run build"' \
'"beforeBuildCommand": "pnpm run build"'
'';
preFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
libayatana-appindicator
udev
]
}
)
'';
doCheck = false;
env = {
CI = "true";
};
meta = {
description = "FOSS cross-platform launcher for Minecraft Legacy Console Edition";
homepage = "https://github.com/LCE-Hub/LCE-Emerald-Launcher";
changelog = lib.mkIf (!(lib.hasPrefix "unstable-" version)) (
"https://github.com/LCE-Hub/LCE-Emerald-Launcher/releases/tag/v${version}"
);
license = lib.licenses.gpl3Only;
mainProgram = "emerald-legacy-launcher";
platforms = lib.platforms.linux ++ lib.platforms.darwin;
maintainers = [ ];
};
})

7649
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,39 +1,51 @@
{ {
"name": "emerald-legacy-launcher", "name": "emerald-legacy-launcher",
"private": true, "private": true,
"version": "1.0.1", "version": "1.6.1",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "tsc && vite build", "build": "tsc && vite build",
"preview": "vite preview", "preview": "vite preview",
"tauri": "tauri", "tauri": "tauri",
"tauri:build": "tauri build && pnpm run post-build:macos", "tauri:build": "tauri build && pnpm run post-build:macos",
"post-build:macos": "sh src-tauri/scripts/post-build-macos.sh", "post-build:macos": "bash src-tauri/scripts/post-build-macos.sh",
"flatpak": "flatpak-builder --user --install-deps-from=flathub --repo=emerald-repo --force-clean build-flatpak flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml && flatpak build-bundle emerald-repo emerald.flatpak io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher" "android:assets": "node scripts/download-android-assets.mjs",
}, "flatpak": "flatpak-builder --user --install-deps-from=flathub --repo=emerald-repo --force-clean build-flatpak flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.yml && flatpak build-bundle emerald-repo emerald.flatpak io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher"
"dependencies": { },
"@tauri-apps/api": "^2", "dependencies": {
"@tauri-apps/plugin-opener": "^2", "@tauri-apps/api": "^2",
"framer-motion": "^12.36.0", "@tauri-apps/plugin-deep-link": "~2.4.9",
"react": "^19.1.0", "@tauri-apps/plugin-opener": "^2",
"react-dom": "^19.1.0", "@tauri-apps/plugin-process": "~2.3.1",
"three": "^0.183.2" "@tauri-apps/plugin-updater": "~2.10.1",
}, "framer-motion": "^12.36.0",
"devDependencies": { "pako": "^2.1.0",
"@types/three": "^0.183.1", "qrcode": "^1.5.4",
"@tailwindcss/postcss": "^4.2.1", "react": "^19.1.0",
"@tailwindcss/vite": "^4.2.1", "react-dom": "^19.1.0",
"@tauri-apps/cli": "^2", "react-markdown": "^10.1.0",
"@types/react": "^19.1.8", "rehype-raw": "^7.0.0",
"@types/react-dom": "^19.1.6", "rehype-sanitize": "^6.0.0",
"@vitejs/plugin-react": "^4.6.0", "remark-gfm": "^4.0.1",
"autoprefixer": "^10.4.27", "three": "^0.183.2"
"postcss": "^8.5.8", },
"tailwindcss": "^4.2.1", "devDependencies": {
"typescript": "~5.8.3", "@tailwindcss/postcss": "^4.2.1",
"vite": "^7.0.4", "@tailwindcss/vite": "^4.2.1",
"tauri-plugin-drpc": "^1.0.3", "@tauri-apps/cli": "^2",
"tauri-plugin-gamepad-api": "^0.0.5" "@types/pako": "^2.0.4",
} "@types/qrcode": "^1.5.6",
} "@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@types/three": "^0.183.1",
"@vitejs/plugin-react": "^4.6.0",
"autoprefixer": "^10.4.27",
"postcss": "^8.5.8",
"tailwindcss": "^4.2.1",
"tauri-plugin-drpc": "^1.0.3",
"tauri-plugin-gamepad-api": "^0.0.5",
"typescript": "~5.8.3",
"vite": "^7.0.4"
}
}

48
pkg/AppImage/AppImage.sh Executable file
View file

@ -0,0 +1,48 @@
#!/bin/sh
#neo: credits: https://github.com/cjonas1999/OverBind/blob/master/pkg/AppImage/AppImage.sh
set -eu
ARCH="$(uname -m)"
SHARUN_REPO="https://raw.githubusercontent.com/pkgforge-dev/Anylinux-AppImages"
_commits_json=$(mktemp)
wget -qO "$_commits_json" \
"https://api.github.com/repos/pkgforge-dev/Anylinux-AppImages/commits?path=useful-tools/&per_page=100"
STABLE_SHA=$(node -e "
const data = JSON.parse(require('fs').readFileSync('$_commits_json', 'utf8'));
const now = Date.now(), h24 = 864e5;
for (let i = 0; i < data.length; i++) {
const t = new Date(data[i].commit.committer.date).getTime();
if (now - t < h24) continue;
const prev = data[i - 1];
if (!prev || new Date(prev.commit.committer.date).getTime() - t >= h24) {
process.stdout.write(data[i].sha);
process.exit(0);
}
}
process.stderr.write('No settled commit found in last 100 commits\n');
process.exit(1);
")
rm -f "$_commits_json"
echo "Pinning sharun scripts to settled commit $STABLE_SHA"
SHARUN="$SHARUN_REPO/$STABLE_SHA/useful-tools/quick-sharun.sh"
DEBLOATED_PKGS="$SHARUN_REPO/$STABLE_SHA/useful-tools/get-debloated-pkgs.sh"
#export UPINFO="gh-releases-zsync|${GITHUB_REPOSITORY%/*}|${GITHUB_REPOSITORY#*/}|latest|*$ARCH.AppImage.zsync"
export OUTNAME=Emerald-Legacy-Launcher-anylinux-"$ARCH".AppImage
export DESKTOP="/usr/share/applications/LCE Emerald Launcher.desktop"
export ICON=/usr/share/icons/hicolor/256x256@2/apps/emerald-legacy-launcher.png
export DEPLOY_OPENGL=1
rm -rf AppDir dist appinfo
wget --retry-connrefused --tries=30 "$DEBLOATED_PKGS" -O ./get-debloated-pkgs
wget --retry-connrefused --tries=30 "$SHARUN" -O ./quick-sharun
chmod +x ./quick-sharun ./get-debloated-pkgs
./get-debloated-pkgs --add-common --prefer-nano
./quick-sharun \
/usr/bin/emerald-legacy-launcher \
/usr/lib/libayatana-appindicator*.so*
mkdir -p "AppDir/usr/lib"
cp -r "/usr/lib/LCE Emerald Launcher" "AppDir/usr/lib/"
./quick-sharun --make-appimage
mkdir -p ./dist
mv -v ./*.AppImage* ./dist
echo "All Done!"

File diff suppressed because it is too large Load diff

BIN
public/Capes/4J.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

BIN
public/Skins/700.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

BIN
public/Skins/amy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
public/Skins/andi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
public/Skins/ava.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
public/Skins/byte.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
public/Skins/counterr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
public/Skins/huckle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 899 B

BIN
public/Skins/kowhaifan.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
public/Skins/str1k3r.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

BIN
public/Skins/tranq.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 989 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 447 B

BIN
public/images/LCE Team.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
public/images/check.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 715 B

BIN
public/images/checkbox.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
public/images/friends.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

View file

@ -0,0 +1,13 @@
<svg width="241" height="194" viewBox="0 0 241 194" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_1_219" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="-1" y="0" width="242" height="194">
<path d="M240.469 0.958984H-0.00585938V193.918H240.469V0.958984Z" fill="white"/>
</mask>
<g mask="url(#mask0_1_219)">
<path d="M96.1344 193.911C61.1312 193.911 32.6597 178.256 15.9721 149.829C1.19788 124.912 -0.00585938 97.9229 -0.00585938 67.7662C-0.00585938 49.8876 5.37293 34.3215 15.5413 22.7466C24.8861 12.1157 38.1271 5.22907 52.8317 3.35378C70.2858 1.14271 91.9848 0.958984 114.545 0.958984C151.259 0.958984 161.63 1.4088 176.075 2.85328C195.29 4.76026 211.458 11.932 222.824 23.5955C234.368 35.4428 240.469 51.2624 240.469 69.3627V72.9994C240.469 103.885 219.821 129.733 191.046 136.759C188.898 141.827 186.237 146.871 183.089 151.837L183.006 151.964C172.869 167.632 149.042 193.918 103.401 193.918H96.1281L96.1344 193.911Z" fill="white"/>
<path d="M174.568 17.9772C160.927 16.6151 151.38 16.1589 114.552 16.1589C90.908 16.1589 70.9008 16.387 54.7644 18.4334C33.3949 21.164 15.2058 37.5285 15.2058 67.7674C15.2058 98.0066 16.796 121.422 29.0741 142.107C42.9425 165.751 66.1302 178.707 96.1412 178.707H103.414C140.242 178.707 160.25 159.156 170.253 143.698C174.574 136.874 177.754 130.058 179.801 123.234C205.947 120.96 225.27 99.3624 225.27 72.9941V69.3577C225.27 40.9432 206.631 21.164 174.574 17.9772H174.568Z" fill="white"/>
<path d="M15.1975 67.7674C15.1975 37.5285 33.3866 21.164 54.7559 18.4334C70.8987 16.387 90.906 16.1589 114.544 16.1589C151.372 16.1589 160.919 16.6151 174.559 17.9772C206.617 21.1576 225.255 40.937 225.255 69.3577V72.9941C225.255 99.3687 205.932 120.966 179.786 123.234C177.74 130.058 174.559 136.874 170.238 143.698C160.235 159.156 140.228 178.707 103.4 178.707H96.1264C66.1155 178.707 42.9277 165.751 29.0595 142.107C16.7814 121.422 15.1912 98.4563 15.1912 67.7674" fill="#202020"/>
<path d="M32.2469 67.9899C32.2469 97.3168 34.0654 116.184 43.6127 133.689C54.5225 153.924 74.3018 161.653 96.8117 161.653H103.857C133.411 161.653 147.736 147.329 155.693 134.829C159.558 128.462 162.966 121.417 164.784 112.547L166.147 106.864H174.332C192.521 106.864 208.208 92.09 208.208 73.2166V69.8082C208.208 48.6669 195.024 37.5228 172.058 34.7987C159.102 33.6646 151.372 33.2084 114.538 33.2084C89.7602 33.2084 72.0272 33.4364 58.6152 35.4828C39.7483 38.2134 32.2407 48.8951 32.2407 67.9899" fill="white"/>
<path d="M166.158 83.6801C166.158 86.4107 168.204 88.4572 171.841 88.4572C183.435 88.4572 189.802 81.8619 189.802 70.9523C189.802 60.0427 183.435 53.2195 171.841 53.2195C168.204 53.2195 166.158 55.2657 166.158 57.9963V83.6866V83.6801Z" fill="#202020"/>
<path d="M54.5321 82.3198C54.5321 95.732 62.0332 107.326 71.5807 116.424C77.9478 122.562 87.9515 128.93 94.7685 133.022C96.8147 134.157 98.8611 134.841 101.136 134.841C103.866 134.841 106.134 134.157 107.959 133.022C114.782 128.93 124.779 122.562 130.919 116.424C140.694 107.332 148.195 95.7383 148.195 82.3198C148.195 67.7673 137.286 54.8115 121.599 54.8115C112.28 54.8115 105.912 59.5882 101.136 66.1772C96.8147 59.582 90.2259 54.8115 80.9001 54.8115C64.9855 54.8115 54.5256 67.7673 54.5256 82.3198" fill="#FF5A16"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
public/images/lceonline.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

BIN
public/images/lock_icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
public/images/slider.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

BIN
public/images/steam.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

BIN
public/images/tools/col.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
public/images/tools/grf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View file

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Some files were not shown because too many files have changed in this diff Show more