No announcement yet.

Event Manipulation

  • Filter
  • Time
  • Show
Clear All
new posts

  • Event Manipulation

    There are ways to manipulate the event by simply naming them, this is gonna be a modding tool I wanna make that gives modders more options. If you have new idea or ideas to improve a current one, feel free to let me know

    ***For Players***

    If you are just here to get the script for a mod that uses it, simply download EventManipulation

    Compatible Mods
    none so far

    Install Instructions:
    1. Dowload the mod from the link below
    2. Extract the file(s) into your /HaremCollector_vxxx folder
    3. Play the game and enjoy the mod

    Mega Download Link

    ***For Modders***

    So Conash has made a lot of custom code that allow you to manipulate event behaviour by simply including any of these things in the name, these include:
    Mov-Up/Down/Left/Right: This forces an event to spawn one tile to either of those directions
    This can be useful if you for example want two events to be on top of eachother

    AUTO: This forces an event to not stop updating/working when it is out of range. By default any event that isn't in the field of view stops working, this makes it so it continue
    This can be useful for events that moves synchronized, for example dancing events

    STOP: Normally the game will try to update every event constantly. This stops that
    Is useful for increasing performance. For example if you have a map full of events that's solely there for a sprite visual, those don't need to be updated because they don't run code nor do they change visually, so stopping the game from updating them saves on performance

    -ignore: Any tile with a region ID higher than 61 will block events. However this can be circumvented by giving that event the -ignore
    Can be useful if you want to create a barrier for events, but you still want to let a select few through

    THROUGH: Turns of collisions with all other events
    This is good if you want an event to still be limited by walls and the region restrictions yet still be able to pass through other events

    no_lock: Normally when an event triggers, it'll face towards the player and then stop all movement/animation. This prevents that
    Can be useful for behaviour animations. For example a musician not stopping to play on their guitar while talking to the player

    Featherfall: Makes the descend on jump animations slower
    Is useful for just what the name suggest, a featherfall effect

    Set_Out: This stops events from being affected by the Adjust_Sprite function
    Can be useful for scenes you don't want affected by custome changes

    +6/+12/-8: These adjust the graphics on an event to move either 6 or 12 pixels up or 8 pixels down
    Good for finetuning graphics and making maps look more dynamic

    Pixel adjustment for Event Graphics:
    Now see it is that last naming code I was interested in, it annoyed me we only had those three to choose from. And what if I wanted to move on the x axis too?

    So I made some improvements on it and now you can move however many pixels you want in all 4 cardinal directions.

    Just a note while you can go however many pixels in either direction you want one tile is 32 pixel, maybe consider just moving the event itself if you have to go above that if possible, however it's all up you

    Also since you can move in all 4 directions means you can make it move in a diagonal

    Moving on the Y axis:
    <+Y:Pixels>: moves up
    <-Y:Pixel>: moves down


    Moving on the X axis:
    <+X:Pixels>: moves right
    <-X:Pixels>: moves left


    Event Directional Blocking
    Okay so, with tilesets you can set certain tiles to block the player from passing over it from certain directions. For example stairs can only be moved on from up and down and not the sides. I have made something similar but for events, so you can now have moving one-way barriers. You can block from all 4 cardinal directions, and have it block more than 1 direction at a time. For example block from left and up.

    To make this work you must set the event priority to either above or below characters, otherwise it's just gonna block from all directions either way. Then use the following naming syntax:


    BLK:U: to block the up direction

    multi-direction example:
    BLK:U:L: to block from both up and left

    And yes the last : is important

    Event Block Line of Sight
    So in basegame there is a line of sight for enemies that can normally be blocked with the region 1, however that was the only way to block it. But what if you wanted a stealth mission with moving walls for example? Well now you can simply name your event this:


    And it will now block the line of sight

    Event Opacity
    I have made it possible to change an events opacity via naming. I have made two versions, absolute value and percentage. The reason is simple opacity isn't percentage based it's absolute values from 0-255. Anyways the naming syntax is:

    For absolute values:


    For percentage:


    Event Blend Type
    And now blend types. What are blend types? Really complicated RGB math to get specific results. Or just really cool ghostly effects and silhouettes. If you are curious in the exact effect read the bottom of this section, I have a little explanation. Anyways there are two blend types: Add and Subtract and the naming syntax is:



    What is blend types actually?

    In short it takes the color of the sprite and blends it into the tile beaneath the sprite. It does this by adding or subtracting the RGB values from it. Note: the order is very important, it's always the top layer added/subtracted to the bottom layer. In short 255-0 does not equal 0-255.

    So here's an example if you have a pure red sprite on a pure blue tile. Then a blend type of add will result in purple and a subtract will result in pure blue. Here is why:

    Pure Red: RGB[255, 0, 0]
    Pure Blue: RBG[0, 0, 255]

    So for add blend type

    Note the order, the event (Pure Red) will be added to the tile (Pure Blue):

    [0, 0, 255] + [255, 0, 0] = [255, 0, 255] (Which is Purple. Well more like a purple-ish pink because fuck you RGB)

    Now the subtract blend type

    Here the order is more important, because of how subtraction works. But again the event (Pure Red) will be subtracted from the tile (Pure Blue):

    [0, 0, 255] - [255, 0, 0] = [0, 0, 255] (Which is Pure Blue again. The reason why is because for red you get 0-255 and in RGB any value below 0 just get rounded to 0. Green is 0-0 which is obviously 0. Blue is 255-0 which is obviously 255)

    For a visual example:
    The order is normal, add and subtract

    You are free to include this script in your mod, I however suggest not doing so. Because I might update or bugfix the original code, so if you included it in your, you would have to update aswell or your mod would revert it back. Instead I'd suggest just referring people to this page instead.
    Last edited by RomeoPapa; 12-17-2022, 02:54 AM.

  • #2
    Now has a mega link