Skip to main content
Version: 0.9 · MC 1.21.1

Configuration

Both loaders use the same keys, with the same defaults and ranges. Only the file format and location differ.

LoaderFileWhen changes apply
NeoForgeconfig/brecher_hyperspace_rifts/brecher_hyperspace_rifts-common.tomlAt server start. Restart to apply edits.
Fabricconfig/brecher_hyperspace_rifts.jsonAt server start (the file is read during launch, so edits apply on the next launch with no extra step).

The file is created with all defaults the first time the mod starts.

NeoForge. The TOML file groups keys into the sections [features], [balance], [spawner], [remnant] and [convergence], as in the tables below. A file left at the old location config/brecher_hyperspace_rifts-common.toml is moved into the folder automatically on first launch of 0.9.7 or newer. If both files exist, the one in the folder wins and the old one is left alone with a warning. If the move fails, the server refuses to start rather than silently using defaults.

Fabric. The JSON file is flat: every key sits at the top level. Keys missing from the file are added with their defaults at startup, and unknown keys are ignored with a warning. A value of the wrong type (for example text where a number is expected) falls back to that key's default. If the file is not valid JSON, the server logs an error and runs with the built-in defaults for that launch. The broken file is left untouched so you can repair it. Out-of-range numbers are clamped into the allowed range.

Times in the tables are in game ticks (20 ticks = 1 second; 1,200 ticks = 1 minute; 72,000 ticks = 1 hour).

Note: Keys that appear in the file but are not listed on this page are internal. Leave them at their defaults.

Spawning ([spawner])​

Ambient rifts appear in the overworld between a minimum and maximum distance from the world spawn. The spawner earns a budget of tokens over time and spends one per rift.

KeyDefaultRangeWhat it does
rift_pool_size1800 to 4096How many ambient rifts the spawner tries to keep alive. At the default spawn distances this is roughly one rift per 2,400 eligible chunks.
spawn_exclusion_radius5120 to 65536Rifts do not spawn within this many blocks of the world spawn.
spawn_radius_max60001 to 1000000Rifts do not spawn farther than this many blocks from the world spawn. It is always raised to at least one block more than spawn_exclusion_radius, and it respects the world border.
min_rift_separation1280 to 8192Minimum distance in blocks between two live rifts.
spawn_tick_interval12001 to 720000Ticks between spawner passes.
tokens_per_period15.00.0 to 4096.0Spawn tokens earned per budget period. With the defaults, about 15 new rifts per hour.
budget_period_ticks720001 to 1728000Length of one budget period.
max_burst15.00.0 to 4096.0Most tokens that can be banked at once. This limits how many rifts can appear in a single catch-up pass.
max_placement_attempts321 to 256How many candidate locations the spawner tries per planned rift.
max_relocate_attempts81 to 64How many other spots in the same chunk it tries when a planned rift's position turns out to be unusable once the chunk loads. Planned rifts in unloaded chunks simply wait.
materialize_scan_interval201 to 1200Ticks between checks that turn planned rifts into physical rifts once their chunks are loaded.
max_resonator_range00 to 1000000Maximum range in blocks at which a Resonator tracks rifts. 0 means unlimited.
onboard_notify_radius481 to 512A player who comes within this many blocks of a rift for the first time gets a short notification.

Set rift_auto_spawner (below) to false to stop ambient spawning entirely. Rifts placed with /brecherhyperspacerifts rift spawn ignore the budget and do not need the spawner enabled.

Feature toggles ([features])​

