Skip to content

Releases: dev-hydrogen/oxygen

Oxygen 0.2.2

Choose a tag to compare

@github-actions github-actions released this 21 Oct 12:16

Added

  • The Context panel can fill every query the preview has no value for (0, 1 or an empty string) in one step, clear
    them, and nudge or scale every number set for a query at once, as it already could for variables.
  • When a query has no value in the preview, the Problems panel says why: it needs an entity, the game can't run
    it in particle Molang, or it returns a struct to assign to a variable.

Changed

Measured in the game with new tests in the test pack (t66–t80, e13–e31):

  • Queries for world generation or tags (q.heightmap, q.above_top_solid, q.noise, the biome tags,
    q.any_tag) are load errors, as in the game, and their field uses its default. Completions no longer offer them.
  • Names with more dots (v.a.b) are structs: v.c = v.a copies every member, reading v.a gives 0, and setting
    a member replaces a number v.a held. ?? on a member and temp members are flagged as warnings, as the game
    logs them, and still run.
  • Bone queries assigned to a variable fill the struct with zeros, as the game does in particles, where they never
    find a bone. Used any other way they're a load error.
  • q.life_time and q.delta_time read 0 in particles.
  • An event's pre_effect_expression runs after the spawned effect's creation_expression.
  • loop has no 1,024 cap, and a fractional count rounds up.
  • <, >, + and the other numeric operators on a string are load errors.
  • An assignment has a value: v.a = (v.b = 3) sets both.
  • Children of a particle's events on an entity appear where the game puts them: emitter_bound children at the
    emitter, emitter children at the particle (at the emitter when the parent keeps its particles in local space).
  • emitter_local_space with rotation but no position is ignored, as the game rejects it.
  • bind_to_actor: false effects use the world's axes.

Oxygen 0.2.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 14:21

Added

  • The desktop app updates itself on Windows and Linux: a new version downloads in the background and installs the
    next time Oxygen restarts, or right away from Restart to update in the status bar (it asks first if anything
    is unsaved). Help › Check for updates… looks now, and Settings › General can turn automatic downloads off.
    On macOS it says when there's a new version and links to it. This starts with the first release after 0.2.0:
    install that one by hand.
  • The web app tells a tab left open when a newer version is out, and reloads into it on request.
  • MCP servers installed from the release zip tell the agent when a newer release is out, and how to update.
  • Effects on an entity use real locators. Import them from a model's .geo.json (worked out through its bones)
    or make your own with an offset and rotation as a geometry file writes them. The viewport draws the axes the
    effect gets. The stand-in entity also has a scale, a collision box size for entity_aabb, a facing, a time
    when it goes away, and a Follows it switch for bind_to_actor: false. The MCP tools take all of these as an
    entity option.
  • The Inspector's texture area shows a small picture of what the particle draws (the area, or a flipbook's first
    frame). Clicking it opens the Texture panel.
  • The Context panel takes temps (t.size) as inputs too, as a parent's event leaves them before it spawns the
    effect, and context values (c.size), which every expression can read. evaluate_molang takes contexts too.
  • The Debug panel shows the values a selected particle's own expressions left on its turn in the frame, such as the
    index it took from a counter, next to what the emitter's shared variables hold now.

Changed

  • Effects on an entity now behave as measured in the game (test pack e01–e12):
    • A locator flips the effect's axes: an unturned locator points Y down and X to the entity's left. Without a
      locator X points to the entity's right and Z behind it.
    • An emitter on an entity holds 1,000 particles, not 10,000.
    • The entity's movement adds no speed to its particles, even with emitter_local_space velocity on.
    • World-space effects on an entity take relative_position from the world origin.
    • entity_aabb fills the entity's box at the emitter, in the emitter's axes.
    • Entity queries read 0 in an emitter's creation expression. q.position is where the entity stands.
    • When the entity goes away, particles in its space go with it.
  • The entity's facing uses Minecraft's yaw: 0 is south, 90 west.
  • The Scene panel no longer offers made-up attachment points (head, hands and so on) as locators. Scenes saved
    with them keep them as locators at the same places.

Removed

  • The Flip Y switch for locators. Every locator flips its axes in the game, so Oxygen always does.

Fixed

  • The start screen shows the keys you bound for New effect, Open files and Commands.

Oxygen v0.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 19:12
logo-on-dark

See the changelog for everything new in Oxygen 0.2.0

  • Settings (File › Settings…, Ctrl+,): preview defaults, the camera, resolution, background, text size and more, with search, export and import.
  • Every key can be changed, including the fly keys and the Molang editors' commands.
  • About Oxygen: what's new, the engine and game data versions, and system details for bug reports.
  • An MCP server for coding agents, Vibrant Visuals that match the game far more closely, and fixes for paused previews and looping effects.

Downloads: Oxygen.Setup.0.2.0.exe (Windows), Oxygen-0.2.0-arm64.dmg (macOS), Oxygen-0.2.0.AppImage (Linux), oxygen-particle-editor-0.2.0.vsix (VS Code), oxygen-mcp.zip (the MCP server for coding agents: paste the setup prompt into your agent to install it). Or use it in the browser at oxygen.hydrogen.exposed.

Oxygen v0.1.0

Choose a tag to compare

@dev-hydrogen dev-hydrogen released this 17 Oct 20:48
a9f3bb8