public

Rpg Maker Developers Group

Simple enough for a child, powerful enough for a developer

2 Followers

Basic Evented Fog of War

BMM Archive · July 15, 2026

Preserved forum archive. This topic stores the original first post and locally mirrored RPG Maker Web attachments when available. It is posted by the BMMPlay archive account, not by the original creator.

Original Source

  • Original title: Basic Evented Fog of War
  • Original author: Quailar
  • Original date: March 21, 2015
  • Source thread: https://forums.rpgmakerweb.com/threads/basic-evented-fog-of-war.38029/
  • Source forum path: Game Development Engines > RPG Maker Tutorials > RMVXAce Tutorials

Summary

Evented Fog Of War FOW Demo This is a basic demo demonstration how you can use eventing to design a basic fog of war system. No real instructions required, the evented system is pretty simple to follow. If you have suggestions of how to improve or make more efficient please share.

Archived First Post

Evented Fog Of War FOW Demo

This is a basic demo demonstration how you can use eventing to design a basic fog of war system.

No real instructions required, the evented system is pretty simple to follow.

If you have suggestions of how to improve or make more efficient please share.

Features:

  • Unexplored Fog
  • Previously Explored Fog
  • Current sight
  • Enemy invisible when in fog
Event Requirements:

1 - Parallel

1 - Common Event

Code Requirements:

You will need map extensions provided here and in demo:

http://forums.rpgmakerweb.com/index.php?/topic/25040-ace-useful-script-call-reference/

#--------------------------------------------------------------------------
#Modifications
#--------------------------------------------------------------------------
#Changed Line 88 in Game_Event
#from
# if near_the_screen? && @stop_count > stop_count_threshold
#to
# if @stop_count > stop_count_threshold
#--------------------------------------------------------------------------
# REGION MANIPULATION
#--------------------------------------------------------------------------
class Game_Map
def setTileRegion(reg_x,reg_y,reg_id)

if reg_id > 63 || reg_id < 0
reg_id = 0
end

@thirdvalue = "%14b" % self.data[reg_x, reg_y, 3]

# binary split of the two elements
@bLEFT = @thirdvalue[0,6] # REGION ID IN BINARY
@bRIGHT = @thirdvalue[6,8] # SHADOW ID IN BINARY

@bLEFT = "%6b" % reg_id

@newvalue = @bLEFT.to_s + @bRIGHT.to_s
@newvalue = @newvalue.to_i(2)

self.data[reg_x, reg_y, 3] = @newvalue

end
def getTileRegion(reg_x,reg_y)

# gets a 14 bit long binary string from the map data array
@thirdvalue = "%14b" % self.data[reg_x, reg_y, 3]

# binary split of the two elements
@bLEFT = @thirdvalue[0,6] # REGION ID IN BINARY
@bRIGHT = @thirdvalue[6,8] # SHADOW ID IN BINARY

# converts the binary string back to an integer and returns
return(@bLEFT.to_i(2))

end
def getTileShadowID(reg_x,reg_y)

# gets a 14 bit long binary string from the map data array
@thirdvalue = "%14b" % self.data[reg_x, reg_y, 3]

# returns binary split of the two elements
@bLEFT = @thirdvalue[0,6] # REGION ID IN BINARY
@bRIGHT = @thirdvalue[6,8] # SHADOW ID IN BINARY

# converts the binary string back to an integer and returns
return(@bRIGHT.to_i(2))

end


#--------------------------------------------------------------------------
# MAP MANIPULATION
#--------------------------------------------------------------------------
def getTileIDByLayer(x,y,layer)
return(self.data[x,y,layer])
end

def setTileIDByLayer(x,y,layer,tile_ID)
self.data[x,y,layer] = tile_ID
end


end


#--------------------------------------------------------------------------
# Save Tile Manipulation
#--------------------------------------------------------------------------
class Game_System
def changeTileByInternalID(map_id,x,y,layer,intID)
initialize_pos_list(map_id, layer)
tid = intID
@swapped_pos_tiles[map_id][layer][y] = [] if @swapped_pos_tiles[map_id][layer][y].nil?
@swapped_pos_tiles[map_id][layer][y][x] = tid
$game_map.load_new_map_data
end
end
#--------------------------------------------------------------------------
# Battler Additions
#--------------------------------------------------------------------------
class Game_Battler < Game_BattlerBase
def wtype_equipped?(wtype_id)
return weapons.any? {|weapon| weapon.wtype_id == wtype_id }
end

def atype_equipped?(atype_id)
return armors.any? {|armor| armor.atype_id == atype_id}
end
end
Demo:

http://s000.tinyupload.com/?file_id=06010062965139142906

Screen:

Protected downloadProtected downloadProtected download

Features Mentioned

  • Unexplored Fog
  • Previously Explored Fog
  • Current sight
  • Enemy invisible when in fog
  • Event Requirements:
  • 1 - Parallel
  • 1 - Common Event
  • Code Requirements:
  • You will need map extensions provided here and in demo:
  • Spoiler
  • #
  • #Modifications
  • #Changed Line 88 in Game_Event
  • #from
  • # if near_the_screen? && @stop_count > stop_count_threshold
  • #to
  • # if @stop_count > stop_count_threshold

Downloads / Referenced Files

Log in to download

Log in, then follow the RPG Maker Developers Group to see these download links.

Log in to download

Referenced Images / Attachments

fow1.png
fow1.png
fow2.png
fow2.png
fow3.png
fow3.png
Creator Claims / Removal

If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.

#modifications#changed#from#to#rpg-maker-archive

Replies (0)

No replies yet.

0 replies 1 view

Log in to reply.

User Avatar