KeyDefaultWhat it does
rift_auto_spawnertrueTurns the ambient rift spawner on or off.
multi_stage_enabledtrueWhen false, Unstable, Volatile and Chaotic rifts (more than one stage) cannot be joined.
anomaly_systemtrueMaster switch for anomalies, the random modifiers that change how a fight plays. When false, none apply.
facet_systemtrueMaster switch for Facet effects. When false, Facets are still drafted and recorded but have no effect.
facet_player_booststrueSwitch for the player-side battle effects of Facets (stat changes, damage, critical hits, status protection). Healing, planning and reward Facets keep working. Needs facet_system.
between_stage_timeout_advancestrueWhen the between-stage vote timer runs out before the vote is decided, the party continues to the next stage. When false, the party retreats instead and keeps its earned rewards. An explicit Retreat vote ends the run under either setting.
boss_ambient_motiontrueThe boss figure turns to face participants and shifts slightly. When false it stays still.
custom_arenastrueUses arena layouts supplied by datapacks. When false, only the built-in platform is used.
segmented_shieldstrueBosses have shield segments over the shared HP pool; each broken segment boosts one boss stat by one stage. false restores plain HP.
showdown_originationtrueAllows boss effects (such as several anomalies) to be applied in every party member's battle. If false, anomalies that depend on this are removed from the roll pool instead of being announced without effect. Shield-break boosts are not affected.
battle_status_synctrueCopies boss status conditions between the party's parallel battles.
battle_win_propagationtrueEnds the other parallel battles as soon as the boss is defeated in one of them.
battle_turn_drift_logtrueLogs a note when the parallel battles drift apart in turn count. Logging only; does not affect play.
encounter_telemetrytrueWrites local balance statistics (per-stage and whole-run results) to <world>/brecher_hyperspace_rifts/. The data is privacy-safe and never leaves the server. Set false to opt out.
remnant_attune_per_playerfalseChooses how remnant_attune_uses is counted: false for one shared budget per Remnant, true for a separate budget per player.

Remnants ([remnant])​

KeyDefaultRangeWhat it does
remnant_attune_uses11 to 4096How many Crystals one Legendary Remnant can attune. With remnant_attune_per_player set to false this is the total for the whole raid (the default of 1 means one attuned Crystal per raid). With true it is per player (2 lets every raider attune twice).

Convergence and Seal ([convergence])​

KeyDefaultRangeWhat it does
convergence_max_participants60 to 64Total number of different players admitted to a Convergence over its lifetime, including the host. 0 means unlimited. Players who were admitted can reconnect even when the Convergence is full, but new players cannot take their place.
convergence_max_catches00 to 4096Total number of Seal attempts allowed against the Weakened Legendary. 0 means no shared cap: each admitted player can still make one Seal attempt of their own.
convergence_max_cheers30 to 4096Cheers each participant can use during a Convergence raid.
convergence_cooldown_ticks00 to 1728000Cooldown on an Altar after a successful summon. 0 means none.
convergence_weakened_window_ticks6000 (5 minutes)0 to 1728000How long after the victory the Weakened Legendary can be sealed. 0 disables the Seal window and ends the Convergence area right away.
convergence_seal_grace_ticks18000 (15 minutes)0 to 1728000Extra time the area stays open for a Seal battle that is still running when the window closes. 0 gives no extension.

Balance profile ([balance])​

KeyDefaultWhat it does
active_balance_profilebrecher_hyperspace_rifts:release_v1_legacy_loadoutsID of the balance profile used for new incursions. The shipped profile is the recommended setting.

Change the value and restart to select another profile. Running incursions keep the profile and content they started with; only incursions created afterwards use the new one.

Values that are not configurable​

Some gameplay values are fixed in the mod and have no configuration key:

ValueBuilt-in setting
Party size per tier (Fading, Stable, Unstable, Volatile, Chaotic)1, 2, 2, 4, 4 players
Stages per tier1, 1, 2, 3, 5
Lobby countdown before a fight starts30 seconds
Between-stage vote windowabout 60 seconds, after a short pause
"Rift closing" period after the last stage5 minutes
Boss HP scaling with party sizesolo HP multiplied by 1 + 0.85 per additional player
Convergence boss HP scalingsame formula as rifts

Datapack content​

Operators can customize some content with ordinary datapacks. After changing a datapack, run /reload; incursions that are already running keep the content they started with.

  • Bonus loot. Bonus items from rifts use standard loot tables in the brecher_hyperspace_rifts namespace. Replace the shipped table at the same path to change them:

    • incursion/stage/<tier> is rolled after every cleared stage.
    • incursion/completion/<tier> is rolled when the whole incursion succeeds.
    • incursion/boss/<namespace>/<species> adds items for the final boss of a specific species. Bosses without their own table use incursion/boss/capstone_fallback.

    <tier> is fading, stable, unstable, volatile or chaotic. The guaranteed Rift Dust and Apex Token amounts are not read from these tables, and the Rift Trophy chance cannot be changed with loot tables.

  • Arenas. Datapacks can supply arena layouts. The /brecherhyperspacerifts arenas commands list, validate and preview them; see Commands. Set custom_arenas to false to fall back to the built-in platform.

  • Balance profiles. A datapack can add profiles for active_balance_profile to select.

See also Installation for requirements and upgrade notes.

Support the Community

Help keep our servers running and support future projects!