diff --git a/src/content/general/community-tools/baboon/bab.jpg b/src/content/general/community-tools/baboon/bab.jpg new file mode 100644 index 00000000..0aea5d07 Binary files /dev/null and b/src/content/general/community-tools/baboon/bab.jpg differ diff --git a/src/content/general/community-tools/baboon/readme.md b/src/content/general/community-tools/baboon/readme.md new file mode 100644 index 00000000..2256ed27 --- /dev/null +++ b/src/content/general/community-tools/baboon/readme.md @@ -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 %} \ No newline at end of file diff --git a/src/content/general/community-tools/fontpackager/readme.md b/src/content/general/community-tools/fontpackager/readme.md new file mode 100644 index 00000000..bc08cf6e --- /dev/null +++ b/src/content/general/community-tools/fontpackager/readme.md @@ -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. \ No newline at end of file diff --git a/src/content/general/community-tools/halo-asset-blender-development-toolset/readme.md b/src/content/general/community-tools/halo-asset-blender-development-toolset/readme.md index b23bfc6c..60509812 100644 --- a/src/content/general/community-tools/halo-asset-blender-development-toolset/readme.md +++ b/src/content/general/community-tools/halo-asset-blender-development-toolset/readme.md @@ -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: diff --git a/src/content/general/community-tools/readme.md b/src/content/general/community-tools/readme.md index 588d3e35..a279ee7b 100644 --- a/src/content/general/community-tools/readme.md +++ b/src/content/general/community-tools/readme.md @@ -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. diff --git a/src/content/general/community-tools/shared-maps/pepper.jpg b/src/content/general/community-tools/shared-maps/pepper.jpg new file mode 100644 index 00000000..9d025ec2 Binary files /dev/null and b/src/content/general/community-tools/shared-maps/pepper.jpg differ diff --git a/src/content/general/community-tools/shared-maps/readme.md b/src/content/general/community-tools/shared-maps/readme.md new file mode 100644 index 00000000..707c4ef1 --- /dev/null +++ b/src/content/general/community-tools/shared-maps/readme.md @@ -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. \ No newline at end of file diff --git a/src/content/general/game-systems/exampleint.jpg b/src/content/general/game-systems/exampleint.jpg new file mode 100644 index 00000000..c8a53b60 Binary files /dev/null and b/src/content/general/game-systems/exampleint.jpg differ diff --git a/src/content/general/game-systems/examplereal.jpg b/src/content/general/game-systems/examplereal.jpg new file mode 100644 index 00000000..eba3982e Binary files /dev/null and b/src/content/general/game-systems/examplereal.jpg differ diff --git a/src/content/general/game-systems/examplevoid.jpg b/src/content/general/game-systems/examplevoid.jpg new file mode 100644 index 00000000..466b90eb Binary files /dev/null and b/src/content/general/game-systems/examplevoid.jpg differ diff --git a/src/content/general/game-systems/readme.md b/src/content/general/game-systems/readme.md new file mode 100644 index 00000000..16d7d483 --- /dev/null +++ b/src/content/general/game-systems/readme.md @@ -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. \ No newline at end of file diff --git a/src/content/general/readme.md b/src/content/general/readme.md index 6f62dc24..b53e5ec3 100644 --- a/src/content/general/readme.md +++ b/src/content/general/readme.md @@ -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: diff --git a/src/content/general/resources/readme.md b/src/content/general/resources/readme.md new file mode 100644 index 00000000..1c2bd97c --- /dev/null +++ b/src/content/general/resources/readme.md @@ -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/) \ No newline at end of file diff --git a/src/content/h3/tags/object/item/weapon/readme.md b/src/content/h3/tags/object/item/weapon/readme.md index 22ab4313..e1b787e1 100644 --- a/src/content/h3/tags/object/item/weapon/readme.md +++ b/src/content/h3/tags/object/item/weapon/readme.md @@ -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 @@ -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 diff --git a/src/content/h3/tags/object/projectile/readme.md b/src/content/h3/tags/object/projectile/readme.md index 81f492b6..14ab37e8 100644 --- a/src/content/h3/tags/object/projectile/readme.md +++ b/src/content/h3/tags/object/projectile/readme.md @@ -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 diff --git a/src/data/hsc/h3/functions.yml b/src/data/hsc/h3/functions.yml index 6d71b27f..635fa256 100644 --- a/src/data/hsc/h3/functions.yml +++ b/src/data/hsc/h3/functions.yml @@ -3278,7 +3278,7 @@ functions: ```hsc ( ai_force_active ) ``` - 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: