Skip to content

Releases: EZvac-Plugin/EZvac

BETA 1.0 Pilot 1

BETA 1.0 Pilot 1 Pre-release
Pre-release

Choose a tag to compare

@bladestech bladestech released this 01 Nov 22:41
B1_0P1

The first BETA: EZvac on Minecraft 26.x. One jar runs on Paper and Purpur 26.1 to 26.3, and still on 1.21.x. It's the biggest update EZvac has had: heating and cooling that scale with your buildings, weather stations, a settings menu for server owners, redesigned screens and HUD, and a plugin that can recover from a broken save. The save format is unchanged (format 8), so every device from ALPHA 3.2 carries over.

This is a pilot: a test build of BETA 1.0, ahead of the full release. Pilots are prereleases on GitHub and betas on Modrinth. Please report anything odd on GitHub.

Minecraft 26.x

  • Runs on 26.1, 26.2 and 26.3, on the Java 25 that Paper 26.x needs. Biomes are no longer a fixed list in 26.x. EZvac now looks them up in a way that works on both versions, so a data pack's biome still gets its own climate.
  • Three new biomes get their own climate and air:
    • pale garden: a dark forest drained of colour, a touch cooler (62 °F at noon, 48 °F at midnight), sheltered from the wind, with little pollen;
    • dappled forest: cooler and drier than a forest (66 °F and 46 °F), with forest air;
    • sulfur caves: a steady 64 °F, warmed by lava and springs, with hazy air (about AQI 137, read as smoke), so a purifier earns its keep down there.
  • Pale oak and poplar signs, hanging signs and trapdoors work like every other wood.
  • 1.21.x is supported, but deprecated, and EZvac says so at start-up. EZvac is played and tested on 26.x first. On 1.21.x, this release passes the automated tests on 1.21.1, 1.21.4, 1.21.5, 1.21.8 and 1.21.11. Nobody plays on it for testing, and the versions in between aren't checked on their own. BETA 2.x will drop all of 1.21.x: it needs Minecraft 26.1 or newer. See Moving to Minecraft 26.x.

Heating and cooling by building size

Until now, one unit could cool a mansion if it had enough vents. Now bigger buildings need more equipment, the way real ones do.

  • One ★★★ unit per 1,860 blocks of air: a floor of about 465 blocks, 4 blocks high. A ★★ unit counts as 0.85 of one and a ★ unit as 0.70, and units add up. So a building of 11,160 blocks of air needs six ★★★ units. Pools need one ★★★ heater per 1,500 blocks of water.
  • Too few units is slower. The thermostat's screen says Undersized 1/3: what the system has of what it needs. A small room is quicker, up to twice the pace. The ETA knows all of this.
  • See where you stand:
    • /hvac info on a thermostat shows the building's size, its openings and what the system has of what it needs;
    • /hvac stats sizes, and Sizes in quick settings, list every system, the worst sized first.
  • Openings leak. An open door, a window or a hole to the sky lets the outdoors in, and the system works harder. A doorway counts its own couple of openings, whatever is outside it.
  • Air stops at the roof's edge. It goes only 3 blocks past it, so a vent in the open makes a small bubble of air, not a field.
  • Neighbouring systems whose air touches even out with each other, like a heated room beside a cooled one through an open doorway. A wall or a closed door keeps them apart.
  • Built with /fill or WorldEdit? /hvac sync maps every system's air again.
  • Your server, your choice:
    • On a server upgrading from ALPHA it starts off, so your builds heat and cool exactly as before. Admins are told once, on joining. Switch it on with Building size in /hvac quicksettings.
    • A new server starts with it on.
    • It switches off again anytime.

Weather stations

A new device: a tower that forecasts the next seven days for players nearby.

  • Building one (admins), from the bottom up:

    1. a cross of four waxed copper blocks round an iron block;
    2. an iron block;
    3. waxed cut copper with a wall sign on its front;
    4. to 6. three iron blocks with waxed lightning rods on the right, left and right.

    Then look at the sign and run /hvac create weatherstation [label]. If the tower isn't whole, EZvac says which block is missing and where. Before 1.21.9, plain lightning rods do.

  • It only measures the outdoors: the climate 100 blocks around it and 20 up, at sunrise and sunset. It never reads a room's temperature, so a house beside it can't skew it.

  • Honest forecasts:

    • each day's high and low, wind and pollen are exact, from the area's climate, the season calendar and the world's seed;
    • rain and thunder are certain only as far as Minecraft's own weather clock knows ("Rain from 15:00", "Clear all day"), then given as chances, since the next spell of weather is random.
  • Reading it:

    • the screen shows the temperature, today's weather and what's certain;
    • clicking it opens the seven days;
    • /hvac forecast (everyone) lists the stations within 400 blocks, nearest first.
  • Sparks and lightning: a working station's rods spark when someone is near, and it counts every lightning strike on its tower.

  • Damage: a broken tower stops the station until it's rebuilt.

  • Settings: admins get an on/off switch in its menu. Weather stations are a kind on quick settings' Devices page, and weather-stations in config.yml sets the range, the area and the sparks.

