• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!
Dynamic Overworld Shadows

Resource Dynamic Overworld Shadows 2.0.0

Zik

Novice
Member
Joined
Aug 16, 2024
Posts
24
Zik submitted a new resource:

Dynamic Overworld Shadows - Enhance your Fangame's visual appeal by implementing dynamically updating character shadows.

Based on the Overworld Shadow Ex, I created this small 'engine' that generates shadows which update with characters on the map.

Although functional, I still consider it to be in an experimental stage. It still needs some touch-ups and code cleaning, as well as fixing some remaining visual bugs. But here it is for anyone who wants to try it.

It should be noted that performance will decrease as more events with different graphics are on your maps. But at least in my case, on a 60x60...

Read more about this resource...
 
I found this error while testing on my project
Code:
Expand Collapse Copy
2025-07-22 05:59:20 +0700]
[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Exception: MKXPError
Message: Operation not supported for mega surfaces

Backtrace:
<internal:kernel>:48:in `initialize_copy'
<internal:kernel>:48:in `initialize_clone'
<internal:kernel>:48:in `clone'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:183:in `setup'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:343:in `update'
[BOTW-Like Item Gathering v21.1 port] script.rb:130:in `update'
Spriteset_Map:66:in `initialize'
Sprite_AnimationSprite:52:in `initialize'
Sprite_DynamicShadows:192:in `initialize'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:320:in `initialize'
 
I found this error while testing on my project
Code:
Expand Collapse Copy
2025-07-22 05:59:20 +0700]
[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Exception: MKXPError
Message: Operation not supported for mega surfaces

Backtrace:
<internal:kernel>:48:in `initialize_copy'
<internal:kernel>:48:in `initialize_clone'
<internal:kernel>:48:in `clone'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:183:in `setup'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:343:in `update'
[BOTW-Like Item Gathering v21.1 port] script.rb:130:in `update'
Spriteset_Map:66:in `initialize'
Sprite_AnimationSprite:52:in `initialize'
Sprite_DynamicShadows:192:in `initialize'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:320:in `initialize'

Unfortunately, I don't have a solution for this at the moment, as I'm busy with something else. In short, the problem is that when trying to copy the tileset to create the duplicates, it was found to be too large. I tried several ideas to mitigate the load, but they haven't worked.
 
Unfortunately, I don't have a solution for this at the moment, as I'm busy with something else. In short, the problem is that when trying to copy the tileset to create the duplicates, it was found to be too large. I tried several ideas to mitigate the load, but they haven't worked.
Relax....take your time..
 
This is a great plugin as a concept but it uses the same rules as the player character. Meaning that if your character is meant to be shown on top of a tile, like the base of a tree for example, the shadow will too. What this means is that your shadow will "clip" through the tree that you're standing behind.
 
I installed the plugin but get this error when trying to boot up the game, what did I do wrong?

[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Exception: MKXPError
Message: Operation not supported for mega surfaces

Backtrace:
<internal:kernel>:48:in `initialize_copy'
<internal:kernel>:48:in `initialize_clone'
<internal:kernel>:48:in `clone'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:183:in `setup'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:343:in `update'
Spriteset_Map:66:in `initialize'
Sprite_AnimationSprite:52:in `initialize'
Sprite_DynamicShadows:192:in `initialize'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:320:in `initialize'
Scene_Map:23:in `new'
 
I installed the plugin but get this error when trying to boot up the game, what did I do wrong?

[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Exception: MKXPError
Message: Operation not supported for mega surfaces

Backtrace:
<internal:kernel>:48:in `initialize_copy'
<internal:kernel>:48:in `initialize_clone'
<internal:kernel>:48:in `clone'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:183:in `setup'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:343:in `update'
Spriteset_Map:66:in `initialize'
Sprite_AnimationSprite:52:in `initialize'
Sprite_DynamicShadows:192:in `initialize'
[Dynamic Overworld Shadows] 01_DynamicPiority.rb:320:in `initialize'
Scene_Map:23:in `new'
you did nothing wrong, is within the plugin itself, it don't work yet:

Unfortunately, I don't have a solution for this at the moment, as I'm busy with something else. In short, the problem is that when trying to copy the tileset to create the duplicates, it was found to be too large. I tried several ideas to mitigate the load, but they haven't worked.
 
Thanks for answering! Is there a way to uninstall? I deleted the plugin but it still crashes when I try to test
delete the PluginScripts.rxdata from Data folder and recompile, it still occurs, try manually deleting your Save on AppData folder and recompile again
 
Zik updated Dynamic Overworld Shadows with a new update entry:

Version 2.0.0 has arrived!

Dynamic Overworld Shadows 2.0.0

  • The code has been rewritten from scratch. Therefore, you must delete the old folder or its files before installing.
  • Dynamic Overworld Shadows 2.0.0 still features three modes, but they are now named BASIC, STANDARD, and ENHANCED.
    • BASIC: Static shadow, animating only when jumping.
      UcBiv2N.gif
    • STANDARD: Same shadow as BASIC, but with...

Read the rest of this update entry...
 
  • Like
Reactions: Zik
So coming back to this plugin after the new update, I'm still having the same issue as before with the "Enhanced" version, which is that event shadows clip through trees.

I can post a picture tomorrow morning but for now what I mean is that I have a tree that is 4 tiles tall. The bottom 2 rows of tiles for the tree are on the 2nd layer and the top 2 rows of the tree are on the 3rd layer. I have the priority of the 3rd row of tree tiles as 1 and the top (4th) row of tree tiles as *2. The shadows don't clip through either of those but they *do clip through the 1st and 2nd row of tree tiles (which are placed on the 2nd layer) which have no priority set in the tileset because they are impassible.

I also have shadows showing on top of NPCs that stand behind counters such as Nurses at Pokecenters.

The update confuses me though with all of the new settings. Is there some way I can fix this or should I just stick with "Standard"?

EDIT:
8qoxsNC.png
 
So coming back to this plugin after the new update, I'm still having the same issue as before with the "Enhanced" version, which is that event shadows clip through trees.

I can post a picture tomorrow morning but for now what I mean is that I have a tree that is 4 tiles tall. The bottom 2 rows of tiles for the tree are on the 2nd layer and the top 2 rows of the tree are on the 3rd layer. I have the priority of the 3rd row of tree tiles as 1 and the top (4th) row of tree tiles as *2. The shadows don't clip through either of those but they *do clip through the 1st and 2nd row of tree tiles (which are placed on the 2nd layer) which have no priority set in the tileset because they are impassible.

I also have shadows showing on top of NPCs that stand behind counters such as Nurses at Pokecenters.

The update confuses me though with all of the new settings. Is there some way I can fix this or should I just stick with "Standard"?

EDIT:
8qoxsNC.png
That's what Dynamic Z-Ordering is for. Now, if you're using it as the instructions indicate, you must ensure that the tiles are on layers 2 and 3. If the layer containing the trees through which the shadow passes is on layer 1, Z-Ordering will not take effect.
 
That's what Dynamic Z-Ordering is for. Now, if you're using it as the instructions indicate, you must ensure that the tiles are on layers 2 and 3. If the layer containing the trees through which the shadow passes is on layer 1, Z-Ordering will not take effect.
But like I said in my post, the tiles are on layers 2 and 3.

EDIT:
Just to show you that the part of the trees that the shadows are clipping through, are in fact on layer 2 and not layer 1.

6bVq8iJ.png
 
Last edited:
But like I said in my post, the tiles are on layers 2 and 3.

EDIT:
Just to show you that the part of the trees that the shadows are clipping through, are in fact on layer 2 and not layer 1.

6bVq8iJ.png

Did you configure it in 000_Settings?
Ruby:
Expand Collapse Copy
# Define which tiles from which Tileset will become Sprites.
  # Structure: ID_TILESET => [ID_TILE_1, ID_TILE_2, ...]

  TILES_TO_FIX = {
    # Example: Tileset ID 1 (Outside)
    # We converted fences, mailboxes, and the tops of houses and laboratorie.
    1 => [970, 1296, 1297, 1298, 1584, 1585, 1586, 1587, 1588,
          3078, 3079, 3098, 3099, 3100, 3101, 3102, 3103],
          }

There is an HTML file to load your Tileset and select the tiles that will have dynamic priority.
EDIT: I updated the main post with a tutorial for setting up Dynamic Z-Ordering.
 
Last edited:
Did you configure it in 000_Settings?
Ruby:
Expand Collapse Copy
# Define which tiles from which Tileset will become Sprites.
  # Structure: ID_TILESET => [ID_TILE_1, ID_TILE_2, ...]

  TILES_TO_FIX = {
    # Example: Tileset ID 1 (Outside)
    # We converted fences, mailboxes, and the tops of houses and laboratorie.
    1 => [970, 1296, 1297, 1298, 1584, 1585, 1586, 1587, 1588,
          3078, 3079, 3098, 3099, 3100, 3101, 3102, 3103],
          }

There is an HTML file to load your Tileset and select the tiles that will have dynamic priority.
EDIT: I updated the main post with a tutorial for setting up Dynamic Z-Ordering.
Sorry, it's been an extremely busy past few days.

I thought I did but I guess I did not. However, even after following your newly added tutorial (btw thank you for editing your post and saying that the tutorial was new. I was going crazy thinking that I never saw that there before lol), it does something crazy to my trees as seen here:

mQUo9Kd.png



And you'll notice that my trees should not look like that. This is how they look in RPG Maker:

5eMQ9eX.png


And this is how I set up the Z-Ordering thing. I only clicked on the tiles that are on the 2nd layer that have 0 priority in the tileset since the shadows weren't clipping through any tileset that did have priority anyways. Did I not do that correctly or something?

AjMLu4F.png
 
Back
Top