Skip to content

Time #346

@RENBex6969

Description

@RENBex6969
thread 'main' panicked at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library/core/src/time.rs:930:23:                                  cannot convert float seconds to Duration: value is either too big or NaN                                                                    stack backtrace:                                                         0:       0x30004515b0 - <unknown>                                     1:       0x30001572e0 - <unknown>                                     2:       0x30004511e4 - <unknown>                                     3:       0x3000451470 - <unknown>                                     4:       0x3000450f20 - <unknown>                                     5:       0x300047b508 - <unknown>                                     6:       0x300047b480 - <unknown>                                     7:       0x300047c784 - <unknown>                                     8:       0x30000c0c40 - <unknown>                                     9:       0x30000c47ac - <unknown>                                    10:       0x3000327290 - <unknown>                                    11:       0x300033fe08 - <unknown>                                    12:       0x30005c491c - <unknown>                                    13:       0x30005bf850 - <unknown>                                    14:       0x30005bfc34 - <unknown>                                    15:       0x30005c06d4 - <unknown>                                    16:       0x3000338770 - <unknown>                                    17:       0x30001ab068 - <unknown>                                    18:       0x30001aeb24 - <unknown>                                    19:       0x30001ae6b8 - <unknown>                                    20:       0x30001882e0 - <unknown>                                    21:       0x300018e0dc - <unknown>                                    22:       0x30000e5e2c - <unknown>                                    23:       0x30000e98c4 - <unknown>                                    24:       0x30000f00a8 - <unknown>                                    25:       0x300019d690 - <unknown>                                    26:       0x30001a3088 - <unknown>                                    27:       0x30001b13c0 - <unknown>                                    28:       0x30001a19e8 - <unknown>                                    29:       0x747bc284c4 - <unknown>                                    30:       0x747bc28598 - __libc_start_main                            31:       0x30000e58b0 - <unknown>                                    32:                0x0 - <unknown>

Script :

local renderStepped = game:GetService("RunService").RenderStepped
	local function step()
		renderStepped:Wait()
		local sum = 0
		for _ = 1, 5 do
			sum = sum + 1 / renderStepped:Wait()
		end
		return math.round(sum / 5)
	end
	setfpscap(60)
	local step60 = step()
	setfpscap(0)
	local step0 = step()
	print( step60 .. "fps @60 • " .. step0 .. "fps @0")

RunService implementation :


return (function(Roblox, Registry)
	local Task = require("@lune/task")
	local function makeEvent()
		local connections = {}
		local waiting = {}
		return {
			Connect = function(self, fn)
				table.insert(connections, fn)
				return {
					Disconnect = function()
						for i, f in ipairs(connections) do
							if f == fn then
								table.remove(connections, i)
								break
							end
						end
					end,
				}
			end,
			Fire = function(self, ...)
				for _, thread in ipairs(waiting) do
					Task.spawn(thread, ...)
				end
				table.clear(waiting)
				for _, fn in ipairs(connections) do
					fn(...)
				end
			end,
			Wait = function(self)
				local thread = coroutine.running()
				table.insert(waiting, function(...)
					coroutine.resume(thread, ...)
				end)
				return coroutine.yield()
			end,
		}
	end
	local runServiceEvents = {
		RenderStepped   = makeEvent(),
		Heartbeat       = makeEvent(),
		Stepped         = makeEvent(),
		PreSimulation   = makeEvent(),
		PostSimulation  = makeEvent(),
		PreRender       = makeEvent(),
		Pause           = makeEvent(),
		Unpause         = makeEvent(),
	}
	for name, event in pairs(runServiceEvents) do
		Roblox.implementProperty("RunService", name, function()
			return event
		end)
	end
	Task.spawn(function()
		while true do
			local dt = 1 / Registry.FpsCap
			lastFps = 1 / dt
			runServiceEvents.PreSimulation:Fire(dt)
			runServiceEvents.Stepped:Fire(dt, os.clock())
			runServiceEvents.PostSimulation:Fire(dt)
			runServiceEvents.Heartbeat:Fire(dt)
			runServiceEvents.PreRender:Fire(dt)
			runServiceEvents.RenderStepped:Fire(dt)
			Task.wait(dt)
		end
	end)
end)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions