# glitchfiend/biomesoplenty architecture

> Architecture diagram of the GitHub repository glitchfiend/biomesoplenty, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/glitchfiend/biomesoplenty
- Repository: https://github.com/glitchfiend/biomesoplenty

## Overview

Biomes O’ Plenty is a Minecraft content mod that adds biome-specific environments and content across the Overworld, Nether, and End. Players encounter its content through Minecraft world generation: biome definitions combine terrain, spawn, and feature settings; feature and placement registries supply vegetation and other formations; material rules customize surfaces. The mod also registers blocks, items, fluids, entities, sounds, and related gameplay content. The tree and README establish these major capabilities, while sampled source confirms selected biome, feature, placement, and client-fluid behavior; some subsystem wiring is therefore represented only where documented or explicit.

Main entry points: [`common/src/main/java/biomesoplenty/core/BiomesOPlenty.java`](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/core/BiomesOPlenty.java) (Mod entry point), [`common/src/main/java/biomesoplenty/biome/BOPOverworldBiomes.java`](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/biome/BOPOverworldBiomes.java) (Biome definitions), [`common/src/main/java/biomesoplenty/init/ModBiomes.java`](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModBiomes.java) (Biome registries), [`common/src/main/java/biomesoplenty/init/ModFluids.java`](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModFluids.java) (Fluid registry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_boot["Mod Integration"]
  node_entry["Mod entry point<br/>[BiomesOPlenty.java]"]
  node_fabric_entry["Fabric entry"]
  node_forge_entry["Forge entry"]
  node_neo_entry["NeoForge entry"]
end

subgraph group_world["World Generation"]
  node_biome_defs["Biome definitions"]
  node_biome_sets["Biome registries<br/>[ModBiomes.java]"]
  node_regions["Biome regions"]
  node_carvers["World carvers"]
  node_feature_defs["Feature registry"]
  node_feature_impl["Feature behavior"]
  node_placements["Feature placement"]
  node_surface["Surface rules"]
end

subgraph group_content["Game Content"]
  node_blocks["Block registry<br/>[ModBlocks.java]"]
  node_items["Item registry<br/>[ModItems.java]"]
  node_fluids["Fluid registry<br/>[ModFluids.java]"]
  node_entities["Entity registry<br/>[ModEntities.java]"]
  node_sounds["Sound registry<br/>[ModSounds.java]"]
  node_config["Gameplay settings"]
  node_api["Public API<br/>[BOPAPI.java]"]
end

subgraph group_client["Client Presentation"]
  node_client_common["Client setup<br/>[ModClient.java]"]
  node_fabric_client["Fabric fluid render"]
  node_neo_client["NeoForge fluid render"]
  node_anomaly_render["Anomaly rendering"]
end

node_player(("Player"))
node_minecraft["Minecraft runtime"]

node_player -->|"plays in"| node_minecraft
node_minecraft -.->|"loads mod"| node_fabric_entry
node_minecraft -.->|"loads mod"| node_forge_entry
node_minecraft -.->|"loads mod"| node_neo_entry
node_fabric_entry -->|"initializes"| node_entry
node_forge_entry -->|"initializes"| node_entry
node_neo_entry -->|"initializes"| node_entry
node_entry -->|"registers"| node_blocks
node_entry -->|"registers"| node_items
node_entry -->|"registers"| node_fluids
node_entry -->|"registers"| node_entities
node_entry -->|"registers"| node_sounds
node_entry -->|"registers"| node_biome_sets
node_entry -->|"loads"| node_config
node_biome_sets -->|"bootstraps"| node_biome_defs
node_regions -->|"selects"| node_biome_sets
node_biome_defs -->|"uses features"| node_placements
node_biome_defs -->|"uses carvers"| node_carvers
node_biome_defs -->|"sets generation"| node_surface
node_placements -->|"places"| node_feature_defs
node_feature_defs -->|"registers"| node_feature_impl
node_feature_impl -->|"writes terrain"| node_minecraft
node_surface -->|"sets materials"| node_minecraft
node_blocks -->|"registers content"| node_minecraft
node_items -->|"registers content"| node_minecraft
node_fluids -->|"registers fluids"| node_minecraft
node_entities -->|"registers entities"| node_minecraft
node_sounds -->|"registers sounds"| node_minecraft
node_api -->|"exposes"| node_blocks
node_api -->|"exposes"| node_biome_sets
node_entry -->|"initializes client"| node_client_common
node_fabric_entry -->|"sets up client"| node_fabric_client
node_neo_entry -->|"subscribes client"| node_neo_client
node_client_common -->|"registers visuals"| node_minecraft
node_fabric_client -->|"renders fluids"| node_fluids
node_neo_client -->|"renders fluids"| node_fluids
node_anomaly_render -->|"renders entity"| node_minecraft

click node_entry "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/core/BiomesOPlenty.java"
click node_fabric_entry "https://github.com/glitchfiend/biomesoplenty/blob/26.3/fabric/src/main/java/biomesoplenty/fabric/core/BiomesOPlentyFabric.java"
click node_forge_entry "https://github.com/glitchfiend/biomesoplenty/blob/26.3/forge/src/main/java/biomesoplenty/forge/core/BiomesOPlentyForge.java"
click node_neo_entry "https://github.com/glitchfiend/biomesoplenty/blob/26.3/neoforge/src/main/java/biomesoplenty/neoforge/core/BiomesOPlentyNeoForge.java"
click node_biome_defs "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/biome/BOPOverworldBiomes.java"
click node_biome_sets "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModBiomes.java"
click node_regions "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/BOPOverworldRegionPrimary.java"
click node_carvers "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/carver/BOPConfiguredCarvers.java"
click node_feature_defs "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/feature/BOPVegetationFeatures.java"
click node_feature_impl "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/feature/misc/CragMossFeature.java"
click node_placements "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/placement/BOPVegetationPlacements.java"
click node_surface "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/BOPMaterialRuleData.java"
click node_blocks "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModBlocks.java"
click node_items "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModItems.java"
click node_fluids "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModFluids.java"
click node_entities "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModEntities.java"
click node_sounds "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModSounds.java"
click node_config "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/config/GameplayConfig.java"
click node_api "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/api/BOPAPI.java"
click node_client_common "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModClient.java"
click node_fabric_client "https://github.com/glitchfiend/biomesoplenty/blob/26.3/fabric/src/main/java/biomesoplenty/fabric/init/ModClientFabric.java"
click node_neo_client "https://github.com/glitchfiend/biomesoplenty/blob/26.3/neoforge/src/main/java/biomesoplenty/neoforge/client/FluidClientHandler.java"
click node_anomaly_render "https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/client/renderer/AnomalyRenderer.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_fabric_entry,node_forge_entry,node_neo_entry toneBlue
class node_biome_defs,node_biome_sets,node_regions,node_carvers,node_feature_defs,node_feature_impl,node_placements,node_surface toneAmber
class node_blocks,node_items,node_fluids,node_entities,node_sounds,node_config,node_api toneMint
class node_client_common,node_fabric_client,node_neo_client,node_anomaly_render toneRose
class node_player,node_minecraft toneIndigo
```

## Components

### Mod Integration

- [Mod entry point](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/core/BiomesOPlenty.java): `common/src/main/java/biomesoplenty/core/BiomesOPlenty.java`
- [Fabric entry](https://github.com/glitchfiend/biomesoplenty/blob/26.3/fabric/src/main/java/biomesoplenty/fabric/core/BiomesOPlentyFabric.java): `fabric/src/main/java/biomesoplenty/fabric/core/BiomesOPlentyFabric.java`
- [Forge entry](https://github.com/glitchfiend/biomesoplenty/blob/26.3/forge/src/main/java/biomesoplenty/forge/core/BiomesOPlentyForge.java): `forge/src/main/java/biomesoplenty/forge/core/BiomesOPlentyForge.java`
- [NeoForge entry](https://github.com/glitchfiend/biomesoplenty/blob/26.3/neoforge/src/main/java/biomesoplenty/neoforge/core/BiomesOPlentyNeoForge.java): `neoforge/src/main/java/biomesoplenty/neoforge/core/BiomesOPlentyNeoForge.java`

### World Generation

- [Biome definitions](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/biome/BOPOverworldBiomes.java): `common/src/main/java/biomesoplenty/biome/BOPOverworldBiomes.java`
- [Biome registries](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModBiomes.java): `common/src/main/java/biomesoplenty/init/ModBiomes.java`
- [Biome regions](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/BOPOverworldRegionPrimary.java): `common/src/main/java/biomesoplenty/worldgen/BOPOverworldRegionPrimary.java`
- [World carvers](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/carver/BOPConfiguredCarvers.java): `common/src/main/java/biomesoplenty/worldgen/carver/BOPConfiguredCarvers.java`
- [Feature registry](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/feature/BOPVegetationFeatures.java): `common/src/main/java/biomesoplenty/worldgen/feature/BOPVegetationFeatures.java`
- [Feature behavior](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/feature/misc/CragMossFeature.java): `common/src/main/java/biomesoplenty/worldgen/feature/misc/CragMossFeature.java`
- [Feature placement](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/placement/BOPVegetationPlacements.java): `common/src/main/java/biomesoplenty/worldgen/placement/BOPVegetationPlacements.java`
- [Surface rules](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/worldgen/BOPMaterialRuleData.java): `common/src/main/java/biomesoplenty/worldgen/BOPMaterialRuleData.java`

### Game Content

- [Block registry](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModBlocks.java): `common/src/main/java/biomesoplenty/init/ModBlocks.java`
- [Item registry](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModItems.java): `common/src/main/java/biomesoplenty/init/ModItems.java`
- [Fluid registry](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModFluids.java): `common/src/main/java/biomesoplenty/init/ModFluids.java`
- [Entity registry](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModEntities.java): `common/src/main/java/biomesoplenty/init/ModEntities.java`
- [Sound registry](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModSounds.java): `common/src/main/java/biomesoplenty/init/ModSounds.java`
- [Gameplay settings](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/config/GameplayConfig.java): `common/src/main/java/biomesoplenty/config/GameplayConfig.java`
- [Public API](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/api/BOPAPI.java): `common/src/main/java/biomesoplenty/api/BOPAPI.java`

### Client Presentation

- [Client setup](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/init/ModClient.java): `common/src/main/java/biomesoplenty/init/ModClient.java`
- [Fabric fluid render](https://github.com/glitchfiend/biomesoplenty/blob/26.3/fabric/src/main/java/biomesoplenty/fabric/init/ModClientFabric.java): `fabric/src/main/java/biomesoplenty/fabric/init/ModClientFabric.java`
- [NeoForge fluid render](https://github.com/glitchfiend/biomesoplenty/blob/26.3/neoforge/src/main/java/biomesoplenty/neoforge/client/FluidClientHandler.java): `neoforge/src/main/java/biomesoplenty/neoforge/client/FluidClientHandler.java`
- [Anomaly rendering](https://github.com/glitchfiend/biomesoplenty/blob/26.3/common/src/main/java/biomesoplenty/client/renderer/AnomalyRenderer.java): `common/src/main/java/biomesoplenty/client/renderer/AnomalyRenderer.java`

### Other components

- **Player**
- **Minecraft runtime**

## Connections

- Player → Minecraft runtime: plays in
- Minecraft runtime → Fabric entry: loads mod
- Minecraft runtime → Forge entry: loads mod
- Minecraft runtime → NeoForge entry: loads mod
- Fabric entry → Mod entry point: initializes
- Forge entry → Mod entry point: initializes
- NeoForge entry → Mod entry point: initializes
- Mod entry point → Block registry: registers
- Mod entry point → Item registry: registers
- Mod entry point → Fluid registry: registers
- Mod entry point → Entity registry: registers
- Mod entry point → Sound registry: registers
- Mod entry point → Biome registries: registers
- Mod entry point → Gameplay settings: loads
- Biome registries → Biome definitions: bootstraps
- Biome regions → Biome registries: selects
- Biome definitions → Feature placement: uses features
- Biome definitions → World carvers: uses carvers
- Biome definitions → Surface rules: sets generation
- Feature placement → Feature registry: places
- Feature registry → Feature behavior: registers
- Feature behavior → Minecraft runtime: writes terrain
- Surface rules → Minecraft runtime: sets materials
- Block registry → Minecraft runtime: registers content
- Item registry → Minecraft runtime: registers content
- Fluid registry → Minecraft runtime: registers fluids
- Entity registry → Minecraft runtime: registers entities
- Sound registry → Minecraft runtime: registers sounds
- Public API → Block registry: exposes
- Public API → Biome registries: exposes
- Mod entry point → Client setup: initializes client
- Fabric entry → Fabric fluid render: sets up client
- NeoForge entry → NeoForge fluid render: subscribes client
- Client setup → Minecraft runtime: registers visuals
- Fabric fluid render → Fluid registry: renders fluids
- NeoForge fluid render → Fluid registry: renders fluids
- Anomaly rendering → Minecraft runtime: renders entity
