Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for BreweryTeam

Custom beverage crafting, with large customizability on drinking effects.

Report TheBrewingProject?

Configuration

Updated for version 2.0.0-beta.0

config.yml

This configuration contains rudimentary comments, most of it should be able to understand purely from its above comment

modifiers.yml

This is where you define what statuses a player can have. A modifier can depend on other modifiers, and can also change when the player consumes something. it usually has a decreeement time.

Drunken modifiers

Name

is the unique name to identify this modifier everywhere else, note that there are possibilities of name conflicts with other configuration keys and you should keep the name alphanumeric including underscores. For example hello_my_modifier is valid, but jag+känner+en+bot would be invalid as ä and + is not alhpanumeric

min-value, max-value

This is how you define the range wherin the modifier is allowed to be, a normal min value would be 0, and a normal max value would be 100

decrement-time

You can define the decrement time for this modifier, a decrement time of 400 means that the modifier decreases 1 value every 400 ticks (20 seconds). An more complicated example would be:

decrement-time: "0.2 * sin(my_other_modifier)"

See https://www.objecthunter.net/exp4j/#Built-in_functions for more information about what functions are available for any expression

increment-dependency

Define how the modifier should change when a modifier is consumed for the player. An example:

increment-dependency: consumed_other_modifier * (110 - different_modifier) / 110

A modifier prefixed with consumed_, is going to be the modifier change specified in the event. See https://www.objecthunter.net/exp4j/#Built-in_functions for more information about what functions are available for any expression

display-name

Define the name of the modifier, it will be shown in commands

Drunken displays

A drunken display will show for the player whenever a modifier changes, if no drunken display has been defined for the modifier, none will show.

message Define the message to show whenever this modifier changes, it includes 3 custom tags, skull, bars, stars that you can use to display amount.

filter

Define an expression to filter out when to display the message, the display will only show when the expression is larger than 0. See https://www.objecthunter.net/exp4j/#Built-in_functions for more information about what functions are available for any expression

display-value

The value that should be displayed to the user, this has to be normalized betwen 0 and 100 for the 3 different tags that can show the value. See https://www.objecthunter.net/exp4j/#Built-in_functions for more information about what functions are available for any expression

display-window

Define where to display this message, can be chat, action_bar, title

Drunken tooltips

Define how a modifier should be shown in a tooltip for all brew items

filter

Define an expression to filter out when add the tooltip to the brew, the tooltip will be added when the expression is larger than 0. See https://www.objecthunter.net/exp4j/#Built-in_functions for more information about what functions are available for any expression

brewing-tooltip

Define what should be displayed when the brew is in a brewing process, i.e barrel or distillery. Eevery modifier has a custom tag here

default-tooltip

Define what should be displayed when the brew is not in a brewing process, i.e barrel or distillery. Every modifier has a custom tag here

sealed-tooltip

Define what should be displayed when the brew is sealed. Every modifier has a custom tag here

Consumables

You can define items made outside of TheBrewingProject to apply modifiers to a player, for example bread

events.yml

This is a system for executing commands, applying potion effects, sending messages, and applying other events. All events configuration can be found in events.yml

Random drunken events

Which events should happen randomly whenever a player gets drunk enough, or has enough toxins.

enabled-random-events:
  - puke
  - memory_loss
  - stumble
  - chicken
  - drunk_message
  - nausea

Pass out time

How many minutes the player should be passed out whenever the pass_out event gets triggered.

pass-out-time: 5

Teleport destinations

Where should the player teleport to to (chosen randomly) whenever the teleport event gets triggered.

teleport-destinations: 
  - world, x, y, z

Drunken messages

What messages should be sent from the player whenever the drunk_message event triggers.

messages:
  - I love you <random_player_name>, you're my best friend.
  - I could do one more.
  - Who is she?
  - Watch this!
  - I'm not drunk. You're drunk.

Custom events

This is how you define your own custom event

custom-events:
  memory_loss:
    steps:
      - named-event: pass_out
        wait-condition: join
      - named-event: teleport
        consume:
          alcohol: -30
          toxins: -15

named-event

Run a predefined event.

Can have the values puke, pass_out, stumble, chicken, teleport, drunk_message, nausea, fever, hallucination, kaboom. List might expand.

wait-duration

Wait the specified duration until continuing to the next step, example duration is 10s 10t, wait 10 seconds and 10 ticks.

wait-condition

Wait for condition until this step triggers here's how you define each condition:

steps:
  - wait-condition: died
  - wait-condition: 
      has-permission: my-permission
  - wait-condition: joined-server
  - wait-condition:
      joined-world: my-world-name
  - wait-condition: took-damage

consume

Consume the specified modifiers, an example is

steps:
  - consume:
      alcohol: 10
      my_modifier: -20

event

Define another event with a event property (can be custom or predefined)

effect

Apply an effect to the player. Requires effect, amplifier, and duration property. An example is:

steps:
  - effect: poison
    amplifier: 1;2
    duration: 20;100

Apply a poison effect on a player with a random amplifier within the range 1-2 and duration within the range 20-100

command

Execute a command. Requires the command property, command executor can be defined with the as property

location

Set the location for the player (teleport). An example:

steps:
  - location: worldname 1 2 3

Teleport the player to the world worldname to position x=1, y=2, z=3