promotional bannermobile promotional banner

Ambience Mini

Play custom music based on player-state, locations, biomes, dimensions, combat, bosses, etc.

File Details

AmbienceMini [1.21.1 - 2.5.0].jar

  • R
  • Apr 13, 2026
  • 597.16 KB
  • 43
  • 1.21.1
  • NeoForge

File Name

AmbienceMini-1.21.1-2.5.0.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:ambience-mini-1311926:7922665"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Version 2.5.0:

This is the biggest update to Ambience Mini yet which introduces a system for configuring named areas (or regions) which can be used for music selection. Staying true to the philosophy of "no server-support required to run", the area system works regardless of whether the server has the mod installed or not. If no server-support, the server-dependent features are simply disabled.

The configuration language has also been extended a lot to make it more usable and flexible, but while retaining the original simplicity. Beware of breaking changes to the configuration language syntax as described below. Finally new events and properties have been added as described below.

Area system:

  • Added a client-side-based system for configuring areas.
    • Areas can always be stored locally (stored separately from world; sensitive to world and server names).
    • With server support, areas can be stored within the world and optionally shared with other players.

Events and Properties:

  • Added $areas property which contains a list of all areas the player is currently touching.
    • $areas is ordered by the volume of areas in increasing order (first area is the smallest).
  • Added $uuid property for getting the id of the player. (Can be used to check area ownership.)
  • Added @warden_nearby event which is active when a Warden is within 32 blocks (2 chunks) of the player.
    • Note: This event is only available from Minecraft 1.19 and up.
  • Added $structures property which contains a list of the ids of all structures that the player is in.
    • Note 1: even if the "structure blocks" are removed, the "structure bounding box" still exists.
    • Note 2: it is a bit difficult to get a sensible hitbox for structures and some structures' hitboxes might be a slightly off. If so, feel free to report where this happens.
    • Important: $structures requires server support to function. If no server-support, then $structures == undefined.

Configuration language:

  • Breaking change: Changed the syntax for all/any [x] in [list] **where** [condition] end to all/any [x] in [list] **has** [condition] end
  • Added indexing operator [] for lists where the first element has index 0. Example: list[0].
  • All values in the configuration language can now have an "undefined" value.
    • For example, list[n] == undefined if there is no element at index n in the list.
    • Also, if no world is currently loaded, events such as "@rain" will also have @rain == undefined.
  • Added the constant undefined which can be of any type.
  • Added operator [value] *~ [regex] for matching strings with regular expressions (using Java regex syntax).
  • Added more number-comparison operators: <=, >, and >=.
  • Added unary operators for logical not ! and for number negation -.
  • Added field access notation value.field.
    • As an example area.name gets the name of an area, whereas area.owner gets the owner's id (if the area is owned).
  • Added let [name] = [value] in [schedule] for introducing named values in a schedule.
    • This allows the values of expensive events and properties for reuse in multiple checks.
  • Fixed bug in list equality check where equality was only checked up to the length of the shortest list.

Other:

  • Many big and small improvements and fixes.