Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions src/content/general/community-tools/baboon/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: Baboon
img: bab.jpg
caption: Baboon tag UI
keywords:
- tag editor
info: |
* [Github](https://github.com/Zoephie/Baboon/releases)
thanks:
odchylanie_uderzenia: Writing this page
---
Baboon is a loose tag editor intended as an addition to your modding workflow by allowing users to bypass using guerilla and it's limitations. It comes with several quality-of-life features such as undo/redo and model geometry previews as well as tag sorting by various parameters like recently opened.

{% alert %}
Parts of this tool and it's dependents use Claude code
{% /alert %}
11 changes: 11 additions & 0 deletions src/content/general/community-tools/fontpackager/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: FontPackager
keywords:
- fonts
- font editor
info: |
* [Github](https://github.com/Lord-Zedd/FontPackager)
thanks:
odchylanie_uderzenia: Writing this page
---
FontPackager is a tool designed to dump and view and edit font files for use within MCC.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ keywords:
- blender
- plugin
- addon
info: |-
info: |
* [Download releases](https://github.com/General-101/Halo-Asset-Blender-Development-Toolset/releases)
* [Source code and README](https://github.com/General-101/Halo-Asset-Blender-Development-Toolset)
redirects:
Expand Down
3 changes: 3 additions & 0 deletions src/content/general/community-tools/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ childOrder:
- assembly
- reclaimer
- tagtool
- shared-maps
- baboon
- fontpackager
---
Beyond just the official [mod tools](~) and any [art tools](~) you might need, there are a variety of community-made tools that have become de-factor standards or enable new workflows.

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions src/content/general/community-tools/shared-maps/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: Peppers shared maps
img: pepper.jpg
caption: Peppers script UI
keywords:
- shared maps
info: |
* [Github](https://github.com/Pepper-Man/mcc-build-scenarios-shared/blob/master/mcc_build_scenarios_shared.py)
* [Python](https://www.python.org/)
thanks:
odchylanie_uderzenia: Writing this page
---
This script written by Pepper-Man is a python script running a series of tool commands to generate map files *with* a useable shared map, this is essential for reducing file size by allowing all maps to share resources used in all maps.

To use, download the raw python code in the link and then run it (after installing python), this will launch the UI. Set the engine version for the game you are compiling for, and then you can either manually add scenarios to compile or use a text file called `AllMaps.txt` (Set the allmaps flag and then choose the txt file), this text file should include *all* the scenarios you want to be compiled with shared map support.

This script requires Python 3.10.6 or newer.
Binary file added src/content/general/game-systems/exampleint.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/content/general/game-systems/examplereal.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/content/general/game-systems/examplevoid.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
69 changes: 69 additions & 0 deletions src/content/general/game-systems/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
title: Shared game systems
keywords:
- boolean
- real
- int
- fraction
thanks:
odchylanie_uderzenia: writing and research
---
This page will serve as a home for general concepts and systems shared across games that don't have a standalone page.

# Data types

This guide provides general info on data types commonly used in tag editing and [scripting](~general/scripting) within the halo mod tools, intended to serve as an introduction and explain the logic behind each type.

![Example image of some types of data](examplereal.jpg "In blue is real, yellow is real as a fraction and in red is string")

## Real

This catch-all is a common type used for many fields, it represents real numbers such as 2, 0.4 or 3.6, essentially any number you could ever think of to measure a defined property (such as length, temperature or time).

## Float

The issue with reals is that computers cannot count infinitely precise, because of this computers interpret real as float, with this we get precision loss (better known as floating-point error) as the computer can only represent the *closest* calculated number to the anticipated real number. You likely won't need to worry about this in most modding situations.

## Fraction

Sometimes a field will ask for a fractional value, in such cases we use real to define a percentage. An example would be weapon heat fields which define heat in relation to **0** (no heat) and **1** (full heat), so a value of 0.44 will mean 44%

## Integer (int)

Integers represent **whole** numbers and whole numbers only, **no** decimals, integer range is determined by platform. Typically normal integer size is defined by the presence of shorts or longs, if longs are present then normal integers will be smaller than them, and vice versa with shorts.

![Example image of fields using integers](exampleint.jpg "All of these fields take short integers, so a value such as 6.5 would not be allowed")

### Unsigned Integer (uint)

Same as above but **without** the ability to use negative numbers (unsigned), thus doubling it's max value.

## Short (integer)

A version of the integer data type scaled back for a smaller range of values compared to a normal integer. Typically assumed range is `-32,768` to `32,767`, For the purposes of Halo modding, shorts are 16 bit (same as assumed range).

### Unsigned Short

Same as above but unsigned, thus it's typically assumed max range is `0` to `65,535`

## Long (integer)

A version of the integer data type that compared to normal integers has a larger range, typically assumed range is `-2,147,483,648` to `2,147,483,647`

### Unsigned Long

Same as above but unsigned, typical range is `0` to `4,294,967,295`

## Boolean

In scripting you may often find yourself setting up a script that needs to wait for a condition, in such cases you may often use a boolean, which means `TRUE` **or** `FALSE`, though haloscript also allows true and false to also be represented by numbers: 1 = `TRUE` and 0 = `FALSE`.

![Example image of void returns and booleans](examplevoid.jpg "In white we can see the script declaration and it's return type, while in yellow we can see two commands that use booleans, the first setting a variable to true and the second printing text if the variable `debug` is true")

## String

Some fields will ask for a string entry, this is where you can type normal words and letters, usually in reference to some other block that defines what these words mean. An example would be damage types (as found in H2-H4) where damage effect tags reference a string that the globals tag defines for a damage type and it's properties.

## Void

When declaring a script you may be asked for a return type upon script completion, in some cases `short` or `real` may be used, or you may choose to have no return type, in the case of the last option this is done by declaring a `void` return.
2 changes: 2 additions & 0 deletions src/content/general/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ childOrder:
- command-line
- scale
- help
- game-systems
- resources
---
This section contains introductory content and information common to all games we cover. If you're just getting started with Halo modding, we recommend skimming this section's pages first so you're familiar with the concepts, available tools, and what aspects of modding may be required to accomplish any goals you have. These apply no matter which game you're planning to mod:

Expand Down
12 changes: 12 additions & 0 deletions src/content/general/resources/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: Resources
keywords:
- resources
thanks:
odchylanie_uderzenia: Writing this page
---
- [Reach level geo extracted into blend files](https://github.com/ILoveAGoodCrisp/HaloReachScenarios)
- [Halo 3 String dump](https://github.com/Krevil/H3EKStringDump)
- [Halo series animation repository](https://github.com/77Mynameislol77/HaloAnimationRepository)
- [Halo series damage table spreadsheet](https://1drv.ms/x/s!AoQZ-1VaJd7WmWPgUIHk0GqJM136?e=WnC2s5)
- [Library for understanding and editing megalo gametypes](https://blam-network.github.io/megalo/language/)
4 changes: 2 additions & 2 deletions src/content/h3/tags/object/item/weapon/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ This section is responsible for various properties and responses to weapon heat,
| overheated threshold | real | From 0 to 1 determines at what level of heat the weapon becomes overheated, needs to be higher than the recovery threshold
| heat detonation threshold | real | From 0 to 1 determines when the weapon is allowed to explode after surpassing the given value of heat
| heat detonation fraction | real | From 0 to 1 determines the chance the weapon explodes when it's heat has surpassed the detonation threshold and it is fired
| heat loss per second | real | From 0 to 1 determines how much heat the weapon loses while it is not being fired, or in- between firing
| heat loss per second | real | From 0 to 1 determines how much heat the weapon loses while it is not being fired, or in-between firing
| heat illumination | real | From 0 to 1 determines how much the illumination function is raised as the weapon gains heat
| overheated heat loss per second | real | From 0 to 1 determines how much heat the weapon loses while it is in the overheated state, this state ends when the heat level reaches the recovery threshold
| overheated | [sound](~) / [effect](~) | Effect or sound played when weapon enters overheated state or explodes due to trigger overcharge
Expand Down Expand Up @@ -441,7 +441,7 @@ When using the __fire recovery time__ field in the weapons barrel block, you are
Common fire recovery time lookup table:

| Fire recovery time value | Number of ticks between shots without overflow | Effective rounds per second
|-------|----------
|-------|--------|------
| 0 to 0.033 | 4 | 12
| 0.034 to 0.066 | 6 | ~8.57
| 0.034* | 4 | 12
Expand Down
2 changes: 1 addition & 1 deletion src/content/h3/tags/object/projectile/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ Impact noise does not appear to be functional, and instead projectiles will use
| Fields | Tag/data type | Description
|-------|----------|--------------
| arming time | real | Projectile cannot detonate before this time: like preventing projectiles from blowing each other up too fast
| danger radius | real | AI will try to avoid this projectile from this far away in WU
| danger radius | real | AI will try to avoid this projectile from this far away in WU, when set to a non-zero value for attaching projectiles will trigger AI to use their "enemy stuck by grenade" dialoug when landing hits on a target
| timer | real | A set of two values in seconds that the projectile will pick randomly between to wait before detonation, timer starts according to the "detonation timer starts" selection
| minimum velocity | real | Projectile detonates when falling below this velocity
| maximum range | real | Projectile detonates after having travelled this distance in world units
Expand Down
2 changes: 1 addition & 1 deletion src/data/hsc/h3/functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3278,7 +3278,7 @@ functions:
```hsc
(<void> ai_force_active <ai> <boolean>)
```
forces an encounter to remain active (i.e. not freeze in place) even if there are no players nearby
forces an encounter to remain active (i.e. not freeze in place) even if there are no players nearby, will also re-activate AI who have been made braindead
net_safe_raw: unknown, assumed unsafe
- slug: ai_force_active_by_unit
info:
Expand Down