Fake Interiors / Interior mapping

Fake Interiors

(module)


(Link to model containing module)

This module allows you to add windows to your game that include randomized, fake interiors.

These interiors do not occupy physical space and can be used in bulk with a minimal effect on performance.

You can customize the quality, distance rendering and transparency of the windows in groups, make your own rooms, and even room categories.

To use the module, acquire the model from here and ungroup.
Feel free to delete ThumbnailCamera and require the module as normally.

Iā€™d also like to credit @EgoMoose for his viewport math, originally forked from his portal system which can be found here

Example Code

local Windows = require(WindowModule)

local Controller = Windows.Setup(60, "Normal")

local Window = Controller:AddWindow(workspace.WindowPart,50)

Controller:SetAllTransparency(.5)

task.wait(5)

Controller:DisconnectWindows() -- necessary
Controller:Disconnect()

Documentation:

Objects:
	- Controller
	- Window

Constructors:
	- Module.Setup(Radius:number, RoomsType:string?) -> Controller
	- Controller:AddWindow(WindowPart:BasePart, Quality:number?) -> Window
	
Methods: 
	- Controller:ToggleAllRunning(Enabled:boolean?)
	- Controller:ToggleAllVisible(Enabled:boolean?)
	- Controller:SetAllTransparency(Transparency:number)
	- Controller:DisconnectWindows()
	- Controller:Disconnect()
	- Controller:ChangeMaxRadius(Radius:number)
	
	- Window:ToggleRunning(Enabled:boolean?)
	- Window:ToggleVisible(Enabled:boolean?)
	- Window:SetTransparency(Transparency:number)
	- Window:Disconnect()

ā€˜RoomsTypeā€™, the argument in Module.Setup, Is the name of one of your categories in the Rooms folder.


Please, let me know what your thoughts are on this module or if thereā€™s anything you would like to see added.

[UPDATE]: If you are having trouble setting up the module, please try and contact a scripter you know, as they will likely not have trouble helping you.
Fixed math and critically reduced window lag, added more optimizations.

Demo place link

222 Likes

bump!

definitely will be using this. looks super useful.
looks pretty and might end up making my own rooms myself.

11 Likes

This seems very interesting, although the interiors, donā€™t update simultaneously while zoomed out, but i can see this having a major impact for future games

4 Likes

they can lag a bit if too many are being rendered at once. to fix this, dial down the radius so they render from a closer distance

4 Likes

No way!!! This is soooo cool i canā€™t wait to work with this!

3 Likes

Yikes, on lowest graphics the frames are not rendering good at all

4 Likes

itā€™s an optimization from roblox. i would recommend disabling them at a low enough graphics level, however i did not add that to the module in order to allow users to have their own choice in this area

6 Likes

Hate to be that guy, but if the game isnā€™t copy locked, then they can download a previous version of it (via some asset API).

Iā€™ve taken a look at the past versions. Looks like it used to be a mirror (?) in version 2 and then got EgoMooseā€™s portal kit and a client-sided crash script at version 10. I can see everything, from when it was just a mirror to when you took the pictures of the modelled rooms with the red camera screenshot part at version 30. At version 220, Volumika, is indeed, still here:
image

So, youā€™re still technically breaking the rules of using it. You must create a new place, uncopylock it, and copylock the old one. Wouldnā€™t want this to go unnoticed by you.

Also noticed that the window interior updating was a little jittery. Not sure why this happens, but it always seemed one frame behind the camera update.

2 Likes

i was legit doing this yesterday morning wake up to see thus

awesome stuff!!

this is likely because of your graphics level, or if too many windows are being shown at once. thereā€™s nothing beyond the strict optimizations i used on them that i can do to fix this issue other than maybe dialing down the render distance and/or disabling them if graphics are under a certain point

thanks for letting me know about this. iā€™ll be able to fix it tomorrow (for now, it will be copylocked)

THIS IS EPIC!!! I love fake interiors!!! this is so liminal and spooky :scream::boom::fire::rocket::up::point_up:

3 Likes

Very cool use of the viewport stuff! Well done!

9 Likes

How are you updating your window pictures? It doesnā€™t seem to be perfectly updating per frame when I was trying out the demo place (the window images seem to be a bit choppy. Especially when looking at more windows).

I assume this was done to prevent lag?

this is due to your quality level being too low (roblox will optimize if too many viewport frames are visible). to prevent this, you can turn down the render distance when using the module (therefore rendering less interiors) or turn up your quality level

ah I see. I forgot how annoying viewport frames can be sometimes

1 Like

bump! this looks like an amazing resource, will check out later!

2 Likes

useful! thanks for sharing!!! <3

2 Likes

Hi,
Iā€™d really like to get this into my games but I got an issue with the ā€œLocalPlayerā€ index.
Can you help me ?

Thanks alot :pray:

Having the main module in ServerScriptService seems to really mess things up for me. In the AddWindow() function, the line: local seed:number = math.floor(math.cos(WindowPart.Position.Magnitude)*100000) returns an error that says Magnitude is not a valid member of UDim2. If I remove this statement and just replace seed:number with a regular number, then other errors show up later, too. In the Disconnect() function, for _,connection:RBXScriptConnection in pairs(self.connections) do returns the error ā€œinvalid argument #1 to ā€˜pairsā€™ (table expected, got nil)ā€. No clue why any of this happens, as clearly the same script works fine for everyone else.