Commit Graph

439 Commits

Author SHA1 Message Date
Fazri Gading
454ca7f075 Revise and enhance Hytale F2P Server Guide
Updated the Hytale F2P Server Guide with new sections and improved formatting.
2026-02-06 03:48:17 +08:00
Alex
e7324eb176 Merge pull request #268 from amiayweb/macos-notarization
feat(macos): add code signing and notarization support
v2.2.2-draft
2026-02-03 17:06:27 +07:00
sanasol
98123d7338 feat(macos): add code signing and notarization support
Add macOS code signing and notarization for Gatekeeper compatibility:

- Add hardened runtime configuration in package.json
- Add entitlements.mac.plist for required app permissions
- Enable built-in electron-builder notarization
- Add code signing and notarization secrets to workflow

Required GitHub Secrets:
- CSC_LINK: Base64-encoded .p12 certificate file
- CSC_KEY_PASSWORD: Password for the .p12 certificate
- APPLE_ID: Apple Developer account email
- APPLE_APP_SPECIFIC_PASSWORD: App-specific password from appleid.apple.com
- APPLE_TEAM_ID: 10-character Apple Developer Team ID

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 10:55:00 +01:00
Fazri Gading
6761f6b3e0 chore: fix release notes for v2.2.1 2026-02-02 08:57:37 +08:00
Fazri Gading
b1aeb9fe4a chore: improvise badges, relocate star history, fix discord links 2026-02-02 08:49:09 +08:00
Fazri Gading
c27e1f4cd4 chore revise windows prerequisites and changelog
Updated prerequisites and changelog for version 2.2.1.
2026-02-02 08:30:06 +08:00
Fazri Gading
f0939a60c9 docs: enhance bug report template with placeholders and options
Updated the bug report template to include placeholders and additional Linux distributions.
2026-02-02 08:06:30 +08:00
Fazri Gading
23fad047c0 Prepare Release v2.2.1 2026-02-02 06:22:10 +08:00
Fazri Gading
5f3c9e0411 fix: redact proxy_url and remove timed out emoji 2026-02-02 06:17:35 +08:00
Fazri Gading
2e0bdeee5a fix: cache invalidation from .env prevents multiple launch attempts
for all env related, it is necessary to clear cache first, otherwise on few launch attempts the game wouldn't run
2026-02-02 06:09:14 +08:00
Fazri Gading
d8d7702d9d fix: remove duplicate check 2026-02-02 04:31:41 +08:00
AMIAY
3ac2f25955 Add smart proxy with direct-fallback and logging 2026-02-01 19:46:22 +01:00
Fazri Gading
7c8a106f06 Merge pull request #257 from amiayweb/fix/libzstd-reorder
fix: reorder fedora libzstd paths to first iteration
2026-02-02 01:38:27 +08:00
Fazri Gading
0015ecbe80 fix: add game_running_marker to prevent duplicate launches 2026-02-02 01:35:43 +08:00
AMIAY
b5cd9ca791 package version to 2.2.1
Update package.json version from 2.2.0 to 2.2.1 to publish a patch release.
2026-02-01 18:16:48 +01:00
AMIAY
d5da9ecb6d Improve featured servers layout with Discord integration
- Add Discord button to server cards when discord link is present in API data
- Remove HF2P Servers section to use full width for featured servers
- Increase server card size (300x180px banner, larger fonts and spacing)
- Simplify layout from 2-column grid to single full-width container
- Discord button opens external browser with server invite link
2026-02-01 18:01:58 +01:00
AMIAY
b1d01a2f34 fix: Prevent JAR file corruption during proxy downloads
Fixed binary file corruption when downloading through proxy by using PassThrough stream to preserve data integrity while tracking download progress.
2026-02-01 17:35:25 +01:00
AMIAY
cd25f124bd Add proxy client and route downloads through it 2026-02-01 17:23:00 +01:00
AMIAY
fc91560acb Merge pull request #255 from amiayweb/fix/eperm-in-repair-button
Major Bug Fix in v2.2.0: HytaleClient did not launch in Windows especially Laptop, Ghost Processes on game/launcher exit, and EPERM in Repair Game Button
2026-02-01 16:35:30 +01:00
Fazri Gading
3370628b6e revert add deps for generateLocalTokens 2026-02-01 23:25:13 +08:00
Fazri Gading
3fee5b0f72 revert generateLocalTokens, wrong analysis on game launching issue 2026-02-01 23:24:22 +08:00
Fazri Gading
38d436ceb7 docs: add analysis on ghost process and launcher cleanup 2026-02-01 23:16:26 +08:00
Fazri Gading
6ee23e1944 fix: major bug - detach game process to avoid launcher-held handles causing zombie process 2026-02-01 23:12:29 +08:00
Fazri Gading
5de155f190 fix: discord RPC destroy error if not connected 2026-02-01 23:05:14 +08:00
Fazri Gading
b84457d88d fix: major bug - hytale won't launch with laptop machine and ghost processes 2026-02-01 22:58:20 +08:00
Fazri Gading
1ef96561bf Merge pull request #253 from MetricsLite/patch-3
Fix Turkish translations in tr-TR.json
2026-02-01 21:31:12 +08:00
Fazri Gading
d91ba72969 Merge commit '6847a54c0f25219490324521ec98c326a353e1a8' into fix/eperm-in-repair-button 2026-02-01 21:27:59 +08:00
Fazri Gading
ecaaa28866 fix: invalid generated token that caused hangs on exit [windows testing needed] 2026-02-01 19:26:24 +08:00
Fazri Gading
ad34741627 fix: EPERM error in Repair Game Button [windows testing needed] 2026-02-01 19:24:59 +08:00
MetricsLite
a346e9d9e3 Fix Turkish translations in tr-TR.json 2026-02-01 12:20:41 +03:00
Fazri Gading
1f4e91c975 chore revise online play hosting instructions in README
Updated instructions for hosting an online game and clarified troubleshooting steps.
2026-02-01 15:31:10 +08:00
Fazri Gading
a1a45a2d31 chore: update discord link and give warning quickstart 2026-02-01 15:27:46 +08:00
Fazri Gading
2ed402b14b chore: update quickstart button link to header 2026-02-01 15:22:44 +08:00
Fazri Gading
4ce6fbee0a fix: missing version text on launcher 2026-02-01 15:03:03 +08:00
Fazri Gading
3dfaa1c778 chore: insert contact link in CODE_OF_CONDUCT.md 2026-02-01 05:14:46 +08:00
Fazri Gading
6a4da66a1e chore: update discord link 2026-02-01 05:13:51 +08:00
Fazri Gading
53939fc0ae chore: link downloads, platform, and version to release page in README.md 2026-02-01 05:10:50 +08:00
Fazri Gading
fb135d3486 chore: rearrange, fix, and improve README.md 2026-02-01 05:08:39 +08:00
Alex
62430fe8f0 fix: comprehensive UUID/username persistence bug fixes (#252)
* fix: comprehensive UUID/username persistence bug fixes

Major fixes for UUID/skin reset issues that caused players to lose cosmetics:

Core fixes:
- Username rename now preserves UUID (atomic rename, not new identity)
- Atomic config writes with backup/recovery system
- Case-insensitive UUID lookup with case-preserving storage
- Pre-launch validation blocks play if no username configured
- Removed saveUsername calls from launch/install flows

UUID Modal fixes:
- Fixed isCurrent badge showing on wrong user
- Added switch identity button to change between saved usernames
- Fixed custom UUID input using unsaved DOM username
- UUID list now refreshes when player name changes
- Enabled copy/paste in custom UUID input field

UI/UX improvements:
- Added translation keys for switch username functionality
- CSS user-select fix for UUID input fields
- Allowed Ctrl+V/C/X/A shortcuts in Electron

Files: config.js, gameLauncher.js, gameManager.js, playerManager.js,
launcher.js, settings.js, main.js, preload.js, style.css, en.json

See UUID_BUGS_FIX_PLAN.md for detailed bug list (18 bugs, 16 fixed)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(i18n): add switch username translations to all locales

Added translation keys for username switching functionality:
- notifications.noUsername
- notifications.switchUsernameSuccess
- notifications.switchUsernameFailed
- notifications.playerNameTooLong
- confirm.switchUsernameTitle
- confirm.switchUsernameMessage
- confirm.switchUsernameButton

Languages updated: de-DE, es-ES, fr-FR, id-ID, pl-PL, pt-BR, ru-RU, sv-SE, tr-TR

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: move UUID_BUGS_FIX_PLAN.md to docs folder

* docs: update UUID_BUGS_FIX_PLAN with complete fix details

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 05:01:58 +08:00
Fazri Gading
6847a54c0f feat: enhance gpu detection, drafting 2026-02-01 04:11:55 +08:00
Fazri Gading
95d47f0e60 fix: reorder fedora libzstd paths to first iteration 2026-02-01 03:17:20 +08:00
Fazri Gading
6fbf37422f Merge remote-tracking branch 'upstream/main' into develop 2026-02-01 03:13:55 +08:00
AMIAY
6a66ed831c Merge pull request #251 from amiayweb/fix/arch-linux-build-fail
fix: missing encoding package dependency in package-lock
2026-01-31 16:34:43 +01:00
Fazri Gading
78bb10588d fix: missing encoding package dependency in package-lock 2026-01-31 23:31:30 +08:00
AMIAY
d27663a1ce revert 2026-01-31 16:23:35 +01:00
AMIAY
2db7d606bd Add 'encoding' dependency for test 2026-01-31 16:22:02 +01:00
Fazri Gading
39c12c0591 Release v2.2.0 - Fixed Arch failed build for Linux (#250)
* fix: resolve cross-platform EPERM permissions errors

modManager.js:
- Switch from hardcoded 'junction' to dynamic symlink type based on OS (fixing Linux EPERM).
- Add retry logic for directory removal to handle file locking race conditions.
- Improve broken symlink detection during profile sync.

gameManager.js:
- Implement retry loop (3 attempts) for game directory removal in updateGameFiles to prevent EBUSY/EPERM errors on Windows.

paths.js:
- Prevent fs.mkdirSync failure in getModsPath by pre-checking for broken symbolic links.

* fix: missing pacman builds

* prepare release for 2.1.1

minor fix for EPERM error permission

* prepare release 2.1.1

minor fix EPERM permission error

* prepare release 2.1.1

* Update README.md Windows Prequisites for ARM64 builds

* fix: remove broken symlink after detected

* fix: add pathexists for paths.js to check symlink

* fix: isbrokenlink should be true to remove the symlink

* add arch package .pkg.tar.zst for release

* fix: release workflow for build-arch and build-linux

* build-arch job now only build arch .pkg.tar.zst package instead of the whole generic linux.
* build-linux job now exclude .pacman package since its deprecated and should not be used.

* fix: removes pacman build as it replaced by tar.zst and adds build:arch shortcut for pkgbuild

* aur: add proper VCS (-git) PKGBUILD

created clean VCS-based PKGBUILD following arch packaging conventions.

this explicitly marked as a rolling (-git) build and derives its version dynamically from git tags and commit history via pkgver(). previous hybrid approach has been changed.

key changes:
- use -git suffix to clearly indicate rolling source builds
- set pkgver=0 and compute the actual version via pkgver()
- build only a directory layout using electron-builder (--dir)
- avoid generating AppImage, deb, rpm, or pacman installers
- align build and package steps with Arch packaging guidelines

note: this PKGBUILD is intended for development and AUR use only and is not suitable for binary redistribution or release artifacts.

* ci: add fixed-version PKGBUILD for Arch Linux releases

this PKGBUILD intended for CI and GitHub release artifacts. targets tagged releases only and uses a fixed pkgver that matches the corresponding git tag. all of the VCS logic has been removed to PKGBUILD-git to ensure reproducible builds and stable versioning suitable for binary distribution.

the build process relies on electron-builder directory output (--dir) and packages only the unpacked application into a standard Arch Linux package (.pkg.tar.zst). other distro format are excluded from this path and handled separately.

this change establishes a clear separation between:
- rolling AUR development builds (-git)
- CI-generated, versioned Arch Linux release packages

the result is predictable artifact naming, correct version alignment, and Arch-compliant packaging for downstream users.

* Update README.md

adds information for Arch build

* Update README.md

BUILD.md location was changed and now this link is poiting to nothing

* Update PKGBUILD

* Update PKGBUILD-git

* chore: fix ubuntu/debian part in README.md

* Polish language support (#195)

* Update support_request.yml

Added hardware specification

* Update bug_report.yml

Add logs textfield to bug report

* chore: add changelog in README.md

* fix screenshot input in feature_request.yml

* add hardware spec input in bug_report.yml

* fix: PKGBUILD pkgname variable fix

* userdata migration [need review from other OS]

* french translate

* Add German and Swedish translations

Added de.json and sv.json locale files for German and Swedish language support. Updated i18n.js to register 'de' and 'sv' as available languages in the launcher.

* Update README.md

* chore: add offline-mode warning to the README.md

* chore: add downloads counter in README.md

* fix: Steam Deck/Ubuntu crash - use system libzstd.so

The bundled libzstd.so is incompatible with glibc 2.41's stricter heap
validation, causing "free(): invalid pointer" crashes.

Solution: Automatically replace bundled libzstd.so with system version
on Linux. The launcher detects and symlinks to /usr/lib/libzstd.so.1.

- Auto-detect system libzstd at common paths (Arch, Debian, Fedora)
- Backup bundled version as libzstd.so.bundled
- Create symlink to system version
- Add HYTALE_NO_LIBZSTD_FIX=1 to disable if needed

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: remove Windows and Linux ARM64 information on the README.md

* Update support_request.yml

* fix: improve update system UX and macOS compatibility

Update System Improvements:
- Fix duplicate update popups by disabling legacy updater.js
- Add skip button to update popup (shows after 30s, on error, or after download)
- Add macOS-specific handling with manual download as primary option
- Add missing open-download-page IPC handler
- Add missing unblockInterface() method to properly clean up after popup close
- Add quitAndInstallUpdate alias in preload for compatibility
- Remove pulse animation when download completes
- Fix manual download button to show correct status and close popup
- Sync player name to settings input after first install

Client Patcher Cleanup:
- Remove server patching code (server uses pre-patched JAR from CDN)
- Simplify to client-only patching
- Remove unused imports (crypto, AdmZip, execSync, spawn, javaManager)
- Remove unused methods (stringToUtf8, findAndReplaceDomainUtf8)
- Move localhost dev code to backup file for reference

Code Quality Fixes:
- Fix duplicate DOMContentLoaded handlers in install.js
- Fix duplicate checkForUpdates definition in preload.js
- Fix redundant if/else in onProgressUpdate callback
- Fix typo "Harwadre" -> "Hardware" in preload.js

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add Russian language support

Added Russian (ru) to the list of available languages.

* chore: drafting documentation on SERVER.md

* Some updates in Russian language localization file

* fix

* Update ru.json

* Fixed Java runtime name and fixed typo

* fixed untranslated place

* Update ru.json

* Update ru.json

* Update ru.json

* Update ru.json

* Update ru.json

* fix: timeout getLatestClient 

fixes #138

* fix: change default version to 7.pwr in main.js

* fix: change default release version to 7.pwr

* fix: change version release to 7.pwr

* docs: Add comprehensive troubleshooting guide (#209)

Add TROUBLESHOOTING.md with solutions for common issues including:

- Windows: Firewall configuration, duplicate mods, SmartScreen
- Linux: GPU detection (NVIDIA/AMD), SDL3_image/libpng dependencies,
  Wayland/X11 issues, Steam Deck support
- macOS: Rosetta 2 for Apple Silicon, code signing, quarantine
- Connection: Server boot failures, regional restrictions
- Authentication: Token errors, config reset procedures
- Avatar/Cosmetics: F2P limitations documentation
- Backup locations for all platforms
- Log locations for bug reports

Solutions compiled from closed GitHub issues (#205, #155, #90, #60,
#144, #192) and community feedback.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* Standardize language codes, improve formatting, and update all locale files. (#224)

* Update German (Germany) localization

* Update Español (España) localization

* Update French (France) localization

* Update Polish (Poland) localization

* Update Portuguese (Brazil) localization

* Update Russian (Russia) localization

* Update Swedish (Sweden) localization

* Update Turkish (Turkey) localization

* Update language codes, names and alphabetical in i18n system

* Changed Spanish language name to the Formal name "Spanish (Spain)"

* Fix PKGBUILD-git

* Fix PKGBUILD

* delete cache after installation

* Enforce 16-char player name limit and update mod sync

Added a maxlength attribute to the player name input and enforced a 16-character limit in both install and settings scripts, providing user feedback if exceeded. Refactored modManager.js to replace symlink-based mod management with a copy-based system, copying enabled mods to HytaleSaves\Mods and removing legacy symlink logic to improve compatibility and avoid permission issues.

* Update installation subtitle

* chore: update quickstart link in README.md

* chore: delete warning of Ubuntu-Debian at Linux Prequisites section

* added featured server list from api

* Add Featured Servers page to GUI

* Update Discord invite URL in client patcher

* Add differential update system

* Remove launcher chat and add Discord popup

* fix: removed 'check disk space' alert on permission file error

* fix: upgrade tar to ^7.5.6 version

* fix: re-add universal arch for mac

* fix: upgrade electron/rebuild to 4.0.3

* fix: removed override tar version

* fix: pkgbuild version to 2.1.2

* fix: src.tar.zst and srcinfo missing files

* feat: add Indonesian language translation

* fix: GPU preference hint to Laptop-only

* feat: create two columns for settings page

* Add Discord invite link to rpc

* docs: add recordings form, fix OS list

* Release v2.2.0

* Release v2.2.0

* Release v2.2.0

* chore: delete icon.ico, moved to build folder

* chore: delete icon.png, moved to build folder

* fix: build and release for tag push-only in release.yml

* fix: gamescope steam deck issue fixes #186 hopefully

* Support branch selection for server patching

* chose: add auto-patch system for pre-release JAR

* fix: preserves arch x64 on linux target for #242

* fix: removed arm64 flags

* fix: redo package.json arch

* update package-lock.json

* Update release.yml

* chore: sync package-lock with package.json

---------

Co-authored-by: TalesAmaral <57869141+TalesAmaral@users.noreply.github.com>
Co-authored-by: walti0 <95646872+walti0@users.noreply.github.com>
Co-authored-by: AMIAY <letudiantenrap.collab@gmail.com>
Co-authored-by: sanasol <mail@sanasol.ws>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Terromur <79866197+Terromur@users.noreply.github.com>
Co-authored-by: Zakhar Smokotov <zaharb840@gmail.com>
Co-authored-by: xSamiVS <samtaiebc@gmail.com>
v2.2.1
2026-01-31 23:08:40 +08:00
Fazri Gading
7b2acd49b6 chore: sync package-lock with package.json 2026-01-31 22:58:02 +08:00
Fazri Gading
094bb938fc Release v2.2.0 - Fix AppImage Build (#247) 2026-01-31 15:26:44 +01:00
Fazri Gading
7b9951e72d Update release.yml 2026-01-31 20:34:57 +08:00