Skip to main content

ONI tools


A collection of custom decoding tools for encrypting and decrypting data, built primarily for use in data-drive ARG puzzles (specifically the Halo 4 Section 3 ARG). These tools are a JavaScript port or a Toolkit originally written in ruby, which can be found here - https://github.com/Sepheus/ONI-Tools/tree/master/Toolkit

This section is still a work in progress, and tools are currently only available via the web console until a UI can be built for them. Most require specifically crafted data packets that were built for the ARG, there may still be some floating around out in space somewhere!

Please note that these tools aren't optimized for large amounts of data, processing can slow down or run into problems once you reach above 150,000 characters. A cap of 1 million characters is currently in place.


Extracts characters from the data string at specific positions based on calendar-like offsets.

Calendar
calendar(string)

Interleaves the characters of two strings, you may optionally pass in a delimiter.

Interleave
interleave(string1, string2, delimiter = "")

Performs a lookahead operation on the data node using the given key.

Lookahead
lookahead(key, datanode)

Merges multiple Base64 strings by selecting the most frequent character at each position.

Merge Base64
mergeb64(...args)

Extracts sequences of printable characters from a string, based on a given number of minimum characters. Minimum characters cannot be less than 1.

Extract strings
strings(string, n = 4)

Unmunges a data node using a given key.

Unmunge node
unmunge(key, datanode)

Unscrambles a string by interleaving its characters. For example: abcdefbadcfe

Unscramble
unscramble(string)