Skip to content

Start typing to see game suggestions. This only suggests apps that have a store page.

Enter Submit to view all results. Ctrl+Enter View and filter in instant search.
Close ×

Open Hexagon update for 29 March 2021

Open Hexagon 2.0.4 is now released!

Share · View all patches · Build 6454216 · Last edited 29 March 2021 – 02:09:05 UTC by Wendy

Patchnotes via Steam Community

Hello everyone – Open Hexagon 2.0.4 is now available!

This is the third official update since the Steam release, and it focuses on engine and performance improvements, and empowering level creators with a new in-game Lua console, pack dependencies, and many new Lua functions.


(For any question or feedback, please get in touch with me on our official Discord.)

Major Changes

  • Changed ticks per second from 120TPS to 240TPS, improving the game's precision during collision detection and movement

  • Level packs can now depend on other packs in order to promote code reuse and avoid repetition

  • Change Lua runtime to LuaJIT, having 20x better performance on average

    • Caveat: supports features only up to Lua 5.1
  • Added in-game debugging and experimentation tools in Debug Mode:

    • (F1): toggle Lua console, allowing to run code on demand and track variables in real-time
    • (F2): pause and un-pause the game -- Lua console is usable when the game is paused

New Levels

  • Added a new work-in-progress official level pack, Orthoplex, containing:
    • Arcadia: an unusual level with wavy patterns made out of custom walls
    • Bipolarity: fast-paced barrages and forced 180° player swaps

Level Improvements

  • Perfectly synchronized pulse and beatpulse with the music for all built-in levels

    • Exceptions: Golden Ratio and Acceleradiant, as they will be reworked in the future
  • Moved Baby Steps to a new pack, Tutorial, making its role more clear to new players

  • Added a graphical transition effect to the player's triangle when focusing/unfocusing

Minor Improvements

  • Added a few milliseconds of ignoring input after death to avoid accidental restarts

  • Added new Show Level Info option that displays information about the current level in the bottom-left corner of the screen, useful for streaming/recording

  • Added options to hide the timer and status text, useful for cinematic recordings

  • Added -printLuaDocs command line argument to print out Lua documentation

Bug Fixes

  • Fixed crash when attempting to change keyboard bindings

  • Fixed broken antialiasing menu setting, now supports up to 16x

  • Fixed t_eval crashing the game on Lua error

New Lua Functions

(Please refer to the Lua reference on the official wiki for a more detailed explanation.)

  • u_execDependencyScript: to load a script from one of the pack's dependencies

    • As opposed to u_execScript, which loads a script from the current pack
  • l_[set/get]ManualPulseControl: when set to true allows Lua scripts to manually control pulse values

    • l_[set/get]Pulse
    • l_[set/get]PulseDirection
    • l_[set/get]PulseDelay
  • l_[set/get]ManualBeatPulseControl: when set to true allows Lua scripts to manually control beatpulse values

    • l_[set/get]BeatPulse
    • l_[set/get]BeatPulseDelay
  • l_[get/set]pulseInitialDelay: control initial delay before any pulse effect starts, useful to sync up a level with the song's beat or to wait until the music reaches a certain point

  • Custom wall optimized functions

    • cw_createDeadly: more optimized way of creating a deadly custom wall and getting back an handle
    • cw_createNoCollision: more optimized way of creating a no-collision custom wall and getting back an handle
    • cw_moveVertexPos: more optimized way of moving a custom wall's vertex by a specified offset
    • cw_moveVertexPos4Same: very optimized way of moving all vertices of a custom wall with the same offset
    • cw_[set/get]VertexPos4: more optimized way of controlling all vertex positions of a custom wall
    • cw_[set/get]VertexColor4: more optimized way of controlling all vertex colors of a custom wall
    • cw_setVertexColor4Same: very optimized way of setting all vertex colors of a custom wall to the same color
  • u_inMenu(): returns true if a Lua script is being executed from the menu screen, false otherwise

  • s_getMainColor, s_getPlayerColor, s_getTextColor, s_get3DOverrideColor, s_getCapColorResult, s_getColor: return a RGBA tuple of the current style's corresponding color

Lua Function Cleanup

  • Removed unused pulseDelayHalf and related Lua functions


  • Added a pulseHelper.html JavaScript tool in the GitHub repository to help level makers calculate pulse values that are in sync with the music's BPM
    • Beatpulse delay should be set to 3000/BPM (or one of its multiples)
    • Pulse values can be calculated through the tool -- the displayed equation should be as close to 3000/BPM (or one of its multiples) as possible

Community Spotlight

Windows 64-bit Windows Content Depot 1358091
  • Loading history…
SteamDB has been running ad-free since 2012.
Donate or contribute.
Open link