Quick settings

/hvac quicksettings (or /hvac qs, admins) is one menu for the settings that shape the whole server. Changes apply at once, are written to config.yml and are logged.

  • Devices: switch a kind off server-wide: heat pumps, air conditioners, furnaces, boilers, pool heat pumps, dehumidifiers, humidifiers, air purifiers or weather stations. They stop, their screens say "Off server-wide", and no new ones can be made. A thermostat left with nothing to heat or cool says Units off.
  • Climate systems: switch air quality, pollen, wind, the seasons and building size on or off without a restart.
  • Backups & registry:
    • back the registry up now, or automatically every 4, 8, 12, 24 or 48 hours or every week (the newest 10 automatic backups are kept);
    • see how hvac.yml is doing.
  • Statistics and Updates: what /hvac stats and /hvac update say, and the update check's switches.

When hvac.yml breaks

A hand edit gone wrong, a bad entry or a corrupted file no longer takes EZvac down.

  • Admins are told in game, a moment after joining. The message says when hvac.yml was recovered from a backup at this start, or when entries were set aside.
  • More fallbacks: if hvac.yml.bak is unreadable too, EZvac recovers from the newest readable backup in plugins/EZvac/backups/.
  • Stopped, not gone: with nothing readable, EZvac stays loaded but runs and saves nothing, and /hvac explains why. /hvac quicksettings opens a recovery menu: salvage the file or restore a backup, each with a click, then a second.
  • /hvac registry lists what was set aside, and /hvac registry repair --force discards it on purpose.
  • Upgrades never trigger any of this. A successful upgrade to a newer save format tells admins it went through.

Screens and HUD

  • Every screen is redesigned as a status strip. The header is coloured by what the device is doing: blue and ❄ cooling, orange and ♨ heating, green holding, grey off, amber when it needs you. The main reading sits big and centred under it. The sign behind a screen is now blank, since on 26.x its text showed through.

  • RPM monitors show the tier as T1 to T3 (HP T3 ×2 2,950). A long row is shortened, but its speed is never cut off.

  • The HUD sidebar is organised in sections:

    • Here, Outside and System, each with an accent heading;
    • a comfort gauge running blue through green to red, with a ◆ where it feels;
    • an icon for what the system is doing (♨ heating, ❄ cooling, ● holding).

    A stock sidebar moves to the sections when you upgrade; one you changed is left alone.

  • Airflow shows its strength: Airflow: Strength 100% in green in a vent's core, less towards the edge of its reach, gold under 50%. It used to say Core or 62% leakage, which read as the opposite of what it meant.

  • An idle system says what it holds: Holding 72.0°F instead of Idle.

Update notifications

  • EZvac tells admins when a newer version is out. It checks GitHub at start-up and every 6 hours, logs it, and tells admins when they join.
  • Pilots: a server on a pilot hears about newer pilots and full releases. One on a full release only hears about full releases.
  • /hvac update checks right away. It also says whether the newer version runs on your Minecraft version, so a 1.21.x server isn't told to install a BETA 2.x it can't run.
  • updates.check: false turns the background checks off.

Also new and fixed

  • /hvac help is shorter: players see only their own commands, and admins get two more pages, /hvac help build and /hvac help server. Tab completion only offers commands you can run.
  • Fixed: a unit's water or lava could spread into the unit beside it in the same casing, or flood a build linked before its casing was finished. It now stays in its cell.
  • Fixed: stock sidebars from 1.8 to 2.2 never got the season, addon, air and wind lines.

Upgrading from ALPHA 3.2

  1. Stop the server and back up plugins/EZvac.
  2. Replace the jar with EzVac-BETA-1.0-P1.jar. On 26.x, run the server on Java 25.
  3. Start the server.
  • The save stays format 8. Every device carries over.
  • Your config.yml gains the updates, devices, backups, sizing and weather-stations sections, with their comments, and building size starts off.
  • ...
Read more

ALPHA 3.2 HOTFIX 1

Choose a tag to compare

@bladestech bladestech released this 28 Oct 19:37

A bug fix for ALPHA 3.2, and nothing else. The save is unchanged (format 8), so it's a drop-in upgrade, and going back to 3.2 is a jar swap.

Fixed: an air purifier was hard to build

/hvac create purifier needed a living tube coral block under the iron block. Tube coral dies within seconds away from water, so it was often dead before the command ran, and the purifier couldn't be made.

Now:

  • You can make the purifier first. Make it with nothing under the iron block and it waits with No filter. Make it on dead coral and it waits with Filter spent.
  • The first tube coral block you place under it is a fresh filter, and it stays alive there, as every filter does.
  • Anything else under the iron block is still refused.

