Methods = require(_G.Modules.MethodModule)
Placement = require(_G.Modules.PlacementModule)
Statistics = {}
Configuration = Statistics
function GetValue(part,name,default)
	local instance = part:FindFirstChild(name)
	if not instance then return default
	else return instance.Value end
end
function GetInstance(part,name)
	return part:FindFirstChild(name) or error("Missing sub-instance "..name..":"..part:GetFullName(),3)
end

function Print(instance,...)
	local text = table.concat({string.format("<b>@%.2f:</b>",tick() - _G.Begin),...}," ")
	if _G.PrintUpdate then _G.PrintUpdate(instance,text) end
	if _G.IsServer then _G.Remotes.DebugUpdate:FireAllClients(instance,...) end
end

_G.Rules = {}
_G.Rules.Sandbox = {
	GenerationVersion = "4",
	GenerationFollowPlayer = true,
	AutoSpawnIdlers = true,
	NeedsExperience = false,
	NeedsInventory = false,
	NeedsMaterial = false,
	NeedsCurrency = false,
}
_G.Rules.Survival = {
	GenerationVersion = "5",
	GenerationFollowPlayer = true,
	AutoSpawnIdlers = false,
	AutoSpawnPirates = true,
	AutoSpawnFreighters = true,
	NeedsExperience = true,
	NeedsInventory = true,
	NeedsMaterial = true,
	NeedsCurrency = false,
}
_G.Rules.War = {
	GenerationVersion = "4",
	GenerationFollowPlayer = false,
	AutoSpawnIdlers = false,
	AutoSpawnPirates = false,
	AutoSpawnFreighters = false,
	NeedsExperience = false,
	NeedsInventory = true,
	NeedsMaterial = true,
	NeedsCurrency = true
}
_G.RuleMode = "Sandbox"

_G.Notify = function(title,content)
	game.ReplicatedStorage.Remotes.Notification:FireAllClients(title,content)
end

_G.SaveCompression = true
_G.SaveFormat = "4"

_G.Changelog = [[
DUCK5_0:
Figuring out scripting with Lua and Rust.
Bevy setup.

NEL0:
Parser, interpreter and LI standard library complete.

PB3:
More computer fixes, I forget.
Added steam engines.
Adding balloons.

DCT1:
Scrapped old buildings for 'slice trees'

DCT0:
Implemented working terrain engine.
Loads of sorcery:
Poly terrain (Mesh or WedgePart)
Buildings Beta

PB2:
Fixed ropes and rods scaling.
Fixed ropes and rods.
Fixed motors.
Made some fixes to CreateToolScript and PaintToolScript.
Made DebugWings deactivate correctly.
Did various fixes on ProgramModule.
Added meshes.
Tried to fix propellers.
Fixed wheel resizing.
Fixed rod bug in save system.
Fixed the anchor block bug.

PB1:
Fixed fatal materials paint bug.
Fixed model resizing bug.
Fixed disconnectors bug.
Fixed guns bug.
Fixed notifications looking stupid.
Fixed spring edit updates.
Fixed a poly sticks save bug.
Protected various objects from error.
Fixed microcontroller dragger bug.
Fixed microcontroller deletion bug.
Fixed poly snapping.
Added a changelog.

PB0:
Object system 'Agnostic Ownership' overhaul.
Added Microcontrollers.
Added new engine models.
Aero system implements viscosity (gliding).
Made various changes to object properties.
Poly now supports up to 9 nodes.
Poly now supports thickness changes.
Many unrecorded QOL changes. (like 200 more lines xD)
]]

_G.Union(_G,getfenv()) -- Combine _G with this module

return getfenv()