the cutting room mirror

Roblox (Windows, Mac OS X)

This article has a talk page!
view on tcrf.net

This page contains notes for the game Roblox (Windows, Mac OS X).

Roblox Archives#

General / Misc.#

Note: Don't pay attention to content like this, because it's just a fake.

Time Period

Name + Link(s)

Content(s)

Beginning of Roblox - 2024

Roblox Archive

A bunch of Roblox Assets.

2006 - 2021

Roblox Blog

Roblox Blog articles from 2006-2021.

Old Roblox

Novetus

Allows you to host old Roblox servers. Usefull for getting footage.

Not Specified

The Roblox Lost Media Project

A Discord channel with old Roblox content.

Not Specified

Archive Team Roblox (wiki)

Info on some things that had an impact on preservation of certain Roblox content.

Not Specified

Roblox Archive Wiki

Info on groups, clans and other stuff.

Not specified

Rolimons

Archives some banned players, groups and assets. Also gives extra info on players, groups and assets.

Not specified

Roblox Clientsearch

Contains more than clients, also has the original badge images before the resolution was lowered for the website. Clients are from March 2007 all the way to somewhere in 2024.

Player Builds#

Time Period

Name + Link(s)

OS

Content

August 2007

Roblox 2007 Client

Windows

2009

Roblox 2009 Client

Windows

Begin 2007 - End 2013

ROBLOX Client Collection

Windows

2007 - 2017

HUGE dump of old ROBLOX clients

Windows

Reddit thread with links to some (poorly) made archives.

Forums#

Time Period

Name + Link(s)

June 30, 2004 - December 4, 2017

Roblox Forum Archive

Places / Experiences and Assets#

Time Period

Name + Link(s)

Contents

2006 - 2023

Roblox-Places-Archive

Official and unofficial places.

2003 (unverified) - 2018

slob.fans Roblox Archive

Places, models, plugins, etc.

Not Specified

Ro-Archive (bit broken)

Audio of a small number of places. None are official.

Not Specified

Rchive

A Discord channel with archives of old Roblox games.

2006 - 2008

Assets (By Roblox) 2007-2024

List of every asset uploaded by Roblox from 2006 to 2024.

Downloading still available Roblox Builds directly from the servers#

To do this a tool was made called Roblox Asset Downloader. To get a list of versions go to 1 for Windows and to 2 for Mac. Current version ID can be found at 3 for Windows.

Getting the time an asset was updated for the last time#

Well just put this code into a script located inside of ServerScriptService. (This is for the specific versions of experiences.)

local asset = game:GetService("MarketplaceService"):GetProductInfo(PutYourAssetIdHere, Enum.InfoType.Asset, VersionValue)
local update_stamp = tostring(asset.Updated)

function ConvertTimeStamp(time_stamp)
    local date_pattern = "%d%d%d%d%-%d%d%-%d%d"
    local stamp_date = string.sub(time_stamp, string.find(time_stamp, date_pattern))

    local split_date = string.split(stamp_date, "-")

    local year = split_date[1]
    local month = split_date[2]
    local day = split_date[3]

    local elapsed_years = (year - 1970)
    local elapsed_months = month - 1
    local elapsed_days = day - 1

    return year, month, day
end

print(ConvertTimeStamp(update_stamp))

Use this if you want the overall last update time:

local asset = game:GetService(“MarketplaceService”):GetProductInfo(PutYourAssetIdHere)
local update_stamp = tostring(asset.Updated)

function ConvertTimeStamp(time_stamp)
    local date_pattern = “%d%d%d%d%A%d%d%A%d%d”
    local stamp_date = string.sub(time_stamp, string.find(time_stamp, date_pattern))

    local split_date = string.split(stamp_date, “-”)

    local year = split_date[1]
    local month = split_date[2]
    local day = split_date[3]

    local elapsed_years = (year - 1970)
    local elapsed_months = month - 1
    local elapsed_days = day - 1

    return year, month, day
end

print(ConvertTimeStamp(update_stamp))

User.lua#

This is the Lua script for User.lua

local CorePackages = game:GetService("CorePackages")
local Players = game:GetService("Players")

local MockId = require(CorePackages.AppTempCommon.LuaApp.MockId)

local User = {}

User.PresenceType = {
    OFFLINE = "OFFLINE",
    ONLINE = "ONLINE",
    IN_GAME = "IN_GAME",
    IN_STUDIO = "IN_STUDIO",
}

function User.new()
    local self = {}

    return self
end

function User.mock()
    local self = User.new()

    self.id = MockId()

    self.isFetching = false
    self.isFriend = false
    self.lastLocation = nil
    self.name = "USER NAME"
    self.universeId = nil
    self.placeId = nil
    self.rootPlaceId = nil
    self.gameInstanceId = nil
    self.presence = User.PresenceType.OFFLINE
    self.membership = nil
    self.thumbnails = nil
    self.lastOnline = nil

    return self
end

function User.fromData(id, name, isFriend)
    local self = User.new()

    self.id = tostring(id)

    self.isFetching = false
    self.isFriend = isFriend
    self.lastLocation = nil
    self.name = name
    self.universeId = nil
    self.placeId = nil
    self.rootPlaceId = nil
    self.gameInstanceId = nil

    self.presence = (self.id == tostring(Players.LocalPlayer.UserId)) and User.PresenceType.ONLINE or nil
    self.thumbnails = nil
    self.lastOnline = nil

    return self
end

function User.compare(user1, user2)
    assert(not(user1 == nil and user2 == nil))
    assert(user1 == nil or typeof(user1) == "table")
    assert(user2 == nil or typeof(user2) == "table")

    -- Return false if any of the provided input is nil(empty).
    if not user1 or not user2 then
        return false
    end

    for field, valueInUser2 in pairs(user2) do
        if user1[field] ~= valueInUser2 then
            return false
        end
    end

    for field, valueInUser1 in pairs(user1) do
        if user2[field] ~= valueInUser1 then
            return false
        end
    end

    return true
end

function User.userPresenceToText(localization, user)
    local presence = user.presence
    local lastLocation = user.lastLocation

    if not presence then
        return ''
    end

    if presence == User.PresenceType.OFFLINE then
        return localization:Format("Common.Presence.Label.Offline")
    elseif presence == User.PresenceType.ONLINE then
        return localization:Format("Common.Presence.Label.Online")
    elseif (presence == User.PresenceType.IN_GAME) or (presence == User.PresenceType.IN_STUDIO) then
        if lastLocation ~= nil then
            return lastLocation
        else
            return localization:Format("Common.Presence.Label.Online")
        end
    end
end

return User