Skip to content

Conversation

@CompileRider
Copy link

Summary

Implements feature request #237 - allows users to share data with any Minecraft installation.

Changes

  • Add settings to use vanilla saves, resource packs, and shader packs
  • Custom Minecraft directory selector (supports vanilla, Prism Launcher, etc.)
  • Auto-detect default .minecraft location (Windows/macOS/Linux)
  • Create symlinks from LiquidLauncher gameDir to selected Minecraft folders
  • Add rust-toolchain.toml for easier compilation

How it works

  1. Open Settings
  2. Select your Minecraft directory (or leave empty for auto-detect)
  3. Enable the options you want (worlds, resource packs, shader packs)
  4. Launch the game - your data will be shared via symlinks

Safe: Only creates symlinks, never modifies original files.

Screenshots

Settings
In-game

Closes #237

Copy link
Member

@1zun4 1zun4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your contribution. That's a great addition.
I will try it out when development on the Launcher continues and merge it into the next release of LiquidLauncher.

Comment on lines 378 to 379
std::fs::remove_file(&target).ok();
std::fs::create_dir_all(&target)?;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please make use of use std::fs; or use tokio::fs; instead of writing the whole path.

Ok(())
}

fn get_vanilla_minecraft_dir() -> Option<std::path::PathBuf> {
Copy link
Member

@1zun4 1zun4 Jan 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please import PathBuf using use std::path::PathBuf; on the top of the file.

launcher_data: &LauncherData<D>,
) -> Result<()> {
let vanilla_dir = if !integration.custom_path.is_empty() {
let custom = std::path::PathBuf::from(&integration.custom_path);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please import PathBuf using use std::path::PathBuf; on the top of the file.

}
</script>

<div class="section-title">Vanilla Integration</div>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A colored section-title is something new to the design that we haven't used anywhere else. Please verify if this is something that we cannot design more consistent.

bind:value={options.launcher.keepLauncherOpen}
/>

<VanillaIntegration {options} />
Copy link
Member

@1zun4 1zun4 Jan 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The whole section for the Vanilla Integration takes up a lot of space. How does this look on the default window size? We might prefer the use of an additional tab. That would also remove the need for a section title.

@CompileRider
Copy link
Author

Okay, I understand. Thank you for taking the time to respond to this PR.

@CompileRider
Copy link
Author

@1zun4 By the way, I'm also working on Modrinth integration (#255) - lets you search and install mods directly from Modrinth, with auto-update support. Added a separate "Mods" tab to keep things clean.

Will open another PR once it's ready!

Add options to share data with any Minecraft installation:
- Use vanilla worlds (saves)
- Use vanilla resource packs
- Use vanilla shader packs
- Custom Minecraft directory selector

Creates symlinks from LiquidLauncher gameDir to the selected Minecraft folders.
Works with vanilla .minecraft, Prism Launcher, or any custom location.

Example: Select your Minecraft directory, enable 'Use vanilla worlds',
launch the game, and your worlds will appear in LiquidBounce.

Safe: Only creates symlinks, never modifies original files.
Disabling the option removes the symlink and restores separate folders.

Also adds rust-toolchain.toml (nightly-2024-11-01) for easier compilation.

Closes CCBlueX#237
Address code review feedback:
- Import fs and PathBuf at top instead of inline paths
- Use imported PathBuf in all locations
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

vanilla mincraft data

2 participants