Skip to content
UnderDragon edited this page Jun 11, 2026 · 7 revisions

Woo hoo, guys, here's UnderDragon.

Thanks to Yocto, the helper is fully expanded with some brand new stuffs!

If you wanna request a tooltip for certain tools or something (usually I'd provide them but sometimes I might forget), you can also tell me by addressing an issue or DM me on Discord @under__dragon

Stylegrounds

Custom Rain

Customizable rain effect

Wind Rain

Customizable Rain effect that will be affected when the map contains certain wind pattern

Water Surface

Inspired by Dream Overdose from Esoterica Contest, now we introduce a particle styleground that's designed to imitate live water surface and making the particles scroll differently from near-side to far-side

Commands

chronia_fullcheat

Enable Variant Mode and Cheat Mode for a save

chronia_fullcheat

chronia_get_keyboard_password_hash

Try getting the encrypted password for PasswordKeyboard

chronia_get_keyboard_password_hash [string: keyboard tag] [string: password] (bool: caseSensitive)

chronia_get_password_hash

Try getting the encrypted keyboard-tag-combined password for PasswordKeyboard

chronia_get_password_hash [string: keyboard-tag-combined password] (bool: caseSensitive)

chronia_flag

Set up a ChroniaHelper flag

chronia_flag [string: flag] (bool: state) (bool: global) (bool: temporary)

chronia_flag_per_room

Set up a flag that only works in one room

chronia_flag_per_room [string: flag] (bool: state)

Migration from TeraHelper

TeraHelper is an excellent helper that gives some entities their tera types so players can interact with them as if they're in an RPG game, and the tera types are strictly based on Pokemon setups, which is pretty well-known.

However, not everyone gets familiar with the 18 tera types from Pokemon, and personally speaking I don't see a way a mapper can use most of the 18 tera types in one map unless it's a huge puzzle map. So that's why I made a duplicate and changed the tera type settings to make it more... I guess, generally simpler.

The entities are all from TeraHelper, very grateful to the source code the author provided, and they have a wiki about the mechanics they included in the helper.

The mechanics of the attacker and the defender are not changed, but the tera type system is re-written as follows:

Instead of the original 18 tera types, I only kept 5 of them, which is

Fire, Water, Grass, Normal and Ghost.

These attacks will be greatly effective:

Fire to Grass,

Water to Fire,

Grass to Water,

These attacks will be normal:

Any to Normal, vice versa

Fire to Fire,

Water to Water,

Grass to Grass,

These attacks will be not so effective:

Fire to Water,

Water to Grass,

Grass to Fire,

These attacks won't work:

Any to Ghost, vice versa

Decal Registry

Hello guys, Chronia Helper now provides several Decal Registries for the mappers to utilize.

To make it simple, I'll give the xml format here directly while introducing the features:

<chronia.color tag="tagName"/>

Chronia Helper session stores a built-in color system called Chronia Color in the Session, and it's defined through 3 counters and a slider, representing the R G B and alpha value of the color.

To define a ChroniaColor through session values, based on the same tag, the relative values are as below:

ChroniaHelper_ChroniaColor_tagName_R (counter ranging 0 to 255)

ChroniaHelper_ChroniaColor_tagName_G (counter ranging 0 to 255)

ChroniaHelper_ChroniaColor_tagName_B (counter ranging 0 to 255)

ChroniaHelper_ChroniaColor_tagName_A (slider ranging 0 to 255)

Do notice that not all these values need to be set, if the session values don't exist, they'll be set to default as Color White (RGBA = 255, 255, 255, 1)

After set, the decal will be tinted to the color

<chronia.sessioncolor r="counterName" g="counterName" b="counterName" a="sliderName"/>

Just like Chronia Color above, but instead, this uses counter and sliders, and the color does not store in the session.

<chronia.sessionposition x="sliderName" y="sliderName"/>

Sets the decal position through slider values

<chronia.sessionscale x="sliderName" y="sliderName"/>

Sets the decal scale through slider values

<chronia.frameIndexFlag indexes="integers" flags="flag names"/>

So, there is a basic Decal Registry from vanilla named frames, it'll set up the frames by its sequence like 0*20, 1-3, 4, 6.

This registry will set up a flag when certain frame is match.

Using the example mentioned above, the new animation sequence consists of 20 frames of texture 0, and texture 1 to texture 3, then texture 4 and texture 6, that'd be 25 frames in total.

So if I set up <chronia.frameIndexFlag indexes="3,4,5" flags="flagM"/>, flagM will be active when the animation is playing frame 3 (texture 0), frame 4 (texture 0) and frame 5 (texture 0).

<chronia.textureIndexFlag indexes="integers" flags="flag names"/>

This registry is similar to the one above, but instead, it reads the texture index.

Using the same example as above, you should know that no matter it's frame 0 or frame 19, they're all using the same texture, the Texture 0, because the frames are defined like this, the first 20 frames using the Texture 0, so 0 is the texture index of this decal.

Therefore, if I set up <chronia.frameIndexFlag indexes="3,4" flags="flagN"/>, flagN will be active when the animation is playing frame 22 (Texture 3) and frame 23 (Texture 4).

Clone this wiki locally