Verified

  • 414 automated tests, including a new one for a purifier made without its filter.
  • Live on Purpur 1.21.1: made over air (No filter); coral placed by a player (Filter 100%, still alive 15 s later); made on dead coral (Filter spent); refused over stone; a loose coral nearby still dies.

Upgrading

Stop the server, replace the EZvac jar in plugins with EzVac-ALPHA-3.2-HOTFIX1.jar, and start it again. Addons need no changes: EZdebug+ 0.2.1 and LiveExposure 0.2.0 work as before.

The jar below was built by GitHub Actions from 0518b7d. Full details in CHANGELOG.md.

ALPHA 3.2

Choose a tag to compare

@bladestech bladestech released this 27 Oct 22:26

Air quality and wind. Every room now knows what's in its air, and every day has its own wind. This is the last new system before BETA 1.0.

Air quality

Rooms and standalone spaces track fine particles (PM2.5), dust (PM10) and pollen. EZvac scores the particles as the US EPA Air Quality Index, from Good to Hazardous, and says why when the air isn't Good: smoke or dust. Pollen has its own level, Low to Very high, and isn't part of the AQI.

  • Indoors, lit campfires, fire, lava, lit furnaces and candles fill a room with smoke. A room's air drifts toward the outdoors, particles settle, and a system's own filter cleans it a little while it runs.

  • Outdoors, each biome has its own air. Flower forests and meadows are full of pollen, deserts and badlands are dusty, the Nether is smoky (the basalt deltas are Hazardous), and the End is clean. Pollen peaks in spring and is gone in winter, and rain washes the air.

  • Air purifiers: an iron block on a tube coral block, with a sign: /hvac create purifier.

    • Fan speeds, like a real one: Low, Medium, High and Auto, which idles on Low and ramps up as the air gets worse.
    • The coral is the filter. It fills faster the dirtier the air. When it's full the coral dies: break it and place fresh tube coral.
  • Reading it:

    • Air monitor signs: /hvac create airmonitor;
    • cherry button air sensors for sensor hubs;
    • /hvac temperature and /hvac info;
    • the HUD and placeholders.

    Thermostats don't show the air: a real one measures none.

Wind

