A fully customizable launcher UI that seamlessly integrates with RuneLite, providing a transparent login experience across all RuneLite revisions.
- Custom Login Screen: Fully integrated login interface
- RuneLite Compatible: Works with all RuneLite versions
- Transparent Integration: Seamless integration with existing RuneLite codebase
- Customizable UI: Easily modifiable interface elements
- Secure: Maintains RuneLite's security standards
- Java Development Kit (JDK) 11 or higher
- RuneLite source code
- Basic understanding of RuneLite's framework
-
Add the
LoginScreen
class to your RuneLite project:Path: runelite-client/src/main/java/net/runelite/client/ui/
-
Modify the
RuneLite.java
file:Locate the
main
method and find the following section:final OkHttpClient okHttpClient = buildHttpClient(options.has("insecure-skip-tls-verification")); RuneLiteAPI.CLIENT = okHttpClient;
-
Add the launcher initialization code:
// Show login screen first LoginScreen.init(() -> { try { final RuntimeConfigLoader runtimeConfigLoader = new RuntimeConfigLoader(okHttpClient); final ClientLoader clientLoader = new ClientLoader( okHttpClient, finalOptions.valueOf(updateMode), runtimeConfigLoader, RuneLiteProperties.getLocalEnabled() ? RuneLiteProperties.getJavConfigLocal() : RuneLiteProperties.getJavConfig() ); // ... [rest of the initialization code] } catch (Exception e) { log.error("Failure during startup", e); SwingUtilities.invokeLater(() -> new FatalErrorDialog("Valkarin has encountered an unexpected error during startup.") .addHelpButtons() .open() ); } finally { SplashScreen.stop(); } });
-
Add the manifest.json and version.txt to your desired web directory, you change those fields in the LoginScreen class
private static final String VERSION_URL = "https://valkarin.net/version.txt"; < change to your domain or localhost/
private static final String MANIFEST_URL = "https://valkarin.net/manifest.json"; < change to your domain or localhost/
private static final String UPDATE_BASE_URL = "https://valkarin.net/updates/"; < change to your domain or localhost/
private static final String LOCAL_VERSION_FILE = "version.txt";
The launcher can be customized by modifying the following:
- Login screen appearance
- Error handling messages
- Splash screen behavior
- Startup sequence
To modify the launcher:
- Clone your RuneLite repository.
- Implement the provided changes.
- Customize the UI elements as needed.
- Test thoroughly before deployment.
LoginScreen.java
: Main login interface implementation.RuneLite.java
: Core integration points.SplashScreen
: Loading screen implementation.
- Check Java version compatibility.
- Verify RuneLite source integrity.
- Ensure proper path configuration.
- Review custom UI implementations.
- Check for conflicting style definitions.
- Verify resource loading.
Contributions are welcome! To contribute:
- Fork the repository.
- Create your feature branch (
git checkout -b feature/Feature
). - Commit your changes (
git commit -m 'Add some Feature'
). - Push to the branch (
git push origin feature/Feature
). - Open a Pull Request.
- Ensure proper error handling implementation.
- Test across different RuneLite versions.
- Maintain security best practices.
- Follow RuneLite's coding standards.
Make sure to:
- Backup your original RuneLite files before modification.
- Test in a development environment first.
- Follow all security guidelines.
- Keep your RuneLite installation updated.
- RuneLite development team
- Community feedback and support