Skip to content
This repository has been archived by the owner on Apr 27, 2024. It is now read-only.
/ harmony Public archive

An extension to Chimera's Lua Scripting API

License

Notifications You must be signed in to change notification settings

MangoFizz/harmony

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Harmony

An extension to Chimera's Lua Scripting API focused on manipulating the game's user interface.

Installation

Manual

  1. Install Chimera
  2. Create a folder called "mods" (e.g. "D:\Halo Custom Edition\mods")
  3. Copy harmony.dll file to your mods folder

Mercury

Get Harmony on Mercury by using the following command:

mercury install harmony

Note: Like Chimera, Harmony requires DirectX 9 to be installed in your system.

Features

Harmony features are meant to be used within Lua scripts, so there are no user-facing features like commands or any other settings.

Optic

This was the most important feature, it is a set of functions for displaying external images and playing sounds in-game. See the repository below for a working Medals system made using this feature. https://github.com/Sledmine/Optic

UI manipulation

Harmony allows you to manipulate some aspects of the game's user interface, such as changing the menu aspect ratio, creating and modifying UI widgets in real time (which is useful for creating animated menus), playing custom sounds, changing the cursor scale, and even blocking menu events. This opens a lot of possibilities for creating more dynamic and flexible user interfaces.

See Insurrection project for an example of how these features can be used.

Event callbacks

Like Chimera, Harmony allows you to register callbacks for some events, such when the player presses a key, when the player opens or closes a menu, when the player joins a server, when a player dies, etc. (see API docs for more details).

Lua scripting

Harmony can be used directly on Chimera scripts, it can be required like any other Lua C module in your script:

local harmony = require "mods.harmony"

Check out the Harmony Lua API documentation.

Licenses

  • Chimera - Project structure, engine data, some events, commands system.
  • HAC2 - Codefinder.
  • Lua - Scripting language used by Chimera.
  • Soloud - Sound engine used in the Optic feature.

Credits

  • SnowyMouse - Development of Chimera (the base of this project).
  • Sledmine - Markdown documentation; testing and feedback.
  • SnC people - Testing and feedback (love you guys).
  • Github copilot - Speeding up the process of writing code and documentation.