Each day draws a level, Calm, Breezy, Windy or Gale, from the world seed and the day of the season calendar. Spring and autumn are windier, the wind gusts through the day, and storms add to it.

  • Terrain changes it. Mountain tops, the sea and open country are windier. Forests shelter you, and walls and roofs keep it out. There's none underground or outside the overworld.
  • It changes the climate:
    • "feels like" is colder: a gale on a mild day feels below freezing;
    • rooms leak more, up to twice as much in a gale, so systems work harder (the thermostat's ETA knows);
    • desert gales raise dust storms;
    • smoke thins and pollen spreads.
  • /hvac wind shows today's wind, the wind where you stand and the next days'. Admins can hold a level for the day with /hvac wind set <calm|breezy|windy|gale|auto>.
  • A bamboo button is a wind sensor for sensor hubs.

HUD and placeholders

  • Tokens: {aqi} {aqi_band} {pollen} {wind} {wind_level}. A stock sidebar gains an air line and a wind line.
  • Placeholders: %ezvac_aqi%, _aqi_colored, _aqi_band, _pm25, _pm10, _pollen, _pollen_count, _wind, _wind_level, _wind_speed, _wind_ms, _wind_kmh and _wind_mph.
  • Wind speeds show in km/h with °C and mph with °F.

Upgrading from 3.1

  1. Stop the server and back up plugins/EZvac.
  2. Replace the jar with EzVac-ALPHA-3.2.jar and start the server.
  • The save stays format 8. Every room's air starts at the outdoor level.
  • Your config.yml gains air-quality and wind with their comments. Either can be switched off.
  • Going back to 3.1 is a jar swap. 3.1 keeps the purifiers, air monitors and air and wind sensors it doesn't know, with a warning, and 3.2 brings them back.
  • EZdebug+ users need 0.2.1: 0.2.0's debug vision fails near the new devices. LiveExposure 0.2.0 works unchanged.

For addon makers: API 1.5

On JitPack as com.github.EZvac-Plugin.EZvac:ezvac-api:ALPHA-3.2.

  • Air quality:
    • AirQuality (PM2.5, PM10, pollen, AQI, band, cause, pollen level), on ClimateReading and ThermostatView;
    • air purifiers in climateUnits(), with their filter and fan.
  • Wind:
    • Wind (speed and level), on ClimateReading and OutdoorClimate;
    • windForecast(world, days).
  • New instrument kinds: air monitors, air sensors and wind sensors in instruments().
  • Compatible: old constructors still work. A switch over an EZvac enum needs a default branch, because 1.5 adds kinds.

Everything is in the changelog, and the new guides are Air quality and Wind.

Requires Paper 1.21.1 or a fork such as Purpur, on Java 21.

ALPHA 3.1

Choose a tag to compare

@bladestech bladestech released this 27 Oct 01:00

Equipment tiers. Every heat pump, air conditioner, furnace, boiler and pool heat pump now has a tier, shown as stars, after the three kinds of real equipment. Better tiers are stronger and hold a room steadier. Every existing unit becomes ★★★, so your systems run as they did.

★☆☆ Single-stage ★★☆ Two-stage ★★★ Variable-speed
Near the target stays flat out, overshoots, then stops drops to a 65% low stage eases down smoothly, to 40%
Capacity flat out 70% 85% 100%
Furnaces and boilers flat out or off 65% low stage modulating, 40-100%

What's new

  • Tiers. Far from the target every tier runs flat out, so how fast a room cools or heats comes down to capacity: the cheaper kinds are the budget models. Near the target a single-stage unit cycles, a two-stage one finishes on its low stage, and a variable one settles. Tiers mix freely in one system.
  • Commands:
    • /hvac create heatpump|ac|furnace|boiler|poolheatpump [t1|t2|t3] sets the tier. New units are two-stage unless you name one.
    • /hvac equipment tier <t1|t2|t3> changes the unit you look at.
    • 1-3, single, two-stage, variable and modulating work too.
  • Stars show in /hvac info, on RPM monitors and in messages. Monitors give each kind and tier its own row (HP ★★★ ×2 2,950), shortened so the stars always fit. displays.stars changes the glyphs, for a resource pack or Bedrock players.
  • The thermostat's meter shows load: how hard the system is working, 0-100%, on the sign and the screen's bar. It used to be raw capacity, which passed 100% with several units.
  • Boilers burn like furnaces, as they were always documented to, instead of running on the compressors' variable-speed curve.

Upgrading from 3.0

  1. Stop the server and back up plugins/EZvac.
  2. Replace the jar with EzVac-ALPHA-3.1.jar and start the server.
  • The save moves to format 8. Your 3.0 file is kept as hvac.yml.format7.bak.
  • Every unit becomes ★★★ variable, at full capacity. Heat pumps, ACs and pool heat pumps run exactly as before. Furnaces now ease off near the target instead of overshooting, and boilers heat much as they did.
  • New units default to two-stage. Name t3 for variable.
  • Your config.yml gains performance.tiers and displays.stars with their comments.
  • Going back to 3.0 means restoring the format 7 backup: 3.0 won't start on a format 8 file.

For addon makers: API 1.4

On JitPack as com.github.EZvac-Plugin.EZvac:ezvac-api:ALPHA-3.1.

  • New: EquipmentView.tier(): 1 single-stage, 2 two-stage, 3 variable.
  • Compatible: the old constructor still works and means variable. LiveExposure and EZdebug+ work unchanged.

Everything is in the changelog.

Requires Paper 1.21.1 or a fork such as Purpur, on Java 21.

ALPHA 3.0

Choose a tag to compare

@bladestech bladestech released this 26 Oct 20:23

Linked systems. Group names are gone. A system is now a thermostat and whatever you link to it with the new link tool. Thermostat names can repeat, so every house can have a Home, and a system that loses its thermostat waits, headless, for a new one. How systems run doesn't change: heating, cooling, airflow and humidity behave exactly as in 2.2.

Warning

Upgrading is one way. On its first save, 3.0 converts hvac.yml to a new format (7) and keeps your 2.x file as hvac.yml.format6.bak. Every old group carries over by itself, with nothing to relink. EZvac 2.x will not start on the new file; going back means restoring that backup and losing everything built or changed since the upgrade. Back up plugins/EZvac before you upgrade.

What's new

  • The link tool (/hvac link-tool) replaces the duct tool and the sensor tool.
    • Right-click a thermostat to select it, then right-click equipment, vents, a settings panel or RPM monitors to link them. Sneak-click anything to unlink it.
    • Select a sensor hub to link sensors, as before.
    • Create a device while holding the tool, and it's linked straight away.
    • Old duct and sensor tools in inventories keep working.
  • Headless systems. Breaking a thermostat no longer scatters its system: everything stays linked, idle. Link a new thermostat to any part of it and the whole system comes along.
  • Nothing is taken by accident. Linking a device that belongs to another thermostat is refused, with where that thermostat is.
  • Thermostats follow what's linked to them. Link a boiler, pool heat pump or waxed copper grate and it becomes a pool thermostat (75-104 °F).
  • RPM monitors show their whole system: one row per kind of equipment, with pages and auto-flip like the sensor hub.
  • /hvac remove system (holding the link tool) removes a whole system after a confirm, and /hvac rename renames any sign.
  • The HUD names the system you're in after its thermostat, with the new {system} token and %ezvac_system% placeholder.

Removed

Removed Use instead
Group names Link devices to a thermostat with the link tool
/hvac group <group> enable|disable|info Sneak-click the thermostat, or /hvac thermostat info while looking at it
/hvac thermostat <id> ... by name The same while looking at the thermostat: /hvac thermostat set 70
/hvac thermostat <id> group, /hvac equipment group Unlink with the link tool (sneak-click), then link to another thermostat
RPM monitors watching one kind of equipment A monitor shows all of its system's equipment
Unique thermostat ids Labels may repeat; /hvac rename changes one

Deprecated

These still work in 3.0 but may be removed in a later release; the changelog will say so first.

Deprecated Use instead
A group name in create commands (create heatpump house) The form without it; the group is ignored, with a note
{group} and %ezvac_group% {system} and %ezvac_system% (same value)
/hvac duct-tool, /hvac sensor-tool, /hvac tool, and the old tool items /hvac link-tool
API: EzvacApi.thermostat(world, id) thermostatAt(position) or thermostatOf(world, system)

Upgrading from 2.2

  1. Stop the server and back up plugins/EZvac.
  2. Replace the jar with EzVac-ALPHA-3.0.jar and start the server.

Each group becomes a system with the same thermostat, equipment, vents, settings panel and RPM monitors. A group without a thermostat comes back headless. Labels stay as they were: tidy old group-style names with /hvac rename. Command blocks or scripts that used /hvac group or /hvac thermostat <name> need changing. Nothing in config.yml does. See Upgrading.

For addon makers: API 1.3

On JitPack as com.github.EZvac-Plugin.EZvac:ezvac-api:ALPHA-3.0.

  • New:
    • thermostatAt(position);
    • thermostatOf(world, system);
    • linkTool(): whether an item is the link tool, and what it has selected.
  • Changed: a view's system() is now an opaque key. An upgraded system keeps its old group name; a new one is # and a number. Show players the thermostat's label (ThermostatView.id(), ClimateReading.thermostat()).
  • Compatible: LiveExposure and EZdebug+ work unchanged. EZdebug+ 0.2.0, coming next, shows debug vision while you hold the link tool.

The API guide has a new Systems section. Everything is in the changelog.

Requires Paper 1.21.1 or a fork such as Purpur, on Java 21.

ALPHA 2.2

Choose a tag to compare

@bladestech bladestech released this 25 Oct 10:42

An API release. Addons can now see every EZvac device and where it is. Nothing changes for players or servers: the save, the config and gameplay are exactly as in ALPHA 2.1, so upgrading is a jar swap.

EZdebug+, a new official addon, is built on it: a Debug Potion that frames every sign, outlines equipment through walls, and shows working vents puffing colour.

Upgrading from 2.1

Stop the server, replace the jar with EzVac-ALPHA-2.2.jar, and start it. Nothing to convert or set up. Going back to 2.1 is the same jar swap the other way.

For addon makers: API 1.2

The API is on JitPack as com.github.EZvac-Plugin.EZvac:ezvac-api:ALPHA-2.2.

  • Every device, by world:

    • equipment(): heat pumps, air conditioners, furnaces, boilers and pool heat pumps, with their system, whether they're on and running, their mode and motor RPM;
    • vents(): their system, and whether they blow air or water;
    • instruments(): thermometers and hygrometers, sensors, sensor hubs (with the sensors they show), RPM monitors and settings panels;
    • thermostats(world), climateUnits(world);
    • devices(world): everything in a world.
  • One sealed type: every view is an HvacDevice with its position(), so one switch covers them all.

  • Events:

    • DeviceAddedEvent;
    • DeviceRemovedEvent, for a device broken, removed by command, or found missing.

    A map addon can read devices(world) once and follow these. Like EZvac's other events, they cost nothing while no addon listens.

  • Not included: sensor readings aren't part of the views. Read any spot with readingAt instead.

The API guide has the details and an example. Everything is in the changelog.

Requires Paper 1.21.1 or a fork such as Purpur, on Java 21.

ALPHA 2.1

Choose a tag to compare

@bladestech bladestech released this 25 Oct 02:29

Realism: EXTENDED. EZvac 2.1 gives every biome its own climate, with smooth transitions between them, and adds seasons on EZvac's own calendar, colder air up high and steady air underground. Every sign gets a lit screen and a control menu, temperatures can be shown in °F or °C, and other plugins can now build on EZvac through its public API. Upgrading from 2.0 is a jar swap: the save format doesn't change.

2.1 was tried out in four prereleases first (ALPHA-2.1-P1 to P4). If you ran one of those, this is a drop-in upgrade.

Upgrading from 2.0

  1. Back up plugins/EZvac/. EZvac keeps backups too, but a copy of your own costs nothing.
  2. Stop the server and replace the EZvac jar with EzVac-ALPHA-2.1.jar.
  3. Start it again. On the first start:
    • hvac.yml: stays format 6 and loads as it is.
    • seasons.yml: new. Every world with a sun starts on the first day of spring.
    • config.yml: gains every new setting with its comments. Your own settings are not changed, and the old file is kept as config.yml.before-ALPHA-2.1.bak. A sidebar with the stock lines also gains the season line and the {addons} line.
    • Rooms: systems and targets carry on. Outdoor temperatures follow the new climate at once, and rooms drift to it over the first in-game hours.

Going back: 2.0 still loads a 2.1 save, since the format is the same. It drops the few details only 2.1 knows (each thermostat's seasonal swing and its rain/snow mix on a biome border), which 2.1 samples again if you return. seasons.yml is left alone.

The climate

  • A climate for every biome, modelled on real places, in place of the seven broad classes.
    • Clear desert skies heat the day and cool the night hard (98 °F noon, 64 °F midnight).
    • A jungle (88/74) or the sea (66/60) barely moves.
    • Data-pack biomes get a climate from their Minecraft temperature and rainfall, and any biome can be given its own under biomes:.
  • Biome transitions: the outdoors at a spot blends the biomes within 24 blocks, so walking from plains into a desert ramps over about 48 blocks instead of jumping. Temperature, humidity, weather and lakes all blend.
  • Seasons: four seasons of 15 days each by default, on a smooth curve.
    • Plains noon goes from 90 °F in mid-summer to 54 °F in mid-winter; a taiga from 76 °F to 28 °F; a jungle hardly changes.
    • Lakes and the sea follow a few days behind.
    • Only temperatures change: biomes, rain and snow stay as Minecraft makes them.
    • The calendar counts the world's days (sleeping moves it on); setting the clock back never sends the year back to spring.
    • /hvac season shows where you are. Admins can set <season> [day], next, pause and resume.
  • Altitude: 0.1 °F colder for every block above y=64, about 14 °F at y=200. High up, rain turns to snow where Minecraft snows.
  • Underground: from 4 blocks down (complete at 20) the air holds the ground's steady temperature, with no day/night swing, seasons or weather.

Screens and control menus

  • Screens: every EZvac sign gets a floating, lit panel with more room than its four lines.
    • A thermostat's shows the room, what it's doing (❄ Cooling to 70.0°F), a capacity bar, the ETA, humidity, the outdoors and the season.
    • Sensors, units, hubs, RPM monitors and settings panels have their own.
    • The sign stays behind it, so Bedrock players through Geyser still read it.
    • displays.screens: false turns them off.
  • Control menus: right-click a thermostat sign to change its target.
    • +5 / -5, +1 / -1 and +0.1 / -0.1, in the server's units, never past the allowed range.
    • A lever for on/off.
    • Dehumidifiers and humidifiers get +5% / -5%.
    • Everyone with ezvac.use can change targets this way. Signs can no longer be edited.
  • °F or °C, server wide: units: F|C decides how every temperature is shown and typed. 72F or 22C always works. A config with hud.units: C starts with units: C.
  • The HUD shows the season, with {season} and {season_day} and the %ezvac_season% and %ezvac_season_day% placeholders.

For addons: the EZvac API (1.1)

Addons are ordinary Paper plugins with depend: [EZvac]. The API is on JitPack as com.github.EZvac-Plugin.EZvac:ezvac-api:ALPHA-2.1.

  • Read the climate at any spot or around any player, thermostats and their systems, dehumidifiers, humidifiers and the seasons. Everything is an immutable snapshot.
  • Events fire when a player's climate updates, a system changes mode, a target changes, equipment starts or stops, or a season turns. They cost nothing without an addon listening.
  • HUD sections: addons can add their own lines to the climate HUD.
    • They go where a sidebar line is {addons}, or {section:<id>} for one.
    • hud.sections.hidden switches one off, and /hvac hud sections lists them.
    • Your own lines always fit: an addon section that would pass the sidebar's 15 lines is left out.
  • The first addon is LiveExposure: body temperature for survival players, now with a meter on the HUD.

The guide, with a complete example addon, is in docs/api.md. Everything is in the changelog.

Requires Paper 1.21.1 or a fork such as Purpur, on Java 21.

ALPHA 2.0

Choose a tag to compare

@bladestech bladestech released this 24 Oct 16:31
2_0

The realism update. EZvac 2.0 adds weather, humidity and a "feels like" temperature to every room, plus dehumidifiers, humidifiers, remote sensors and configurable sounds. Upgrading from 1.9, or any 1.x release, is a jar swap: nothing needs converting.

2.0 was tried out in five prereleases on a live server first (ALPHA-2.0-P1 to P5). If you ran one of those, this is a drop-in upgrade.

Thanks to Cole (@colebolebole) @colebolebole , who ran every pilot on his server, for his huge help hunting bugs and for the ideas that shaped 2.0.

Upgrading from 1.9

  1. Back up plugins/EZvac/ (EZvac keeps backups too, but a copy of your own costs nothing).
  2. Stop the server and replace the EZvac jar with EzVac-ALPHA-2.0.jar.
  3. Start it again. On the first start:
    • hvac.yml: moves to format 6. Your 1.9 file is kept as hvac.yml.format5.bak.
    • config.yml: gains every new setting with its comments. Your own settings are not changed, and the old file is kept as config.yml.before-ALPHA-2.0.bak.
    • Rooms: systems, targets and room temperatures carry on as they were. Each room's humidity starts at the outdoor level and settles from there.

Going back: 1.9 refuses a format 6 file and leaves it untouched. To downgrade, stop the server, restore hvac.yml.format5.bak as hvac.yml, and put the 1.9 jar back. Anything built in 2.0 is lost.

Weather, humidity and feels-like

  • Weather: rain and thunder cool the outdoor air (6 °F and 9 °F by default) and narrow the day/night swing; snow cools a little.
    • The change eases in over about two in-game hours instead of switching at once.
    • Deserts, savannas, badlands, the Nether and the End never get weather.
    • The HUD, idle drift, ETAs, thermometers and pools all follow.
  • Humidity: every air room has it, shown as RH and simulated as moisture.
    • Outdoors it comes from the biome: deserts are dry, jungles and swamps humid. It rises at night and climbs toward 100% in rain.
    • Indoors, cooling dries the air, heating lowers the RH, and a heated pool hall gets muggy.
  • Feels like combines temperature, humidity and wind. The HUD's comfort word, bar and colour now follow it in air, so a humid 84 °F room reads Hot.
  • Spot-to-spot variance: readings differ a little from place to place, about ±0.5 °F in a room, ±1.5 °F outdoors, and less in pools. It changes gradually as you walk and drifts over a few in-game hours. Thermostats keep the room's own value, so systems never chase it.

New devices

Device Build Register
Dehumidifier Iron block on a waxed copper grate, sign on the iron block /hvac create dehumidifier [label]
Humidifier Waxed cut copper slab (bottom half) on an iron block, sign on the iron block's side /hvac create humidifier [label]
Hygrometer / thermo-hygrometer A sign /hvac create hygrometer / thermohygrometer [label]
Sensor A stone (temperature), polished blackstone (humidity), mangrove (both) or birch (weather) button /hvac create sensor [label]
Sensor hub A sign; link sensors with /hvac sensor-tool /hvac create sensor-hub [label]

Dehumidifiers and humidifiers

  • No system needed: they work on the room of the system around them, or on their own space anywhere else (a shed, a basement).
  • Sign controls: click the sign to step the setpoint, sneak-click to switch the unit on or off.
  • Dehumidifier tank: it fills with the water removed; a full tank waterlogs the grate while it empties.
  • Humidifier water: it is plumbed, so it never runs dry, and its slab bubbles while it runs.
  • Several units in one space share one humidity.
  • "Air too cold": a dehumidifier in air too dry for its coil shows this, as in snowy biomes.

Sensor hubs

  • Capacity: a hub shows up to nine sensors, three to a page.
  • Paging: click to turn the page; sneak-click to switch auto-flip on or off.
  • Weather sensors need open sky, like a rain gauge.
  • Pressing a sensor shows its reading in chat and never sends redstone.

Also new

  • Thermostat power switch: sneak-right-click a thermostat sign to switch its system off or on.
  • Configurable sounds: every sound is a "sound volume pitch" line under audio.sounds. Resource-pack sounds work, and [] silences an event.
    • Vent airflow: air vents of running systems now softly hum near players.
    • Hum settings: if you tuned audio.hum-volume / audio.hum-pitch, your hum carries over into the new lines.
  • Placeholders: %ezvac_feels_like% (_f, _c), %ezvac_humidity% and %ezvac_weather%, and HUD tokens {feels}, {humidity} and {weather}.
  • The duct tool is now /hvac duct-tool. /hvac tool and your existing tools still work.

Changed

  • Faster on big servers: signs are only rewritten near players. At 1,000 running rooms EZvac's tick cost dropped from about 5.5 ms to about 2 ms.
  • Sign lines always fit: lines are measured the way the game draws them, so long labels are shortened instead of wrapping and vanishing. Hanging signs work too.
  • A typo in a new config section no longer stops EZvac: that section falls back to its defaults, and the log names the setting to fix.

Verified

  • Tests: 217 automated tests, including real save files written by 13 releases from 1.0 to 2.0 Pilot 5.
  • Upgrade, on Purpur 1.21.1: a 1.9 world upgraded from both a clean save and a crash save, with every device back and the original kept. 1.9 refused the 2.0 save and left it untouched.
  • Load: 1,000 running rooms, timed against 1.9.
  • Robustness:
    • hard kills mid-run;
    • an unreadable save record, which was set aside;
    • units, sensors and hubs destroyed by explosions or without a break event.
  • In-game: each pilot ran on a live server before this release.

The jar below was built by GitHub Actions from acf6d7c. Full details are in CHANGELOG.md.

EZvac ALPHA 2.1 Pilot 4

Pre-release

Choose a tag to compare

@bladestech bladestech released this 24 Oct 23:31

Prerelease. The fourth pilot of 2.1, Realism: EXTENDED: EZvac can now be extended. The save format is the same as 2.0 (format 6), so it's a drop-in upgrade, and servers have nothing new to set up: nothing changes for players unless an addon is installed. It includes everything in Pilots 1, 2 and 3.

A public API for addons (API 1.0)

Other plugins can now build on EZvac's climate. Addons are ordinary Paper plugins that depend: [EZvac] and call EzvacApi.get(). They can read:

  • the climate at any spot, or around any player: temperature, feels like, humidity, the outdoors, weather, season, and which system conditions it. These are the same numbers the HUD shows;
  • the outdoor climate: air, natural water, humidity, dew point, and how much the season shifts it;
  • thermostats and their systems, and dehumidifiers and humidifiers;
  • the seasons, and whether the server shows °F or °C.

And listen to events:

Event When
PlayerClimateUpdateEvent Every player's climate is read again, every half second by default
ThermostatModeChangeEvent A system starts cooling or heating, or goes idle
ThermostatTargetChangeEvent A target changes, from the menu or the command
EquipmentStateChangeEvent Equipment starts or stops
SeasonChangeEvent A world's season turns

API 1.0 reads only, and EZvac builds events only while something listens, so servers without addons see no difference at all.

For developers: the API is on JitPack:

<repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
</repository>

<dependency>
    <groupId>com.github.EZvac-Plugin.EZvac</groupId>
    <artifactId>ezvac-api</artifactId>
    <version>ALPHA-2.1-P4</version>
    <scope>provided</scope>
</dependency>

The guide, with a complete example addon, is The EZvac API.

Coming next

LiveExposure, the first EZvac addon: heat and cold that wear down survival players caught in the elements, built on this API.

See the changelog for details.

EZvac ALPHA 2.1 Pilot 3

Pre-release

Choose a tag to compare

@bladestech bladestech released this 24 Oct 21:38

Prerelease. The third pilot of 2.1, Realism: EXTENDED: screens on every sign, and control menus in place of editing signs. The save format is the same as 2.0 (format 6), so it's a drop-in upgrade. It includes everything in Pilot 1 and Pilot 2.

Screens

image

Every EZvac sign now has a floating screen in front of it: a dark, lit panel with room for more than a sign's four lines.

Device Its screen shows
Thermostat Room temperature, ❄ Cooling to 70.0°F / ♨ Heating to / ● Holding, a capacity bar, the ETA and humidity, the outdoor temperature and season
Thermometers The reading, feels-like, the outdoors, the weather and season
Dehumidifier / humidifier The humidity, the setpoint, its state, a dehumidifier's tank
Sensor hub Up to five sensors at once; with more, it pages along with the sign
RPM monitor The RPM, a capacity bar, how many units are running
Settings panel The profile, and how to change it
  • One size: all screens are the same size, so a wall of devices lines up.
  • Lit: they're readable at night.
  • The sign stays behind: clicking works as before, and players whose client can't show screens (such as Bedrock players through Geyser) still read the sign.
  • Nothing is saved with the world: screens come back by themselves when their chunk loads, and removing EZvac leaves nothing floating.
  • On by default: displays.screens: false in config.yml turns them off.

Control menus

Right-click a thermostat sign (room or pool) to open its controls:

Raise Lower
Top Black pane: +5 White pane: -5
Middle Green pane: +1 Red pane: -1
Bottom Lime pane: +0.1 Orange pane: -0.1
  • Units: steps are in the server's units, so °F, or °C with units: C.
  • Limits: the target never goes past the allowed range, 60-85 °F for a room and 75-104 °F for a pool.
  • Power: a lever switches the system on or off.
  • Dehumidifiers and humidifiers get black and white panes for +5% / -5%, from the lowest to the highest of their presets (35-60% and 30-50% by default), and a lever.
  • Sneak-right-click still switches a thermostat's system, or a unit, off or on without opening anything.

Changed

  • EZvac signs can no longer be edited. A thermostat's target is set from its menu instead of line 3 of the sign.
  • Everyone with ezvac.use can change thermostat targets from the menu, like dehumidifier setpoints. Editing line 3 needed ezvac.admin; /hvac thermostat <id> set still does.
  • (De)humidifier signs: clicking one opens its menu instead of stepping through the presets. presets now sets the range the menu reaches.

Upgrading

config.yml gains displays.screens: true automatically, with a backup of the old file, so screens appear as soon as the server starts. Nothing else to do.

See Screens and control menus and the changelog.