Ever since Brickadia first became available with Alpha 4, you've all been building a lot of things. And that's grand! We've seen forts, TDM arenas, challenges, film studios, and so much more. We've even seen a fair few vehicles, and a bit of machinery. Right now in Brickadia, you can make a creation that imitates anything at all. In appearance. Not in function.

You have some special bricks, and special components, but those just have rigid, unchangeable behavior. How can we improve this?

Let's talk about some new, upcoming features!

Interactive Components

I'll be the first to admit it; Brickadia really does a shoddy job at doors. We're just not catering to door fans right now. Breaking into the door market is not going to be easy - we’ve already upset the powerful video game door lobby with our joke blog post earlier this year. Wrapperup has since fled his home, and all attempts to persuade him to reveal his whereabouts have been met with typical paranoid outbursts - "You're working for the door people, aren't you?!" I understand his plight, of course - I myself have fled to Guinea, where I continue to live as a rat.

To make a proper door, which opens and closes, we'll look at not just a new brick, but a new component - the Door component. You can click on a door to open and close it.

Two doors. The red door is closed, and the green door is open. Note that the open door being open doesn't change what the panels show - one unconnected input, for something. But what?

We also need to know about the Switch. You can click on a switch to turn it off and on. On its own, of course, it doesn't do anything useful.

A switch. There's another one of those weird panels above it, but this one appears to be showing an output...

It might seem like we've just added two new components that have limited functionality, but these are the building blocks of what we'll introduce next; wires.

Wires

With the addition of wires, every component in the game now has wire ports. Wire ports come in two flavors; Wire inputs are places we can route data into a brick component, allowing us to control that component - and wire outputs are places we can get data out.

Interacting with wires will be done through a new tool called the Wire Tool, though that will be the subject of later posts. Like hidden bricks, you can only see wires when you have a building tool in your hand. Otherwise, they're out of your way.

Connecting Doors and Switches

For the sake of this example, a door has only one wire input - whether it should be open. Thus, if we send an "on" value down the wire, the door will open, and if we send an "off" one, the door will close.

The switch is the exact opposite case in terms of what wire ports it has. It has one wire output - whether the switch is turned on. Do you see where this is going?

A switch that opens a door!

If we wire a switch to the door, like this, you can now use the switch to open and close the door.

Voilà!

So far, this might seem a bit simple. But this is just the beginning.

Can wires be used to turn your lights on and off, too? Can they disable and enable pickups? Can they switch your radio off and on?

Yes. They can.

Connecting Components

Remember what I said? With the addition of wires, every component in the game now has wire ports.

For this next trick, we'll use a button. It only enables the output for a short time. But there's nothing we can wire it to, right?

Let's wire this button up to something! What about the pickup's enabled property?

We've wired the switch to the pickup! Or, more specifically, the brick that the pickup component was added to.

Excellent! Now we can switch the pickup on only when the button is pressed! This means that that bow can only be picked up with teamwork - one person needs to stand where the pickup is, and another must press the button.

What else can we do? Can we adjust the pickup's size, so that when the switch is flipped, our pickup gets huge?

Well, hold on there. Different wire ports will give and take different kinds of values. Some might take an "on"/"off", some might need a number. Obviously, these couldn't be wired together.

Or could they?

The light switch is wired to the light's brightness, despite them being different types.

If you wire a switch to something that doesn't take a "on"/"off" signal, the wire system will just convert it in a way that lets you choose two possible values. Here, we've said we want the light's intensity to be 30lm when the switch is on, and 0lm (basically off) when the light is off.

You can do this with everything. For example, the size of a pickup, the volume of a radio, or even multiple of those things, at the same time:

This switch will open the door to the treasure, but it'll also play scary music! Who's gonna have the nerve to steal from this crypt?

There are all kinds of inputs we can use to control things. Here are just three, two of which you've seen:

  • Buttons will emit an "on" signal for a set amount of time when pressed.
  • Switches emit an "on" signal if switched on, and an "off" signal if switched off.
  • Dials let us emit a whole range of values. Turning a dial makes the number it sends go up. Valves, sliders and other inputs of this type work similarly.
Several inputs side by side. Notice how the button and switch output on/off, while the dial outputs a scalar value!

Of course, there’s still more we can do here. So let's add something new again; something that will open even more new possibilities.

Logic Gates

Let's say, for the sake of another example, that you have a door you want to be opened by switches. More specifically, by two switches. You now have a problem.

Two switches and a door.

Obviously, you can't wire two switches to the same door. If one switch is on and the other one is off, there's no knowing what should happen. And so, what are you to do instead?

Just use the AND gate.

By connecting our switches through an AND gate, we can only open the door when both switches are on!

Gates are placed with the brick tool. They will occupy a custom tab, and will be hidden from view by default. The AND gate's specific behavior is that it'll always output an off signal, unless both things wired to it are outputting an on signal. In real terms, this means your door will only be open if both switches are on.

There are all sorts of logic gates planned, but I won’t introduce them all for now. Instead, let me show you some use cases.

This airlock has a switch inside that ensures only one door can be open at a time.
This train is controlled by the dial at the front. To the right is forward, to the left is backwards. Pointing up is stop.
A deadly tomb trap! The two hilighted walls are movers. When the idol is interacted with, they will move inwards, crushing players between them.
This service elevator goes between 3 floors. The doors are controlled by the position of the elevator, and the position of the elevator is changed by using the elevator's buttons to "call" it to the various floors.
Here's a clearer view of the elevator shaft, with all the panels collapsed down so you can really appreciate how simple a "circuit" this is. You'll notice the buttons inside the elevator car aren't wired up - how do you think they'd be wired? Post your answers in the discord.

More to come

While we're still early in the progress of this work, this blog post is an important indicator of the shape of things to come. Wires can be used to do a lot of cool stuff.

However; what if we want to go further? What if we want to store data in bricks? What if we want to script custom brick components of our own, with their own properties and wire ports, rather than wiring together the existing ones? What if we want to create entire custom gamemodes?

Next time, we'll be talking about our visual scripting system called Behaviors. Stay tuned.

Build credits: Myself, Refticus, DessertSauce, SeventhSandwich, Demi, SeaChameleon, Wrapperup