- Nix 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| config/paxi | ||
| docs | ||
| mods | ||
| scripts | ||
| .packwizignore | ||
| flake.lock | ||
| flake.nix | ||
| index.toml | ||
| pack.toml | ||
| README.md | ||
| renovate.json | ||
Piratecraft
Piratecraft is a small pirate RPG and physics-ship modpack for Minecraft 1.21.1 on NeoForge. It is inspired by Sneak's Pirate Pack, with its sailing, naval artillery, hostile pirates, treasure hunting, maritime structures, and light RPG progression rebuilt around the modern Sable physics ecosystem.
Status
This pack is beta software. Sable 2.0.3 is an intrusive physics library with known compatibility and long-running server persistence risks. The core integration versions are pinned and should only be upgraded together after a dedicated-server soak test:
- NeoForge 21.1.228
- Create 6.0.10
- Sable 2.0.3
- Create Aeronautics 1.3.0
- Create Big Cannons 5.11.7
- Ritchie's Projectile Library 2.1.2
- MineColonies 1.1.1367 snapshot
- Stylecolonies 1.15.56
Do not add ServerCore, C2ME, Moonrise, Lithium, shaders, or voice chat until the base pack has been tested. Several have open Sable compatibility or networking issues.
Paxi loads a pack-owned Dungeons and Taverns 4.4.4 override in dedicated servers and client singleplayer. It restores the quest-trader trade reward and intentionally disables the broken wandering-trader map trigger.
Gameplay
- Create Aeronautics and Sable provide walkable, block-built physics ships.
- Create Big Cannons provides ship-mounted artillery with Sable integration.
- Treasures of the Dead adds pirate NPCs, captains, merchants, camps, forts, treasure hunts, equipment, and explosives.
- Illager War Trireme, Dungeons and Taverns, and Tectonic create maritime destinations in a continent-and-island world.
- Better Combat, Lootr, Farmer's Delight, and Ocean's Delight support boarding, shared exploration, and ship provisions.
- MineColonies lets players found normal colonies wherever they choose for storage, recruitment, provisions, resource production, and defense. Multiple players can share one colony through built-in MineColonies permissions.
- JEI, Jade, Xaero's maps, Controlling, and Mouse Tweaks are client-only tools.
- Chunky and spark are server-only operational tools.
Documentation
- Technical status records current validation, compatibility pins, known warnings, and release blockers.
- Configuration ownership covers config scopes, safe Nix deployment, and backup requirements.
- Handoff playtest checklist separates objective pass/fail tests from user-owned gameplay and balance decisions.
Pirate cove
Players found colonies normally wherever they choose; the pack does not assign or spawn colony sites. For a pirate cove, use Stylecolonies' Tropical style for the settlement, selected Ancient Athens buildings for the harbor, and the built-in Original style's pirate-ship decorations. Keep the town hall, warehouse, residences, workers, racks, and other colony blocks on ordinary overworld terrain.
Do not assemble MineColonies buildings or storage into Sable sublevels. MineColonies registration, claims, and citizen paths use fixed world positions; moving those blocks can disable buildings, duplicate inventories, or crash pathfinding. Physics ships should dock next to the cove without becoming part of the colony.
Packwiz
Pack metadata is rooted at pack.toml. After changing files, refresh hashes:
packwiz refresh
/docs/ is excluded by .packwizignore. Documentation must remain absent
from index.toml and the hostable Packwiz site.
Developers can serve the Packwiz metadata while editing with:
packwiz serve
This development command is not the end-user installation path and the pack does not use Packwiz Installer Bootstrap or a launcher custom command.
Update every unpinned mod, refresh Packwiz metadata, recalculate the Nix pack hash, and validate the flake with:
nix run .#update-mods
Renovate runs this app during its weekly Nix lock-file maintenance and includes
the resulting mod metadata in one dependency PR. Packwiz entries with
pin = true are deliberately excluded from automatic updates because they
belong to compatibility-tested groups.
Prism Launcher
Build the launcher-native private-beta artifact with:
nix build .#prism
The result contains Piratecraft-0.2.0-beta.1.mrpack. A recipient can also use
the same .mrpack downloaded from a private beta handoff. In Prism Launcher,
select Add Instance, select Import, choose the local .mrpack, and
launch the imported instance with Java 21. Prism reads the archive's native
Modrinth manifest, installs Minecraft 1.21.1 and NeoForge 21.1.228, downloads
the client-supported manifest files, and copies the four static Paxi overrides.
No Packwiz bootstrap, hosted Packwiz site, or custom command is required.
The .mrpack redistributes no third-party JARs. At import time Prism downloads
seven MineColonies-family mods from their official CurseForge CDN URLs and the
other mods from their manifest URLs. The seven entries retain CurseForge updater
metadata in Packwiz. This is a private/local Prism import artifact, not a
Modrinth publication artifact: Modrinth publication rejects its external
CurseForge URLs.
Nix flake
The flake exports these packages for x86_64-linux:
packages.<system>.defaultandpackages.<system>.modpackare the same downloaded server output containing 29 mod JARs and four static override files.packages.<system>.client-modpackresolves all 35 client-compatible mod JARs and the same four override files without credentials. It is an artifact result, not a launcher, and does not graphically start Minecraft.packages.<system>.prismandpackages.<system>.mrpackare aliases for the fixed-outputPiratecraft-0.2.0-beta.1.mrpackdistribution that Prism imports natively. The build exports from a writable source copy and validates all 37 manifest downloads, all Packwiz entries, the four static overrides, and the absence of embedded JARs.packages.<system>.packwiz-siteis a JAR-free, hostable metadata tree withpack.toml,index.toml, all 37 Packwiz metafiles, and all four indexed override files.packages.<system>.update-modsandapps.<system>.update-modsexpose the update utility.
The checks are exactly checks.<system>.client, checks.<system>.module,
checks.<system>.prism, and checks.<system>.server. The prism check is an
ordinary source-dependent derivation that validates the current Packwiz source
against the fixed-output archive, so a cached stale export cannot pass it. The
flake also exports a formatter and two NixOS modules:
nixosModules.defaultimports nix-minecraft and configures Piratecraft. Use this when the host does not import nix-minecraft elsewhere.nixosModules.piratecraftonly configures the server. Use this alongside an existing nix-minecraft module import.
Use the native .mrpack import described above and Java 21 for clients.
All server policy uses lib.mkDefault. Normal definitions in the consuming
configuration therefore override the supplied port, whitelist mode, JVM
memory, MOTD, player limit, package, and other defaults.
Piratecraft does not accept Mojang's EULA. The consuming NixOS configuration
must set services.minecraft-servers.eula = true after its operator has agreed
to the EULA, or nix-minecraft's EULA assertion will reject the system. When
Piratecraft is composed in nixlab, nixlab's existing base Minecraft module is
the consumer-level EULA acceptance; Piratecraft itself still does not set it.
online-mode is supplied as an overridable lib.mkDefault, not a mandatory
setting. Vanilla and other direct deployments should normally leave it true.
Standalone use:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
piratecraft = {
url = "path:/path/to/piratecraft";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs: {
nixosConfigurations.server = inputs.nixpkgs.lib.nixosSystem {
modules = [
inputs.piratecraft.nixosModules.default
{services.minecraft-servers.eula = true;}
./configuration.nix
];
};
};
}
Composition with an existing nix-minecraft configuration:
{
imports = [inputs.piratecraft.nixosModules.piratecraft];
services.minecraft-servers.servers.piratecraft = {
jvmOpts = ["-Xms8G" "-Xmx16G"];
serverProperties = {
server-port = 25570;
white-list = true;
};
whitelist.PlayerName = "00000000-0000-0000-0000-000000000000";
};
}
The Sable UDP firewall rule reads the final merged server-port, so overriding
the port also moves both the TCP and UDP listeners. Set the server's
openFirewall option to false to manage both protocols elsewhere.
Sable attempts to use UDP on the same numerical port as the Minecraft TCP server. Open both TCP and UDP for that port. Its TCP-only fallback has worse latency and should be tested deliberately rather than assumed to work through a TCP-only proxy.
Use Java 21 for clients; the NixOS module supplies the server runtime. Keep versioned world backups, including Sable's sublevel data. Before production, complete every objective item in the handoff playtest checklist, including its multiplayer soak and separate-root backup restoration gates.