--This is needed for the sake of customizing the luafield. -Kid
ten_songpath = GAMESTATE:GetCurrentSong():GetSongDir()
--You can theme the fake arrows! -Kid
--Rules: You cannot use models, as the effects used won't work on models. Sprites are acceptable, though. -Kid

--Here's what's available by default. -Kid
--'metal' is the default. (based off of the luafield notes in kioku [unconnected])
--'DivinEntity' is an example for if you'd like to theme it yourself (based off of the noteskin used in the original file)
--'scalable' is what's used in the video. (based off the 'scalable' noteskin used in the video).

ten_luafield_noteskin = 'metal'

--An input handler, taken from TaroNuke's Spider Dance file, modified to suit what I need in the current file.
local InputHandler = function( event )
	-- if (somehow) there's no event, bail
	if not event then return end
	if event.type == "InputEventType_FirstPress" then
		if event.button == "Left" and event.PlayerNumber == PLAYER_1 then
			ten_step(1,1)
		end
		if event.button == "Down" and event.PlayerNumber == PLAYER_1 then
			ten_step(1,2)
		end
		if event.button == "Up" and event.PlayerNumber == PLAYER_1 then
			ten_step(1,3)
		end
		if event.button == "Right" and event.PlayerNumber == PLAYER_1 then
			ten_step(1,4)
		end
		if event.button == "Left" and event.PlayerNumber == PLAYER_2 then
			ten_step(2,1)
		end
		if event.button == "Down" and event.PlayerNumber == PLAYER_2 then
			ten_step(2,2)
		end
		if event.button == "Up" and event.PlayerNumber == PLAYER_2 then
			ten_step(2,3)
		end
		if event.button == "Right" and event.PlayerNumber == PLAYER_2 then
			ten_step(2,4)
		end
	end
end

--Makes intro receptors work "correctly" when one player is missing. -Kid
local IsP1There = GAMESTATE:IsHumanPlayer(PLAYER_1)
local IsP2There = GAMESTATE:IsHumanPlayer(PLAYER_2)

local function optional_actor(cond, actor)
	if cond then return actor end
	return Def.Actor{}
end

--Because DivinEntity stuff is used in silly ways, it's time for some luafield abuse. -Kid
--This implementation is based on the one seen in MAWARU SIMULATOR 2016 and kioku [unconected]. -Kid

--luafield update function
function ten_luafield_update()
	local beat = GAMESTATE:GetSongBeat()
	for pf=1,5 do
		for q=1,3 do
			for i=1,table.getn(_G['ten_luafield_p'..pf..'a'][q]) do
				local a = _G['ten_luafield_p'..pf..'a'][q][i]
				if a.active and beat > mod_firstSeenBeat+1 then
					local speed = 2;
					local b = a.actor

					local x = b:GetX()-(_G['ten_luafield_p'..pf..'r'][a.col]:GetX())
					local y = b:GetY()-(math.max(a.targ-beat,0)*64*speed)+_G['ten_luafield_p'..pf..'r'][a.col]:GetY()
					local z = b:GetZ()-(_G['ten_luafield_p'..pf..'r'][a.col]:GetZ())

					if math.sqrt((x*x)+(y*y)+(z*z)) < 20 then
						b:linear(0.5/60);--This has to match the update rate. -Kid
					end

					b:x(_G['ten_luafield_p'..pf..'r'][a.col]:GetX())
					b:diffusealpha(1)--Not gonna do the glow into arrow. -Kid
					--b:glow(0,0,0,1);
					b:y((math.max(a.targ-beat,0)*64*speed)+_G['ten_luafield_p'..pf..'r'][a.col]:GetY());
					b:z(_G['ten_luafield_p'..pf..'r'][a.col]:GetZ());
					b:zoom(1)
					b:rotationz(ten_luafield_rot[a.col])

					ten_luafield_arroweffects(b,a.targ,pf)

					--The original implementation has the notes fade in as they appear. -Kid
					--However, because the screen is gonna zoom and rotate, I'm not gonna do that. -Kid

					if a.targ-beat <= 0 then
						b:visible(false);
						a.active = false;
					end
				end
			end
		end
	end
end
--luafield actoreffect function
function ten_luafield_arroweffects(obj,targ,pf)
	local beat = GAMESTATE:GetSongBeat()
	obj:addy(-6):visible(true)
	local fYOffset = (targ-beat)*80*2

	--Note: Bumpy was taken from the SM5.1 source code and modified accordingly. -Kid
	--Bumpy (affects z rot)
	if ten_luafield_bumpy:getaux() ~= 0 then
		obj:addz(ten_luafield_bumpy:getaux()*40*math.sin(fYOffset/16))
	end
end
--luafield quant function
function ten_luafield_quantize(beat)
	local r = beat-math.floor(beat)
	if r == 0 then return 1
	elseif r == 0.5 then return 2
	else return 3 end
end
--luafield placenote function (does the cropping)
local function ten_luafield_placenote(pn,beat,col)
	local group = pn
	local quant = ten_luafield_quantize(beat)
	local a = _G['ten_luafield_p'..group..'a'][quant][ _G['ten_luafield_p'..group..'ptr'][quant] ]

	col = col+1
	local speed = 2;

	a.active = true;
	a.col = col;
	a.targ = beat

	local b = a.actor

	if b then
		--This is how we replicate the DivinEntity effect used. -Kid
		if col == 2 or col == 3 then
			b:cropbottom(1-pn*0.2):croptop(pn*0.2-0.4):cropleft(0):cropright(0)
		else
			b:cropright(1-pn*0.2):cropleft(pn*0.2-0.4):croptop(0):cropbottom(0)
		end

		b:visible(false);
		b:x(_G['ten_luafield_p'..group..'r'][col]:GetX())
		b:diffusealpha(1)
		b:glow(0,0,0,0);
		b:y((4*64*speed)+_G['ten_luafield_p'..group..'r'][col]:GetY());
		b:z(_G['ten_luafield_p'..group..'r'][col]:GetZ());
		b:zoom(1);
		b:rotationz(ten_luafield_rot[col])
	end

	_G['ten_luafield_p'..group..'ptr'][quant] = _G['ten_luafield_p'..group..'ptr'][quant]+1
	if _G['ten_luafield_p'..group..'ptr'][quant] > table.getn(_G['ten_luafield_p'..group..'a'][quant]) then
		_G['ten_luafield_p'..group..'ptr'][quant] = 1
	end
end
--luafield note table
ten_luafield_notes = {
	{96.500,3,1},
	{96.750,1,1},
	{97.000,3,1},
	{97.250,0,1},
	{97.750,1,1},
	{98.250,2,1},
	{98.500,3,1},
	{99.000,0,1},
	{99.500,2,1},
	{99.750,1,1},
	{100.000,3,2,length=0.500},
	{100.500,0,1},
	{100.750,1,1},
	{101.000,0,1},
	{101.250,3,1},
	{101.750,1,1},
	{102.250,2,1},
	{102.500,0,1},
	{103.000,3,1},
	{103.500,2,1},
	{103.750,1,1},
	{104.000,0,2,length=0.500},
	{104.500,2,1},
	{104.750,1,1},
	{105.000,3,1},
	{105.250,2,1},
	{105.750,1,1},
	{106.250,0,1},
	{106.500,3,1},
	{107.000,1,1},
	{107.500,2,1},
	{107.750,1,1},
	{108.000,3,2,length=0.250},
	{108.250,1,1},
	{108.750,2,1},
	{109.000,0,1},
	{109.500,3,1},
	{109.750,2,1},
	{110.250,1,1},
	{110.500,0,1},
	{111.000,2,4,length=1.000},
	{112.000,1,2,length=0.500},
	{112.750,3,1},
	{113.000,1,1},
	{113.500,3,1},
	{114.000,0,1},
	{114.250,1,1},
	{114.500,0,1},
	{115.000,3,1},
	{115.500,0,1},
	{115.750,1,1},
	{116.000,2,2,length=0.500},
	{116.750,3,1},
	{117.000,2,1},
	{117.500,3,1},
	{118.000,0,1},
	{118.250,2,1},
	{118.500,0,1},
	{119.000,3,1},
	{119.250,0,1},
	{120.000,3,2,length=0.500},
	{120.750,0,1},
	{121.000,1,1},
	{121.500,0,1},
	{122.000,3,1},
	{122.250,1,1},
	{122.500,3,1},
	{123.000,0,1},
	{123.250,1,1},
	{123.750,2,1},
	{124.000,3,2,length=0.500},
	{124.500,1,1},
	{124.750,2,1},
	{125.250,0,1},
	{125.500,1,1},
	{126.000,2,1},
	{126.250,3,1},
	{126.750,1,1},
	{127.000,2,1},
	{127.500,0,1},
	{128.000,3,2,length=0.500},
	{128.500,1,1},
	{129.000,2,1},
	{129.500,0,1},
	{130.000,1,1},
	{130.500,2,1},
	{131.000,1,1},
	{131.500,0,1},
	{132.000,3,2,length=0.500},
	{132.500,1,1},
	{133.000,2,1},
	{133.500,0,1},
	{134.000,1,1},
	{134.500,0,1},
	{135.000,3,1},
	{135.500,2,1},
	{136.000,3,2,length=0.500},
	{136.500,0,1},
	{137.000,2,1},
	{137.500,1,1},
	{138.000,3,1},
	{138.500,2,1},
	{139.000,1,1},
	{139.500,0,1},
	{140.000,3,2,length=0.500},
	{140.500,1,1},
	{141.000,2,1},
	{141.500,0,1},
	{142.000,2,1},
	{142.500,1,1},
	{143.000,3,1},
	{144.000,0,2,length=0.500},
	{144.500,1,1},
	{145.000,2,1},
	{145.500,3,1},
	{146.000,1,1},
	{146.500,2,1},
	{147.000,1,1},
	{147.500,3,1},
	{148.000,2,2,length=0.500},
	{148.500,1,1},
	{149.000,0,1},
	{149.500,3,1},
	{150.000,1,1},
	{150.500,2,1},
	{151.000,1,1},
	{151.500,3,1},
	{152.000,0,2,length=0.500},
	{152.500,1,1},
	{153.000,2,1},
	{153.500,3,1},
	{154.000,1,1},
	{154.500,2,1},
	{155.000,0,1},
	{155.500,3,1},
}
--luafield variables
ten_luafield_rot = {90,0,180,-90}
ten_luafield_cur = {1,1,1}
ten_luafield_p1r = {}
ten_luafield_p2r = {}
ten_luafield_p3r = {}
ten_luafield_p4r = {}
ten_luafield_p5r = {}

ten_luafield_p1a = {{},{},{}}
ten_luafield_p1ptr = {1,1,1}
ten_luafield_p2a = {{},{},{}}
ten_luafield_p2ptr = {1,1,1}
ten_luafield_p3a = {{},{},{}}
ten_luafield_p3ptr = {1,1,1}
ten_luafield_p4a = {{},{},{}}
ten_luafield_p4ptr = {1,1,1}
ten_luafield_p5a = {{},{},{}}
ten_luafield_p5ptr = {1,1,1}
local m_curnote = 1;
local ten_luafield_drawdistance = 5;

--Variables to help with scaling actual madness. -Kid
local ten_width_ratio = SCREEN_WIDTH/640
local ten_height_ratio = SCREEN_HEIGHT/480
local ten_sdwidth_ratio = (480*(SCREEN_WIDTH/SCREEN_HEIGHT))/640
--For 5.1 and the master branch only.
--Thanks, Kyzentun.
local poptions = {GAMESTATE:GetPlayerState(0):GetPlayerOptions('ModsLevel_Song'),GAMESTATE:GetPlayerState(1):GetPlayerOptions('ModsLevel_Song')}
local ten_recepnorm = -125--Because I like consistency with theme settings. -Kid

--This holds the function I use to set the vertices of an ActorMultiVertex. -Kid
LoadActor("ten_amv-actual.lua")
return Def.ActorFrame{
  Name= "xtl_actor_t",
  InitCommand= function(self)

	songName = GAMESTATE:GetCurrentSong():GetSongDir();

	function ten_step(pn,btn)
		if ten_gamestate == 1 and ten_mario_active[pn] then
			--wenis!!!
			if btn == 2 then
				ten_mario_movetimer[pn] = 120/148
				_G['ten_mario_pill_p'..pn]:addy(17)
			end
			if btn == 3 then
				if ten_mario_rotation[pn] == 0 then
					ten_mario_rotation[pn] = 1
					_G['ten_mario_pill_p'..pn]:rotationz(90);
				else
					ten_mario_rotation[pn] = 0;
					_G['ten_mario_pill_p'..pn]:rotationz(0);
				end
			end
			if btn == 1 then
				if _G['ten_mario_pill_p'..pn]:GetX() > 250 then
					_G['ten_mario_pill_p'..pn]:addx(-20)
				end
			end
			if btn == 4 then
				if _G['ten_mario_pill_p'..pn]:GetX() < 390 then
					_G['ten_mario_pill_p'..pn]:addx(20)
				end
			end
		end
	end

	sw = SCREEN_WIDTH
	sh = SCREEN_HEIGHT

	dw = DISPLAY:GetDisplayWidth()
	dh = DISPLAY:GetDisplayHeight()

	ten_ALL_FG = self;

	ten_warns = {};

	ten_time = 0;
	ten_inc = 0;
	ten_quads = {};
	ten_dir = {'Left','Down','Up','Right'};

	ten_mario_rotation = {0,0}
	ten_mario_movetimer = {120/148,120/148}
	ten_mario_active = {true,true}
	ten_gamestate = 0;

	function ten_StoreQuads(self)
		self:aux(table.getn(ten_quads));
		self:zoomto(SCREEN_WIDTH,64*ten_height_ratio);--Scale zoomto. -Kid
		self:x(SCREEN_CENTER_X);
		self:y(SCREEN_CENTER_Y);
		self:diffuseblink();
		self:effectperiod(0.04);
		self:effectcolor1(0,0,0,0);
		self:effectcolor2(0,0,0,1);
		table.insert(ten_quads,self);
	end

end,
  Def.ActorFrame{
    Name= "xtl_actor_u",
    OnCommand= function(self)--This should work in any res. No need to worry. -Kid
	if not string.find(string.lower(PREFSMAN:GetPreference('VideoRenderers')), 'opengl')
	or string.find(string.lower(PREFSMAN:GetPreference('VideoRenderers')), 'd3d')
	and string.find(string.lower(PREFSMAN:GetPreference('VideoRenderers')), 'opengl')
	and string.find(string.lower(PREFSMAN:GetPreference('VideoRenderers')), 'd3d') <
	string.find(string.lower(PREFSMAN:GetPreference('VideoRenderers')), 'opengl') then
		SCREENMAN:SystemMessage('D3D Video Renderer detected. Expect textures to fail.');
	end
end,
  --AMV joints that I use to simulate model bone movement. -Kid
  LoadActor("ten_wacky-joints.lua"),
  LoadActor("ten_shakeplane-joints.lua"),
  --Base AFT that I use to derive all other AFTs. -Kid
  Def.ActorFrameTexture{
	Name="BASE_AFT",
	InitCommand= function(self)
		self:SetTextureName( 'ten_base_aft' )
		self:SetWidth( SCREEN_WIDTH );
		self:SetHeight( SCREEN_HEIGHT );
		self:EnableDepthBuffer( true );
		self:EnableAlphaBuffer( true );
		self:EnableFloat( false );
		self:EnablePreserveTexture( false );
		self:visible(true);

		self:Create();
		ten_base_aft = self;
		--By the very nature of the AFT, we need to make ratios for any sprites that wish to use this aft. -Kid
		ten_aft_height_ratio = SCREEN_HEIGHT / ten_base_aft:GetTexture():GetTextureHeight()
		ten_aft_width_ratio = (SCREEN_HEIGHT * (SCREEN_WIDTH/SCREEN_HEIGHT) ) / ten_base_aft:GetTexture():GetTextureWidth()
	end,
	Def.Quad{--This ensures that we don't have things like a slight trailing effect. -Kid
		Name= "BACKING_QUAD",
		OnCommand= cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;diffuse,0,0,0,1),
	},
	Def.ActorProxy{
	    ProxyThisMessageCommand= function(self)
		if ten_ALL_BG then
		    self:SetTarget(ten_ALL_BG):visible(true)
		end
	    end,
	},
	Def.ActorProxy{
	    ProxyThisMessageCommand= function(self)
		if P1 then
		    self:SetTarget(P1)
		end
	    end,
	},
	Def.ActorProxy{
	    ProxyThisMessageCommand= function(self)
		if P2 then
		    self:SetTarget(P2)
		end
	    end,
	},

  },
  --Luafields. Tons of them. -Kid
  Def.ActorFrame{
      Name= "actor_yib",
      InitCommand= function(self) ten_luafield_p1 = self self:visible(false) ten_luafield_pwrap1 = self:AddWrapperState() end,
      OnCommand= cmd(zoom,ten_height_ratio;fov,80),
      SetupLuafieldMessageCommand= function(self)
		self:x(SCREEN_CENTER_X-160*ten_width_ratio):y(SCREEN_CENTER_Y+ten_recepnorm*ten_height_ratio)
      end,
      Def.ActorFrame{
        Name= "actor_zib",
        OnCommand= cmd(x,-96;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1r,self) end,
        Def.Sprite{
          Name= "actor_Aib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,90;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Bib",
        OnCommand= cmd(x,-32;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1r,self) end,
        Def.Sprite{
          Name= "actor_Cib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,0;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Dib",
        OnCommand= cmd(x,32;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1r,self) end,
        Def.Sprite{
          Name= "actor_Eib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,180;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Fib",
        OnCommand= cmd(x,96;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1r,self) end,
        Def.Sprite{
          Name= "actor_ajb",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,-90;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_bjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_cjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_djb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_ejb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_fjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_gjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_hjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_ijb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_jjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_kjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_ljb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_mjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_njb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_ojb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_pjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_qjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_rjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_sjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_tjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_ujb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_vjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_wjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_xjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_yjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p1a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
    },
  Def.ActorFrame{
      Name= "actor_yib",
      InitCommand= function(self) ten_luafield_p2 = self self:visible(false) ten_luafield_pwrap2 = self:AddWrapperState() end,
      OnCommand= cmd(zoom,ten_height_ratio;fov,80),
      SetupLuafieldMessageCommand= function(self)
		self:x(SCREEN_CENTER_X-160*ten_width_ratio):y(SCREEN_CENTER_Y+ten_recepnorm*ten_height_ratio)
      end,
      Def.ActorFrame{
        Name= "actor_zib",
        OnCommand= cmd(x,-96;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2r,self) end,
        Def.Sprite{
          Name= "actor_Aib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,90;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Bib",
        OnCommand= cmd(x,-32;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2r,self) end,
        Def.Sprite{
          Name= "actor_Cib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,0;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Dib",
        OnCommand= cmd(x,32;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2r,self) end,
        Def.Sprite{
          Name= "actor_Eib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,180;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Fib",
        OnCommand= cmd(x,96;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2r,self) end,
        Def.Sprite{
          Name= "actor_ajb",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,-90;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_bjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_cjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_djb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_ejb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_fjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_gjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_hjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_ijb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_jjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_kjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_ljb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_mjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_njb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_ojb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_pjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_qjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_rjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_sjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_tjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_ujb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_vjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_wjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_xjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_yjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p2a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
    },
  Def.ActorFrame{
      Name= "actor_yib",
      InitCommand= function(self) ten_luafield_p3 = self self:visible(false) ten_luafield_pwrap3 = self:AddWrapperState() end,
      OnCommand= cmd(zoom,ten_height_ratio;fov,80),
      SetupLuafieldMessageCommand= function(self)
		self:x(SCREEN_CENTER_X-160*ten_width_ratio):y(SCREEN_CENTER_Y+ten_recepnorm*ten_height_ratio)
      end,
      Def.ActorFrame{
        Name= "actor_zib",
        OnCommand= cmd(x,-96;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3r,self) end,
        Def.Sprite{
          Name= "actor_Aib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,90;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Bib",
        OnCommand= cmd(x,-32;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3r,self) end,
        Def.Sprite{
          Name= "actor_Cib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,0;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Dib",
        OnCommand= cmd(x,32;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3r,self) end,
        Def.Sprite{
          Name= "actor_Eib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,180;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Fib",
        OnCommand= cmd(x,96;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3r,self) end,
        Def.Sprite{
          Name= "actor_ajb",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,-90;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_bjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_cjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_djb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_ejb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_fjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_gjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_hjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_ijb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_jjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_kjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_ljb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_mjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_njb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_ojb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_pjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_qjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_rjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_sjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_tjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_ujb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_vjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_wjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_xjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_yjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p3a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
    },
  Def.ActorFrame{
      Name= "actor_yib",
      InitCommand= function(self) ten_luafield_p4 = self self:visible(false) ten_luafield_pwrap4 = self:AddWrapperState() end,
      OnCommand= cmd(zoom,ten_height_ratio;fov,80),
      SetupLuafieldMessageCommand= function(self)
		self:x(SCREEN_CENTER_X-160*ten_width_ratio):y(SCREEN_CENTER_Y+ten_recepnorm*ten_height_ratio)
      end,
      Def.ActorFrame{
        Name= "actor_zib",
        OnCommand= cmd(x,-96;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4r,self) end,
        Def.Sprite{
          Name= "actor_Aib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,90;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Bib",
        OnCommand= cmd(x,-32;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4r,self) end,
        Def.Sprite{
          Name= "actor_Cib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,0;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Dib",
        OnCommand= cmd(x,32;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4r,self) end,
        Def.Sprite{
          Name= "actor_Eib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,180;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Fib",
        OnCommand= cmd(x,96;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4r,self) end,
        Def.Sprite{
          Name= "actor_ajb",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,-90;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_bjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_cjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_djb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_ejb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_fjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_gjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_hjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_ijb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_jjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_kjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_ljb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_mjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_njb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_ojb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_pjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_qjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_rjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_sjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_tjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_ujb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_vjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_wjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_xjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_yjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p4a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
    },
  Def.ActorFrame{
      Name= "actor_yib",
      InitCommand= function(self) ten_luafield_p5 = self self:visible(false) ten_luafield_pwrap5 = self:AddWrapperState() end,
      OnCommand= cmd(zoom,ten_height_ratio;fov,80),
      SetupLuafieldMessageCommand= function(self)
		self:x(SCREEN_CENTER_X-160*ten_width_ratio):y(SCREEN_CENTER_Y+ten_recepnorm*ten_height_ratio)
      end,
      Def.ActorFrame{
        Name= "actor_zib",
        OnCommand= cmd(x,-96;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5r,self) end,
        Def.Sprite{
          Name= "actor_Aib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,90;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Bib",
        OnCommand= cmd(x,-32;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5r,self) end,
        Def.Sprite{
          Name= "actor_Cib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,0;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Dib",
        OnCommand= cmd(x,32;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5r,self) end,
        Def.Sprite{
          Name= "actor_Eib",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,180;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      Def.ActorFrame{
        Name= "actor_Fib",
        OnCommand= cmd(x,96;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5r,self) end,
        Def.Sprite{
          Name= "actor_ajb",
          Frames= {
            {Frame= 0, Delay= 1},
            {Frame= 1, Delay= 1},
            {Frame= 2, Delay= 1},
            {Frame= 3, Delay= 1},
        },
          HideG2MessageCommand= cmd(linear,0.1;diffusealpha,0),
          OnCommand= cmd(visible,false;rotationz,-90;addx,1;addy,1;
			effectclock,"beat";diffuseramp;effectcolor1,0.4,0.4,0.4,1;effectcolor2,1,1,1,1,1;
			effectperiod,0.5;effect_hold_at_full,0.5;effectoffset,0.05;sleep,0.02),
          ShowG2MessageCommand= cmd(linear,0.1;diffusealpha,1),
          Texture= "./receptor 4x1.png",
        },
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_bjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_cjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_djb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_ejb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_fjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_gjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_hjb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/4th.lua") .. {
        Name= "actor_ijb",
        File= "arrows-"..ten_luafield_noteskin.."/4th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[1],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_jjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_kjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_ljb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_mjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_njb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_ojb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_pjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/8th.lua") .. {
        Name= "actor_qjb",
        File= "arrows-"..ten_luafield_noteskin.."/8th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[2],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_rjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_sjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_tjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_ujb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_vjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_wjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_xjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
      LoadActor("arrows-"..ten_luafield_noteskin.."/16th.lua") .. {
        Name= "actor_yjb",
        File= "arrows-"..ten_luafield_noteskin.."/16th.lua",
        OnCommand= cmd(visible,false;sleep,0.02;queuecommand,"SetMe"),
        SetMeCommand= function(self) table.insert(ten_luafield_p5a[3],{actor=self,active=false,targ=0,col=0}); end,
      },
    },
    --luafield proxies for P2. -Kid
	Def.ActorProxy{
	    ProxyThisMessageCommand= function(self)
		ten_luafield_p1prox = self
		self:x(SCREEN_CENTER_X)
		if ten_luafield_p1 then
		    self:SetTarget(ten_luafield_p1):visible(false)
		end
	    end,
	},
	Def.ActorProxy{
	    ProxyThisMessageCommand= function(self)
		ten_luafield_p2prox = self
		self:x(SCREEN_CENTER_X)
		if ten_luafield_p2 then
		    self:SetTarget(ten_luafield_p2):visible(false)
		end
	    end,
	},
	Def.ActorProxy{
	    ProxyThisMessageCommand= function(self)
		ten_luafield_p3prox = self
		self:x(SCREEN_CENTER_X)
		if ten_luafield_p3 then
		    self:SetTarget(ten_luafield_p3):visible(false)
		end
	    end,
	},
	Def.ActorProxy{
	    ProxyThisMessageCommand= function(self)
		ten_luafield_p4prox = self
		self:x(SCREEN_CENTER_X)
		if ten_luafield_p4 then
		    self:SetTarget(ten_luafield_p4):visible(false)
		end
	    end,
	},
	Def.ActorProxy{
	    ProxyThisMessageCommand= function(self)
		ten_luafield_p5prox = self
		self:x(SCREEN_CENTER_X)
		if ten_luafield_p5 then
		    self:SetTarget(ten_luafield_p5):visible(false)
		end
	    end,
	},

    Def.Quad{
      Name= "xtl_actor_v",
      InitCommand= cmd(visible,false),
      OnCommand= cmd(sleep,1000),
    },
    Def.Quad{
      Name= "xtl_actor_v",
      InitCommand= cmd(visible,false),
      OnCommand= function(self) ten_luafield_bumpy = self  end,
      DoBumpy1MessageCommand= cmd(stoptweening;aux,3*ten_sdwidth_ratio;sleep,(60/148)*0.1;linear,1.6;aux,0),
      DoBumpy2MessageCommand= cmd(stoptweening;aux,0;linear,0.1;aux,2*ten_sdwidth_ratio;sleep,((60/148))-.1;linear,1.6;aux,0),
    },
    LoadActor('modhelpers.lua') .. {
      Name= "xtl_actor_w",
      File= "modhelpers.lua",
    },
  Def.Quad{
    Name= "luafield_update",--This way, it's separate from the main loop. -Kid
    InitCommand= cmd(visible,false),
	BeginLuafieldMessageCommand= cmd(sleep,0.02;queuecommand,'DoLuafield'),
    DoLuafieldCommand= function(self)
		ten_luafield_update();
		if GAMESTATE:GetSongBeat() <= 160 then
		self:sleep(0.5/60):queuecommand('DoLuafield')
		end
	end,
  },
	Def.Quad{
      Name= "xtl_actor_x",
      InitCommand= cmd(visible,false),
      EndCommand= function(self)
	    if SCREENMAN:GetTopScreen() then screen:RemoveInputCallback( InputHandler ); end end,--because I don't want multiple input captures at the same time. -Kid
      OnCommand= function(self)
			fgcurcommand = 1;

			ten_spinny = {36,48,24}

---------------------------------------------------------------------------------------
----------------------DON'T TOUCH IT KIDDO---------------------------------------------
---------------------------------------------------------------------------------------

			function list_compare(a,b)
				return a < b
			end

			checked = false;

			---------------------------------------------------------
			---------DOCUMENTATION-----------------------------------
			---------------------------------------------------------

			--function perframe( beat, endBeat )
				--return true if the current beat is between 'beat' and 'endBeat'

			--function mod_shader(beat,key,which)
				--turn on shader key at specified beat (up to 10 keys available, defined by 'which' = 0-9

			--function mod_insert(beat,len,mod,len_or_end,pn)
				--insert mod into beat mods table
			--function mod_insert2(time,len,mod,len_or_end,pn)
				--insert mod into time mods table

			--function mod_message(beat,msg,persistent)
				--insert something into the actions table.
				--msg can also be a function. If string, a message gets broadcast at that beat
				--if 'persistent' is true, message will run even if editor starts at a beat past it

			--function mod_blacklist(t,n)
				--check if number n occurs in table t
				--useful for doing 'every beat EXCEPT the contents of t'

			--function simple_m0d(beat,strength,mult,mod)
			--function simple_m0d2(beat,strength,mult,mod,pn)
			--function simple_m0d3(beat,strength,duration,bpm,mod,pn)
				--activate mods at specific beat but also deactivate them

			--function mod_wiggle(beat,num,div,amt,speed,mod,pn,first)
				--alternates a mod back and forth before resetting to 0

			--function mod_spring(beat,strength,num,mod,pn)
				--like mod_wiggle, but springier

			--function mod_springt(time,strength,dur,mod,pn)
				--time-based per-frame alternating mod that decreases based on how much time is left.
					--think doorstopper

			--function mod_springt2(time,strength,dur,mod,pn)
				--time-based per-frame alternating mod

			--function mod_spring_adjustable(beat,strength,num,period,mod,pn, first)
				--it's not very good

			--function mod_beat(beat,strength,pn)
				--turns on beat for the beat specified, at the desired strength

			--function switcheroo_add(beat,which,speed,len,pn)
				--adds a column swap at the desired beat
			--[[	switcheroos = {normal = {0,0}, ldur = {0,0}, reset = {0,0},
					flip = {100,0}, rudl = {100,0}, invert = {0,100}, dlru = {0,100},
					ludr = {25,-75}, rdul = {75,75}, drlu = {25,125}, ulrd = {75,-125}, urld = {100,-100}}
			]]


			init_modsp1 = '2x';
			init_modsp2 = '2x';

			mod_plr = {nil, nil};--Because less errors = more happy. -Kid

			mod_firstSeenBeat = GAMESTATE:GetSongBeat();

---------------------------------------------------------------------------------------
----------------------END DON'T TOUCH IT KIDDO-----------------------------------------
---------------------------------------------------------------------------------------

			--beat based mods
			--{beat_start, beat_end, mods, len_or_end, player_number}
			mods = {
				{0,999,'-1000 cover, overhead, no mini, no reverse, 2x, *10000 no beat','end'},
				{0,15,'*1 wave','end'},
				{31,80,'*2 wave','end'},
				{0,8,'*5 dark','end'},
				{8,5,'*5 no dark','len'},

				{0,15,'*1000 sudden, *1000 90 suddenoffset','end'},
				{159.5,191.5,'*10000 beat','end'},

				{0,999,'200 compress','end'},

				{224,341,'*200 80 stealth','end'},
				{224,256,'*90000 2000 beatz,*1000 -50 beatzmult,*5000 100 beatzoffset,*100 beatzperiod,*100 200 beat','end'},
				{256,5,'*90000 0 beatz,*1000 -50 beatzmult,*5000 100 beatzoffset,*200 no beat','len'},

				{257.4,259.5,'*10000 1000 Sudden, *10000 200 SuddenOffset','end'},--Ensures huge clusters of notes don't happen. -Kid
				{257.5,1,'*1.5 50 reverse','len'},
				{258.5,10,'*1.5 no reverse','len'},
				{259.5,0.100,'*10000 no Sudden, *10000 no SuddenOffset','len'},--Turn it off afterwards. -Kid

				{265.5,267.5,'*10000 1000 Sudden, *10000 200 SuddenOffset','end'},--Ensures huge clusters of notes don't happen. -Kid
				{265.5,1,'*1.5 50 reverse','len'},
				{266.5,10,'*1.5 no reverse','len'},
				{267.5,0.100,'*10000 no Sudden, *10000 no SuddenOffset','len'},--Turn it off afterwards. -Kid

				{273.5,1,'*1.5 50 flip','len'},
				{274.5,10,'*1.5 no flip','len'},

				{281.5,1,'*1.5 50 flip','len'},
				{282.5,10,'*1.5 no flip','len'},

				{289.5,291.5,'*10000 1000 Sudden, *10000 200 SuddenOffset','end'},--Ensures huge clusters of notes don't happen. -Kid
				{289.5,1,'*1.5 50 reverse','len'},
				{290.5,10,'*1.5 no reverse','len'},
				{291.5,0.100,'*10000 no Sudden, *10000 no SuddenOffset','len'},--Turn it off afterwards. -Kid

				{297.5,299.5,'*10000 1000 Sudden, *10000 200 SuddenOffset','end'},--Ensures huge clusters of notes don't happen. -Kid
				{297.5,1,'*1.5 50 reverse','len'},
				{298.5,10,'*1.5 no reverse','len'},
				{299.5,0.100,'*10000 no Sudden, *10000 no SuddenOffset','len'},--Turn it off afterwards. -Kid

				{305.5,1,'*1.5 50 flip','len'},
				{306.5,10,'*1.5 no flip','len'},

				{313.5,1,'*1.5 50 flip','len'},
				{314.5,10,'*1.5 no flip','len'},


				--{158,190,'1.5x, *2 80 wave, *2 -50 waveperiod','end'},

				--{16.5,31.5,'*10000 200 beat','end'},

				--[[
				{94,154,'*1000 1000 beat','end'},
				{94,154,'*1000 -75 beatmult','end'},
				{94,154,'*1000 25 beatoffset','end'},
				{94,154,'*1000 200 beatperiod','end'},
				{154,4,'*1000 no beat','len'},
				]]
			}

			--[[
			simple_m0d(96,200,1.6,'tipsy');
			for i=100,155,8 do
				simple_m0d2(i-.3,200,1.6,'drunk');
			end
			for i=104,155,8 do
				simple_m0d2(i-.3,200,1.6,'tipsy');
			end
			]]

			for i=0,50,2 do
				--simple_m0d(225+i,80,1,'stealth');
			end

			simple_m0d(96,300*ten_sdwidth_ratio,1.6,'bumpy');--Scale Bumpy. -Kid
			for i=100,155,4 do
				simple_m0d2(i-.3,200*ten_sdwidth_ratio,1.6,'bumpy');
			end

			mod_beat(16,1000);
			mod_beat(32,1000);

			--simple_m0d3(beat,strength,duration,bpm,mod)
			--simple_m0d2(beat,strength,mult,mod,pn)

			local rf = 1;

			for i=0,7 do
				simple_m0d2(192+(2*i)-.05,1000,0.4,'drunk');
				simple_m0d2(192+(2*i)-.05,500,0.4,'tipsy');
				simple_m0d2(192+(2*i)-.05,1000*ten_sdwidth_ratio,0.4,'bumpy');--Scale Bumpy. -Kid

				table.insert(mods,{192+(2*i)-.05,2,'*10 '..(rf*100)..' reverse','len'});

				if rf == 0 then
					rf = 1;
				else
					rf = 0;
				end

			end

			mod_insert(264-8,8,'*9 100 drunk',len)
			mod_insert(264,8,'*'..27*ten_sdwidth_ratio..' '..300*ten_sdwidth_ratio..' bumpy,*9 no drunk',len)--Scaled Bumpy. -Kid
			mod_insert(272,8,'*'..27*ten_sdwidth_ratio..' no bumpy,*9 zigzag',len)
			--mod_insert(272+8,8,'*9 5 tanbumpyx,*9 no zigzag',len)
			--Converted Digital's period to the SM5 equivalent. -Kid
			mod_insert(272+8*1,8*6,'*18 100 digital,*100 17.8 digitalperiod,*9 no zigzag',len)
			mod_insert(272+8*1,8,'*1000 200 digitalsteps',len)
			mod_insert(272+8*2,8,'*1000 100 digitalsteps',len)
			mod_insert(272+8*3,8,'*1000 50 digitalsteps',len)
			mod_insert(272+8*4,8,'*1000 0 digitalsteps',len)
			mod_insert(272+8*5,8,'*1000 -40 digitalsteps',len)
			mod_insert(319,30,'*1000 no digital',len)
			mod_insert(340,10,'*2 centered,*1 50 mini',len)

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(341,10,'*10 10000 drunk,*10 10000 tipsy,*0.5 stealth,*100000 dark,*10 100000 confusionoffset,*1.98 -158.5 tiny',len)
			mod_insert(350,10,'*9 0 drunk,*9 0 tipsy,*0.5 no stealth,*0.5 no dark,*9 no confusionoffset,*0.40 no tiny',len)
			--

			mod_insert(340,364,'*1000 50 stealth','end');
			mod_insert(364,5,'*5 no stealth','len');

			for i=0,4*2,4 do--Converted Tiny to the SM5 equivalent. -Kid
			mod_insert(364+i,1,'*39.62 -158.5 tiny,*200 dizzyholds,*200 200 confusion',len)
			mod_insert(364.2+i,1,'*7.92 0 tiny,*10 no confusion',len)

			mod_insert(364.75+i,1,'*100 300 drunk',len)
			mod_insert(364.85+i,1,'*10 0 drunk',len)

			mod_insert(365.00+i,1,'*100 -300 drunk',len)
			mod_insert(365.10+i,1,'*15 0 drunk',len)

			mod_insert(365.25+i,1,'*100 300 drunk',len)
			mod_insert(365.35+i,1,'*15 0 drunk',len)

			mod_insert(365.75+i,1,'*100 -300 tipsy',len)
			mod_insert(365.85+i,1,'*15 0 tipsy',len)

			mod_insert(366.25+i,1,'*100 300 tipsy',len)
			mod_insert(366.35+i,1,'*20 0 tipsy',len)

			mod_insert(366.50+i,1,'*100 -300 tipsy',len)
			mod_insert(366.60+i,1,'*20 0 tipsy',len)

			mod_insert(367.00+i,1,'*39.62 -158.5 tiny',len)
			mod_insert(367.10+i,1,'*7.92 0 tiny',len)

			mod_insert(367.50+i,1,'*39.62 -158.5 tiny',len)
			mod_insert(367.60+i,1,'*15.85 0 tiny',len)

			mod_insert(367.75+i,1,'*39.62 -158.5 tiny',len)
			mod_insert(367.85+i,1,'*15.85 0 tiny',len)

			---

			mod_insert(380+i,1,'*39.62 -158.5 tiny,*200 dizzyholds,*200 200 confusion',len)
			mod_insert(380.2+i,1,'*7.92 0 tiny,*10 no confusion',len)

			mod_insert(380.75+i,1,'*100 300 drunk',len)
			mod_insert(380.85+i,1,'*10 0 drunk',len)

			mod_insert(381.00+i,1,'*100 -300 drunk',len)
			mod_insert(381.10+i,1,'*15 0 drunk',len)

			mod_insert(381.50+i,1,'*100 300 drunk',len)
			mod_insert(381.60+i,1,'*15 0 drunk',len)

			mod_insert(382.00+i,1,'*100 -300 tipsy',len)
			mod_insert(382.10+i,1,'*30 0 tipsy',len)

			mod_insert(382.25+i,1,'*100 300 tipsy',len)
			mod_insert(382.35+i,1,'*30 0 tipsy',len)

			mod_insert(382.50+i,1,'*100 -300 tipsy',len)
			mod_insert(382.60+i,1,'*30 0 tipsy',len)

			mod_insert(383.00+i,1,'*39.62 -158.5 tiny',len)
			mod_insert(383.10+i,1,'*7.92 0 tiny',len)


				if i==0 then
				mod_insert(383.50+i,1,'*39.62 -158.5 tiny',len)
				mod_insert(383.60+i,1,'*15.85 0 tiny',len)

				mod_insert(383.75+i,1,'*39.62 -158.5 tiny',len)
				mod_insert(383.85+i,1,'*15.85 0 tiny',len)

				else

				mod_insert(383.25+i,1,'*39.62 -158.5 tiny',len)
				mod_insert(383.35+i,1,'*15.85 0 tiny',len)

				end

			end





			----------------------
			mod_insert(376.00,1,'*100 50 stealth',len)
			mod_insert(376.10,1,'*10 100 stealth',len)

			mod_insert(376.25,1,'*100 50 stealth',len)
			mod_insert(376.35,1,'*10 100 stealth',len)

			mod_insert(376.75,1,'*100 50 stealth',len)
			mod_insert(376.85,1,'*10 100 stealth',len)

			mod_insert(377.00,1,'*100 50 stealth',len)
			mod_insert(377.10,1,'*10 100 stealth',len)

			mod_insert(377.50,1,'*100 50 stealth',len)
			mod_insert(377.60,1,'*10 100 stealth',len)

			mod_insert(377.75,1,'*100 50 stealth',len)
			mod_insert(377.85,1,'*10 100 stealth',len)

			mod_insert(378.25,1,'*100 50 stealth',len)
			mod_insert(378.35,1,'*10 100 stealth',len)

			mod_insert(378.50,1,'*100 50 stealth',len)
			mod_insert(378.60,1,'*10 100 stealth',len)

			mod_insert(379.00,1,'*100 0 stealth',len)

			--

			mod_insert(392.00,1,'*100 50 stealth',len)
			mod_insert(392.10,1,'*10 100 stealth',len)

			mod_insert(392.50,1,'*100 50 stealth',len)
			mod_insert(392.60,1,'*10 100 stealth',len)

			mod_insert(392.75,1,'*100 50 stealth',len)
			mod_insert(392.85,1,'*10 100 stealth',len)

			mod_insert(393.25,1,'*100 50 stealth',len)
			mod_insert(393.35,1,'*10 100 stealth',len)

			mod_insert(393.50,1,'*100 50 stealth',len)
			mod_insert(393.60,1,'*10 100 stealth',len)

			mod_insert(394.00,1,'*100 50 stealth',len)
			mod_insert(394.10,1,'*10 100 stealth',len)

			mod_insert(394.50,1,'*100 50 stealth',len)
			mod_insert(394.60,1,'*10 100 stealth',len)

			mod_insert(394.75,1,'*100 50 stealth',len)
			mod_insert(394.85,1,'*10 100 stealth',len)

			--mod_insert(395.00,1,'*100 50 stealth',len)
			--mod_insert(395.10,1,'*10 100 stealth',len)

			mod_insert(395.00,1,'*100 0 stealth',len)

			-- second part

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(396,1,'*39.62 -158.5 tiny,*200 dizzyholds,*200 200 confusion',len)
			mod_insert(396.2,1,'*7.92 0 tiny,*10 no confusion',len)

			mod_insert(396.75,1,'*100 300 drunk',len)
			mod_insert(396.85,1,'*10 0 drunk',len)

			mod_insert(397.00,1,'*100 -300 drunk',len)
			mod_insert(397.10,1,'*15 0 drunk',len)

			mod_insert(397.50,1,'*100 300 drunk',len)
			mod_insert(397.60,1,'*15 0 drunk',len)

			mod_insert(398.00,1,'*100 -300 tipsy',len)
			mod_insert(398.10,1,'*15 0 tipsy',len)

			mod_insert(398.25,1,'*100 300 tipsy',len)
			mod_insert(398.35,1,'*20 0 tipsy',len)

			mod_insert(398.50,1,'*100 -300 tipsy',len)
			mod_insert(398.60,1,'*20 0 tipsy',len)

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(399.00,1,'*39.62 -158.5 tiny',len)
			mod_insert(399.10,1,'*7.92 0 tiny',len)

			mod_insert(399.50,1,'*39.62 -158.5 tiny',len)
			mod_insert(399.60,1,'*15.85 0 tiny',len)

			mod_insert(399.75,1,'*39.62 -158.5 tiny',len)
			mod_insert(399.85,1,'*15.85 0 tiny',len)

			--

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(400,1,'*39.62 -158.5 tiny,*200 dizzyholds,*200 200 confusion',len)
			mod_insert(400.2,1,'*7.92 0 tiny,*10 no confusion',len)

			mod_insert(400.75,1,'*100 300 drunk',len)
			mod_insert(400.85,1,'*10 0 drunk',len)

			mod_insert(401.00,1,'*100 -300 drunk',len)
			mod_insert(401.10,1,'*15 0 drunk',len)

			mod_insert(401.50,1,'*100 300 drunk',len)
			mod_insert(401.60,1,'*15 0 drunk',len)

			mod_insert(402.00,1,'*100 -300 tipsy',len)
			mod_insert(402.10,1,'*15 0 tipsy',len)

			mod_insert(402.25,1,'*100 300 tipsy',len)
			mod_insert(402.35,1,'*20 0 tipsy',len)

			mod_insert(402.50,1,'*100 -300 tipsy',len)
			mod_insert(402.60,1,'*20 0 tipsy',len)

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(403.00,1,'*39.62 -158.5 tiny',len)
			mod_insert(403.10,1,'*7.92 0 tiny',len)

			mod_insert(403.25,1,'*39.62 -158.5 tiny',len)
			mod_insert(403.35,1,'*15.85 0 tiny',len)

			mod_insert(403.75,1,'*39.62 -158.5 tiny',len)
			mod_insert(403.85,1,'*15.85 0 tiny',len)

			--

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(404,1,'*39.62 -158.5 tiny,*200 dizzyholds,*200 200 confusion',len)
			mod_insert(404.2,1,'*7.92 0 tiny,*10 no confusion',len)

			mod_insert(404.75,1,'*100 300 drunk',len)
			mod_insert(404.85,1,'*10 0 drunk',len)

			mod_insert(405.00,1,'*100 -300 drunk',len)
			mod_insert(405.10,1,'*15 0 drunk',len)

			mod_insert(405.50,1,'*100 300 drunk',len)
			mod_insert(405.60,1,'*15 0 drunk',len)

			mod_insert(406.00,1,'*100 -300 tipsy',len)
			mod_insert(406.10,1,'*15 0 tipsy',len)

			mod_insert(406.50,1,'*100 300 tipsy',len)
			mod_insert(406.60,1,'*20 0 tipsy',len)

			mod_insert(406.75,1,'*100 -300 tipsy',len)
			mod_insert(406.85,1,'*20 0 tipsy',len)

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(407.00,1,'*39.62 -158.5 tiny',len)
			mod_insert(407.10,1,'*7.92 0 tiny',len)

			mod_insert(407.50,1,'*39.62 -158.5 tiny',len)
			mod_insert(407.60,1,'*15.85 0 tiny',len)

			--mod_insert(407.75,1,'*39.62 -158.5 tiny',len)
			--mod_insert(407.85,1,'*15.85 0 tiny',len)

			mod_insert(408,1,'*39.62 -158.5 tiny,*200 dizzyholds,*200 200 confusion',len)
			mod_insert(408.2,1,'*7.92 0 tiny,*10 no confusion',len)

			mod_insert(408.75,1,'*100 300 drunk',len)
			mod_insert(408.85,1,'*10 0 drunk',len)

			mod_insert(409.00,1,'*100 -300 drunk',len)
			mod_insert(409.10,1,'*15 0 drunk',len)

			mod_insert(409.50,1,'*100 300 drunk',len)
			mod_insert(409.60,1,'*15 0 drunk',len)

			mod_insert(410.00,1,'*100 -300 tipsy',len)
			mod_insert(410.10,1,'*15 0 tipsy',len)

			mod_insert(410.25,1,'*100 300 tipsy',len)
			mod_insert(410.35,1,'*20 0 tipsy',len)

			mod_insert(410.50,1,'*100 -300 tipsy',len)
			mod_insert(410.60,1,'*20 0 tipsy',len)

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(411.00,1,'*39.62 -158.5 tiny',len)
			mod_insert(411.10,1,'*7.92 0 tiny',len)

			mod_insert(411.25,1,'*39.62 -158.5 tiny',len)
			mod_insert(411.35,1,'*15.85 0 tiny',len)

			---mod_insert(403.75,1,'*39.62 -158.5 tiny',len)
			---mod_insert(403.85,1,'*15.85 0 tiny',len)

			mod_insert(412,1,'*39.62 -158.5 tiny,*200 dizzyholds,*200 200 confusion',len)
			mod_insert(412.2,1,'*7.92 0 tiny,*10 no confusion',len)

			--mod_insert(408.75,1,'*100 300 drunk',len)
			--mod_insert(408.85,1,'*10 0 drunk',len)

			mod_insert(413.00,1,'*100 -300 drunk',len)
			mod_insert(413.10,1,'*15 0 drunk',len)

			mod_insert(413.50,1,'*100 300 drunk',len)
			mod_insert(413.60,1,'*15 0 drunk',len)

			mod_insert(414.00,1,'*100 -300 tipsy',len)
			mod_insert(414.10,1,'*15 0 tipsy',len)

			mod_insert(414.25,1,'*100 300 tipsy',len)
			mod_insert(414.35,1,'*20 0 tipsy',len)

			mod_insert(414.50,1,'*100 -300 tipsy',len)
			mod_insert(414.60,1,'*20 0 tipsy',len)

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(415.00,1,'*39.62 -158.5 tiny',len)
			mod_insert(415.10,1,'*7.92 0 tiny',len)

			mod_insert(415.50,1,'*39.62 -158.5 tiny',len)
			mod_insert(415.60,1,'*15.85 0 tiny',len)

			mod_insert(415.75,1,'*39.62 -158.5 tiny',len)
			mod_insert(415.85,1,'*15.85 0 tiny',len)

			---

			mod_insert(416,1,'*39.62 -158.5 tiny,*200 dizzyholds,*200 200 confusion',len)
			mod_insert(416.2,1,'*7.92 0 tiny,*10 no confusion',len)

			mod_insert(416.75,1,'*100 300 drunk',len)
			mod_insert(416.85,1,'*10 0 drunk',len)

			mod_insert(417.00,1,'*100 -300 drunk',len)
			mod_insert(417.10,1,'*15 0 drunk',len)

			mod_insert(417.50,1,'*100 300 drunk',len)
			mod_insert(417.60,1,'*15 0 drunk',len)

			mod_insert(418.00,1,'*100 -300 tipsy',len)
			mod_insert(418.10,1,'*15 0 tipsy',len)

			mod_insert(418.25,1,'*100 300 tipsy',len)
			mod_insert(418.35,1,'*20 0 tipsy',len)

			mod_insert(418.50,1,'*100 -300 tipsy',len)
			mod_insert(418.60,1,'*20 0 tipsy',len)

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(419.00,1,'*39.62 -158.5 tiny',len)
			mod_insert(419.10,1,'*7.92 0 tiny',len)

			mod_insert(419.25,1,'*39.62 -158.5 tiny',len)
			mod_insert(419.35,1,'*15.85 0 tiny',len)

			mod_insert(419.75,1,'*39.62 -158.5 tiny',len)
			mod_insert(419.85,1,'*15.85 0 tiny',len)

			--

			mod_insert(420,1,'*39.62 -158.5 tiny,*200 dizzyholds,*200 200 confusion',len)
			mod_insert(420.2,1,'*7.92 0 tiny,*10 no confusion',len)

			mod_insert(420.75,1,'*100 300 drunk',len)
			mod_insert(420.85,1,'*10 0 drunk',len)

			mod_insert(421.00,1,'*100 -300 drunk',len)
			mod_insert(421.10,1,'*15 0 drunk',len)

			mod_insert(421.50,1,'*100 300 drunk',len)
			mod_insert(421.60,1,'*15 0 drunk',len)

			mod_insert(422.00,1,'*100 -300 tipsy',len)
			mod_insert(422.10,1,'*15 0 tipsy',len)

			mod_insert(422.25,1,'*100 300 tipsy',len)
			mod_insert(422.35,1,'*20 0 tipsy',len)

			mod_insert(422.50,1,'*100 -300 tipsy',len)
			mod_insert(422.60,1,'*20 0 tipsy',len)

			--Converted Tiny to their SM5 equivalent. -Kid
			mod_insert(423.00,1,'*39.62 -158.5 tiny',len)
			mod_insert(423.10,1,'*7.92 0 tiny',len)
			--[[
			mod_insert(419.25,1,'*39.62 -158.5 tiny',len)
			mod_insert(419.35,1,'*15.85 0 tiny',len)

			mod_insert(419.75,1,'*39.62 -158.5 tiny',len)
			mod_insert(419.85,1,'*15.85 0 tiny',len)
			--]]

			mod_insert(428.90,31,'*2000 1000 beat,*200 -50 beatmult,*200 100 beatoffset,*200 1500 beatperiod',len)
			mod_insert(460.10,31,'*2000 no beat',len)

			--time based mods
			mod_time = 0;
			--{time_start, time_end, mods, len_or_end, player_number}
			mods2 = {
			--{0,200,'3x','end',1},
			}


			ten_origpos = -30000;
			ten_march_dist = 40;
			ten_jump_height = 50;

			function ten_poswrap(pos)
				local ret = pos--Unscale this. The end value is gonna be scaled instead. -Kid
				while ret<-50 do
					ret = ret+480+250
				end
				return ret
			end

			warningbeat = 32;

			--if done properly, this will be ass
			if not ten_ass then
				ten_ass = {}
				for i=1,99 do
					table.insert(ten_ass,{
						(math.random()*SCREEN_WIDTH*0.3)+SCREEN_WIDTH*0.1,
						(math.random()*SCREEN_HEIGHT*0.8)+SCREEN_HEIGHT*0.1,
						math.random()*0.3 + 0.6
						}
					)
				end
			end
			ten_cur_ass = 1;

			ten_wptr = 1
			function ten_spawnwarn()
				--yes, the whole ass
				local rngx = ten_ass[ten_cur_ass][1]
				local rngy = ten_ass[ten_cur_ass][2]
				local rngbz = ten_ass[ten_cur_ass][3]
				ten_cur_ass = ten_cur_ass+1;
				for pn = 1,2 do
					if GAMESTATE:IsPlayerEnabled(pn-1) then
						local d = 0
						if pn == 2 then d = SCREEN_WIDTH/2 end
						local a = ten_warns[ten_wptr]

						if a then
							a:finishtweening();
							a:basezoomx(rngbz)
							a:basezoomy(rngbz)
							a:blend('add');
							a:animate(0)
							a:setstate(math.random(0,3))
							a:x(rngx+d);
							a:y(rngy);
							a:zoom(0);--Scale zooms. -Kid
							a:zoomx(3*ten_height_ratio);
							a:visible(true);
							a:diffusealpha(1);
							a:bounceend(.3);
							a:zoom(ten_height_ratio);
							a:sleep(5);
							a:linear(2);
							a:diffusealpha(0);
						end

						ten_wptr = ten_wptr+1;
						if ten_wptr > table.getn(ten_warns) then
							ten_wptr = 1
						end
					end
				end
			end

			curaction = 1;
			--{beat,message,persists}
			mod_actions = {

				--warnings
				--[[
				{32,'Warning1'},
				{40,'Warning2'},
				{48,'Warning3'},
				{56,'Warning4'},
				{64,'Warning5'},
				{68,'Warning6'},
				{72,'Warning7'},
				{76,'Warning8'},
				{80,'Warning9'},
				{92,'RemoveWarnings'},
				]]

				{92,'RemoveWarnings'},
				{0.25,function()
					MESSAGEMAN:Broadcast('ProxyThis');--It's all for the AFT. -Kid
				end},

				{1,function()
					ten_vpos:stoptweening();
					ten_vpos:linear(14*60/148);
					ten_vpos:x(10);
					ten_vpos:sleep(0);
					ten_vpos:x(0);
				end},
				{8,'NoBlur'},
				{8,'StoreQuads',true},
				{16,'NoBlurFast',true},
				{7.9,function()
					ten_march:accelerate(7.5*60/148);
					ten_march:addx(-ten_march_dist);
				end},
				{15,function()
					ten_vpos:stoptweening();
					ten_vpos:linear(60/148);
					ten_vpos:x(100);
					ten_vpos:sleep(0);
					ten_vpos:x(0);
					MESSAGEMAN:Broadcast('DoMarch');
				end},
				{15.9,'StartMarch'},
				{31,function()

					ten_march:stoptweening();
					ten_march:linear(60/148);
					ten_march:x(0);
					ten_jump:stoptweening();
					ten_jump:accelerate(30/148);
					ten_jump:y(-ten_jump_height*2);
					ten_jump:decelerate(30/148);
					ten_jump:y(0);

					ten_vpos:stoptweening();
					ten_vpos:linear(30/148);
					ten_vpos:x(50);
					ten_vpos:linear(30/148);
					ten_vpos:x(0);

					--[[
					ten_spin:decelerate(30/148);
					ten_spin:x(180);
					ten_spin:accelerate(30/148);
					ten_spin:x(360);
					ten_spin:sleep(0);
					ten_spin:x(0);
					]]

					ten_spin:linear(60/148)
					ten_spin:x(360);
					ten_spin:sleep(0);
					ten_spin:x(0);

				end},
				{32.1,function()
					for pn=1,2 do
						local a = _G['P'..pn]
						local w = _G['PWRAP'..pn]
						if a then
							a:rotationz(0)--Ensure it's not left with non-zero rotation. -Kid
							a:linear(59.9*60/148)
							w:linear(59.9*60/148)
							w:zoomz(18*ten_sdwidth_ratio);
							a:rotationx(-37);
						end
					end
					ten_vpos:linear(45.9*60/148);
					ten_vpos:x(38);
					ten_vpos:linear(120/148);
					ten_vpos:x(0);
				end},
				{90,'BeginLuafield'},--The insanity begins. -Kid
				{92-.1,function()
					for pn=1,2 do
						local a = _G['P'..pn]
						local w = _G['PWRAP'..pn]
						if a then
							a:decelerate(90/148)
							w:decelerate(90/148)
							w:zoomz(1);
							a:rotationx(0);
							a:rotationz(-180);
							a:accelerate(30/148)
							w:accelerate(30/148)
							w:zoomz(1);
							a:rotationx(0);
							a:rotationz(0);
						end
					end
				end},
				{94-.1,function()
					screen:x(sw/2);
					screen:y(sh/2);

					local d = 1;
					for pn=1,2 do
						if pn == 2 then d = -1 end
						local a = _G['P'..pn]
						if a then
							a:sleep(0);
							a:x(sw*0.25*-d);
							a:y(0);
							a:sleep(0);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);--Scale movement. -Kid
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
						end
					end

					ten_ALL_FG:addx(-sw/2);
					ten_ALL_FG:addy(-sh/2);
					ten_ALL_BG:addx(-sw/2);
					ten_ALL_BG:addy(-sh/2);
				end},
				{96,function()

					MESSAGEMAN:Broadcast('ShowQuads');
					MESSAGEMAN:Broadcast('VHS');
					--[[if DIVINE_ENTITY then
						for i = 0,5 do
							for j,v in ipairs(ten_dir) do
								if i == 0 then
									DIVINE_ENTITY:GetTapNotes(v, nil, 'Clone ' .. i):visible(false);
								else
									if v == 'Down' or v == 'Up' then
										DIVINE_ENTITY:GetTapNotes(v, nil, 'Clone ' .. i):cropbottom(1-i*0.2);
										DIVINE_ENTITY:GetTapNotes(v, nil, 'Clone ' .. i):croptop(i*0.2-0.4);
									else
										DIVINE_ENTITY:GetTapNotes(v, nil, 'Clone ' .. i):cropright(1-i*0.2);
										DIVINE_ENTITY:GetTapNotes(v, nil, 'Clone ' .. i):cropleft(i*0.2-0.4);
									end
								end
							end
							DIVINE_ENTITY:GetTapNotes(nil, nil, 'Clone ' .. i):visible(true);
							DIVINE_ENTITY:GetTapNotes(nil, nil, 'Clone ' .. i):vibrate();
							DIVINE_ENTITY:GetTapNotes(nil, nil, 'Clone ' .. i):effectmagnitude(0,0,0);
						end
					end]]
					--Replaced DivinEntity stuff with luafield. -Kid
					--Cropping is done in ten_luafield_placenote. -Kid
					--Actor effects are applied on the proxy when done on the original actor. -Kid
					for i=1,5 do
						_G['ten_luafield_p'..i]:vibrate():effectmagnitude(0,0,0)
					end
					--This is like how teknopathetic's luafields work. P1 gets left, P2 gets right. -Kid
					if P1 then
						for i=1,5 do
							_G['ten_luafield_p'..i]:visible(true)
						end
					end
					if P2 then
						for i=1,5 do
							_G['ten_luafield_p'..i..'prox']:visible(true)
						end
					end
				end},
				{156,function()
					MESSAGEMAN:Broadcast('StaticOff');
					MESSAGEMAN:Broadcast('HideQuads2');
					MESSAGEMAN:Broadcast('RedFlash');
					ten_bg:stopeffect();

				end},
				{96,'NoteVib1'},
				{96,'VibLeft1'},
				{96,'DoBumpy1'},--Begin luafield mods. -Kid
				{112,'VibLeft2'},
				{100,'VibUp'},
				{111,'StaticOff'},
				{111,'HideQuads2'},
				{112,'Static'},
				{112,'ShowQuads2'},
				{143,'StaticOff'},
				{143,'HideQuads2'},
				{144,'Static'},
				{144,'ShowQuads2'},
				{111,function()
					screen:skewx(0.7);
					ten_svib:finishtweening();
					ten_svib:y(20);
					ten_notevpos:finishtweening();
				end},
				{143,function()
					ten_svib:finishtweening();
					ten_notevpos:finishtweening();
				end},
				{156,function()
					ten_svib:finishtweening();
					ten_notevpos:finishtweening();
					--[[if DIVINE_ENTITY then for i = 1,5 do
						DIVINE_ENTITY:GetTapNotes(nil, nil, 'Clone ' .. i):effectmagnitude(0,0,0);
					end end]]
					--Replaced DivinEntity stuff with luafield. -Kid
					for i=1,5 do
						_G['ten_luafield_p'..i]:effectmagnitude(0,0,0):visible(false)
						_G['ten_luafield_p'..i..'prox']:visible(false)
					end

					screen:x(0);
					screen:y(0);

					screen:rotationz(0);

					local d = 1;
					for pn=1,2 do
						if pn == 2 then d = -1 end
						local a = _G['P'..pn]
						if a then
							a:x((sw*0.25*-d)+(sw*0.5));
							a:y(SCREEN_CENTER_Y);

							a:sleep(0);
							a:linear(45/148);
							a:addy(96*ten_height_ratio);--Scale movement. -Kid
							a:sleep(0);
							a:addy(-96*ten_height_ratio);
							a:linear(45/148);
							a:addy(96*ten_height_ratio);
							a:sleep(0);
							a:addy(-96*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);

						end
					end

					ten_ALL_FG:x(0);
					ten_ALL_FG:y(0);
					ten_ALL_BG:x(0);
					ten_ALL_BG:y(0);

				end},

				{160,function()
					for pn = 1,2 do
						local a = _G['P'..pn]
						if a then--Scaled movement. -Kid
							a:addy(-10*ten_height_ratio);
						end
					end
				end},

				{224,function()
					ten_fgCover:diffusealpha(1)
					ten_fgCover:linear(1)
					ten_fgCover:diffusealpha(0)
					ten_bgCover:diffusealpha(1)

					ten_tilesa:visible(false);
					ten_tilesaprox:visible(false);--Include proxy. -Kid
					ten_rgbcont:visible(true);
					ten_red:diffuse(1,0,0,1)
					ten_green:diffuse(0,1,0,1)
					ten_blue:diffuse(0,0,1,1)

					ten_red:blend('add')
					ten_red:x(SCREEN_CENTER_X)
					ten_green:blend('add')
					ten_blue:blend('add')
					ten_blue:x(SCREEN_CENTER_X)

					ten_red:bob()--Scaled effect magnitude. -Kid
					ten_red:effectmagnitude(32*ten_height_ratio,0,0)
					ten_red:effectclock('bgm')
					ten_red:effectperiod(4)
					ten_red:effectoffset(0.8)

					ten_green:bob()
					ten_green:effectmagnitude(32*ten_height_ratio,0,0)
					ten_green:effectclock('bgm')
					ten_green:effectperiod(4)
					ten_green:effectoffset(0.4)

					ten_blue:bob()
					ten_blue:effectmagnitude(32*ten_height_ratio,0,0)
					ten_blue:effectclock('bgm')
					ten_blue:effectperiod(4)
					ten_blue:effectoffset(0.0)

					if P1 then
						P1:x(SCREEN_CENTER_X)
						P1:y(SCREEN_CENTER_Y)
						jud1:stoptweening():x(-100*ten_sdwidth_ratio):sleep(100)--Scale movement, hold position for the rest of the song. -Kid
						--Deal with Lambda's old combo tweens. -Kid
						com1:stoptweening():skewy(0):x(-100*ten_sdwidth_ratio):sleep(100)
					end

					if P2 then
						P2:x(SCREEN_CENTER_X)
						P2:y(SCREEN_CENTER_Y)
						jud2:stoptweening():x(100*ten_sdwidth_ratio):sleep(100)
						com2:stoptweening():skewy(0):x(100*ten_sdwidth_ratio):sleep(100)
					end
				end,true},

				{256,function()
					ten_fgCover:diffusealpha(1)
					ten_fgCover:linear(0)
					ten_fgCover:diffusealpha(0)

					ten_red:stopeffect()
					ten_green:stopeffect()
					ten_blue:stopeffect()

				end,true},

				{256,function()

					ten_blue:linear(0.1)--Scale movement. -Kid
					ten_blue:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio))

				end},

				{256.5,function()
					ten_red:linear(0.1)
					ten_red:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio)-10*ten_height_ratio)
				end},

				{257,function()
					ten_green:linear(0.1)
					ten_green:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio)+10*ten_height_ratio)
				end},


				{260,function()

					ten_green:linear(0.1)
					ten_green:x(SCREEN_CENTER_X+0)

				end},

				{260.5,function()
					ten_red:linear(0.1)
					ten_red:x(SCREEN_CENTER_X+0)

					ten_blue:sleep(0.1)
					ten_blue:linear(0.1)
					ten_blue:x(SCREEN_CENTER_X+0)
				end},

				{261,function()
					ten_blue:linear(0.3)
					ten_blue:rotationx(0)
					ten_blue:zoomy(2)
					ten_blue:zoomx(0.5)
					ten_blue:skewx(0)--Scale movement. -Kid
					ten_blue:x(SCREEN_CENTER_X-100*ten_height_ratio)

					ten_red:linear(0.3)
					ten_red:rotationx(0)
					ten_red:skewx(0)
					ten_red:zoomy(2)
					ten_red:zoomx(0.5)

					ten_green:linear(0.3)
					ten_green:rotationx(0)
					ten_green:skewx(0)
					ten_green:zoomy(2)
					ten_green:zoomx(0.5)
					ten_green:x(SCREEN_CENTER_X+100*ten_height_ratio)
				end},

				{262-0.2,function()
					ten_blue:spring(0.5)
					ten_blue:zoomx(1)
					ten_blue:zoomy(1)
					ten_blue:x(SCREEN_CENTER_X)

					ten_red:spring(0.6)
					ten_red:skewx(0)
					ten_red:zoomx(1)
					ten_red:zoomy(1)
					ten_red:x(SCREEN_CENTER_X)

					ten_green:spring(0.7)
					ten_green:skewx(0)
					ten_green:zoomx(1)
					ten_green:zoomy(1)
					ten_green:x(SCREEN_CENTER_X)
				end},


				{264,function()

					ten_blue:decelerate(0.2)--Scale movement. -Kid
					ten_blue:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio)-15*ten_height_ratio)

				end},

				{264.5,function()
					ten_red:decelerate(0.2)
					ten_red:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio)+15*ten_height_ratio)
				end},

				{265,function()
					ten_green:decelerate(0.2)
					ten_green:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio))
				end},



				{268,function()
					ten_green:decelerate(0.2)
					ten_green:x(SCREEN_CENTER_X)
				end},

				{268.5,function()
					ten_red:decelerate(0.2)
					ten_red:x(SCREEN_CENTER_X)

					ten_blue:decelerate(0.2)
					ten_blue:x(SCREEN_CENTER_X)
				end},

				{269,function()
					ten_green:linear(0.3)
					ten_green:rotationx(0)
					ten_green:zoomy(2)
					ten_green:zoomx(0.5)
					ten_green:skewx(0)--Scale movement. -Kid
					ten_green:x(SCREEN_CENTER_X-100*ten_height_ratio)

					ten_blue:linear(0.3)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomy(2)
					ten_blue:zoomx(0.5)

					ten_red:linear(0.3)
					ten_red:rotationx(0)
					ten_red:skewx(0)
					ten_red:zoomy(2)
					ten_red:zoomx(0.5)
					ten_red:x(SCREEN_CENTER_X+100*ten_height_ratio)
				end},

				{270,function()
					ten_green:spring(0.5)
					ten_green:zoomx(1)
					ten_green:zoomy(1)
					ten_green:x(SCREEN_CENTER_X)

					ten_blue:spring(0.6)
					ten_blue:skewx(0)
					ten_blue:zoomx(1)
					ten_blue:zoomy(1)
					ten_blue:x(SCREEN_CENTER_X)

					ten_red:spring(0.7)
					ten_red:skewx(0)
					ten_red:zoomx(1)
					ten_red:zoomy(1)
					ten_red:x(SCREEN_CENTER_X)

				end},

				{272,function()

					ten_blue:linear(0.1)--Scale movement. -Kid
					ten_blue:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio))

				end},

				{272.5,function()
					ten_red:linear(0.1)
					ten_red:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio)+5*ten_height_ratio)
				end},

				{273,function()
					ten_green:linear(0.1)
					ten_green:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio)+10*ten_height_ratio)
				end},

				{276,function()
					ten_green:decelerate(0.2)
					ten_green:x(SCREEN_CENTER_X)
				end},

				{276.5,function()
					ten_red:decelerate(0.2)
					ten_red:x(SCREEN_CENTER_X)

					ten_blue:decelerate(0.2)
					ten_blue:x(SCREEN_CENTER_X)
				end},

				{277,function()
					ten_red:linear(0.3)
					ten_red:rotationx(0)
					ten_red:zoomy(2)
					ten_red:zoomx(0.5)
					ten_red:skewx(0)--Scale movement. -Kid
					ten_red:x(SCREEN_CENTER_X-100*ten_height_ratio)

					ten_green:linear(0.3)
					ten_green:rotationx(0)
					ten_green:skewx(0)
					ten_green:zoomy(2)
					ten_green:zoomx(0.5)

					ten_blue:linear(0.3)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomy(2)
					ten_blue:zoomx(0.5)
					ten_blue:x(SCREEN_CENTER_X+100*ten_height_ratio)
				end},

				{278,function()
					ten_green:spring(0.5)
					ten_green:rotationx(0)
					ten_green:zoomx(1)
					ten_green:zoomy(1)
					ten_green:skewx(0)--Scale movement. -Kid
					ten_green:y(SCREEN_CENTER_Y-3*ten_height_ratio)
					ten_green:x(SCREEN_CENTER_X)

					ten_blue:spring(0.6)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomx(1)
					ten_blue:zoomy(1)
					ten_blue:x(SCREEN_CENTER_X)

					ten_red:spring(0.7)
					ten_red:rotationx(0)
					ten_red:skewx(0)
					ten_red:zoomx(1)
					ten_red:zoomy(1)
					ten_red:y(SCREEN_CENTER_Y+3*ten_height_ratio)
					ten_red:x(SCREEN_CENTER_X)

					ten_red:wag()
					ten_red:effectmagnitude(0,0,-20)--Use negative effect because the original had negative basezoomy. -Kid
					ten_red:effectclock('bgm')
					ten_red:effectperiod(4)
					ten_red:effectoffset(0.4)

					ten_green:wag()
					ten_green:effectmagnitude(0,0,-20)--Use negative effect because the original had negative basezoomy. -Kid
					ten_green:effectclock('bgm')
					ten_green:effectperiod(4)
					ten_green:effectoffset(0.2)

					ten_blue:wag()
					ten_blue:effectmagnitude(0,0,-20)--Use negative effect because the original had negative basezoomy. -Kid
					ten_blue:effectclock('bgm')
					ten_blue:effectperiod(4)
					ten_blue:effectoffset(0.0)

				end},

				{279,function() --[[
					ten_rgbcont:visible(true);
					ten_red:diffuse(1,0,0,1)
					ten_green:diffuse(0,1,0,1)
					ten_blue:diffuse(0,0,1,1) --]]
				end,true},

				{280,function()

					ten_red:linear(0.1)--Scale movement. -Kid
					ten_red:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio))

				end},

				{280.5,function()
					ten_blue:linear(0.1)
					ten_blue:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio)+5*ten_height_ratio)
				end},

				{281,function()
					ten_green:linear(0.1)
					ten_green:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio)+10*ten_height_ratio)
				end},

				{284,function()
					ten_blue:decelerate(0.2)
					ten_blue:x(SCREEN_CENTER_X)
				end},

				{284.5,function()
					ten_red:decelerate(0.2)
					ten_red:x(SCREEN_CENTER_X)

					ten_green:decelerate(0.2)
					ten_green:x(SCREEN_CENTER_X)
				end},

				{285,function()
					ten_green:linear(0.3)
					ten_green:rotationx(0)
					ten_green:zoomy(2)
					ten_green:zoomx(0.5)
					ten_green:skewx(0)--Scale movement. -Kid
					ten_green:x(SCREEN_CENTER_X-100*ten_height_ratio)

					ten_blue:linear(0.3)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomy(2)
					ten_blue:zoomx(0.5)

					ten_red:linear(0.3)
					ten_red:rotationx(0)
					ten_red:skewx(0)
					ten_red:zoomy(2)
					ten_red:zoomx(0.5)
					ten_red:x(SCREEN_CENTER_X+100*ten_height_ratio)

				end},

				{286,function()
					ten_green:spring(0.5)
					ten_green:rotationx(0)
					ten_green:zoomx(1)
					ten_green:zoomy(1)
					ten_green:skewx(0)--Scale movement. -Kid
					ten_green:y(SCREEN_CENTER_Y-3*ten_height_ratio)
					ten_green:x(SCREEN_CENTER_X)

					ten_blue:spring(0.6)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomx(1)
					ten_blue:zoomy(1)

					ten_red:spring(0.7)
					ten_red:rotationx(0)
					ten_red:skewx(0)
					ten_red:zoomx(1)
					ten_red:zoomy(1)
					ten_red:y(SCREEN_CENTER_Y+3*ten_height_ratio)
					ten_red:x(SCREEN_CENTER_X)

				end},

				{288,function()

					ten_green:linear(0.1)--Scaled movement. -Kid
					ten_green:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio)-20*ten_height_ratio)

				end},

				{288.5,function()
					ten_red:linear(0.1)
					ten_red:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio))
				end},

				{289,function()
					ten_blue:linear(0.1)
					ten_blue:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio)+20*ten_height_ratio)
				end},

				{292,function()
					ten_red:decelerate(0.2)
					ten_red:x(SCREEN_CENTER_X)
				end},

				{292.5,function()
					ten_green:decelerate(0.2)
					ten_green:x(SCREEN_CENTER_X)

					ten_blue:decelerate(0.2)
					ten_blue:x(SCREEN_CENTER_X)
				end},

				{293,function()
					ten_red:linear(0.3)
					ten_red:rotationx(0)
					ten_red:zoomy(2)
					ten_red:zoomx(0.5)
					ten_red:skewx(0)--Scale movement. -Kid
					ten_red:x(SCREEN_CENTER_X-100*ten_height_ratio)

					ten_green:linear(0.3)
					ten_green:rotationx(0)
					ten_green:skewx(0)
					ten_green:zoomy(2)
					ten_green:zoomx(0.5)

					ten_blue:linear(0.3)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomy(2)
					ten_blue:zoomx(0.5)
					ten_blue:x(SCREEN_CENTER_X+100*ten_height_ratio)

				end},

				{294,function()
					ten_red:spring(0.5)
					ten_red:rotationx(0)
					ten_red:zoomx(1)
					ten_red:zoomy(1)
					ten_red:skewx(0)--Scale movement. -Kid
					ten_red:y(SCREEN_CENTER_Y-3*ten_height_ratio)
					ten_red:x(SCREEN_CENTER_X)

					ten_green:spring(0.6)
					ten_green:rotationx(0)
					ten_green:skewx(0)
					ten_green:zoomx(1)
					ten_green:zoomy(1)

					ten_blue:spring(0.7)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomx(1)
					ten_blue:zoomy(1)
					ten_blue:y(SCREEN_CENTER_Y+3*ten_height_ratio)
					ten_blue:x(SCREEN_CENTER_X)

				end},

				{296,function()

					ten_green:decelerate(0.2)--Scaled movement. -Kid
					ten_green:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio)-20*ten_height_ratio)

				end},

				{296.5,function()
					ten_blue:decelerate(0.2)
					ten_blue:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio)+20*ten_height_ratio)
				end},

				{297,function()
					ten_red:decelerate(0.2)
					ten_red:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio))
				end},

				{300,function()
					ten_green:decelerate(0.2)
					ten_green:x(SCREEN_CENTER_X)
				end},

				{300.5,function()
					ten_red:decelerate(0.2)
					ten_red:x(SCREEN_CENTER_X)

					ten_blue:decelerate(0.2)
					ten_blue:x(SCREEN_CENTER_X)
				end},


				{301,function()
					ten_blue:linear(0.3)
					ten_blue:rotationx(0)
					ten_blue:zoomy(2)
					ten_blue:zoomx(0.5)
					ten_blue:skewx(0)--Scaled movement. -Kid
					ten_blue:x(SCREEN_CENTER_X-100*ten_height_ratio)

					ten_red:linear(0.3)
					ten_red:rotationx(0)
					ten_red:skewx(0)
					ten_red:zoomy(2)
					ten_red:zoomx(0.5)

					ten_green:linear(0.3)
					ten_green:rotationx(0)
					ten_green:skewx(0)
					ten_green:zoomy(2)
					ten_green:zoomx(0.5)
					ten_green:x(SCREEN_CENTER_X+100*ten_height_ratio)

				end},

				{302,function()
					ten_blue:spring(0.5)
					ten_blue:rotationx(0)
					ten_blue:zoomx(1)
					ten_blue:zoomy(1)
					ten_blue:skewx(0)--Scale movement. -Kid
					ten_blue:y(SCREEN_CENTER_Y-3*ten_height_ratio)
					ten_blue:x(SCREEN_CENTER_X)

					ten_red:spring(0.6)
					ten_red:rotationx(0)
					ten_red:skewx(0)
					ten_red:zoomx(1)
					ten_red:zoomy(1)

					ten_green:spring(0.7)
					ten_green:rotationx(0)
					ten_green:skewx(0)
					ten_green:zoomx(1)
					ten_green:zoomy(1)
					ten_green:y(SCREEN_CENTER_Y+3*ten_height_ratio)
					ten_green:x(SCREEN_CENTER_X)

				end},

				{304,function()

					ten_red:decelerate(0.2)--Scale movement. -Kid
					ten_red:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio)-20*ten_height_ratio)

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:bob();--Scale effect magnitude. -Kid
							a:effectclock('bgm');
							a:effectperiod(0.1);
							a:effectmagnitude(10*ten_height_ratio,0,0);
						end
					end

				end},

				{304.5,function()
					ten_green:decelerate(0.2)
					ten_green:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio)+20*ten_height_ratio)


				end},

				{305,function()
					ten_blue:decelerate(0.2)
					ten_blue:x(SCREEN_CENTER_X-160*math.min(ten_height_ratio,ten_width_ratio))

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:stopeffect();
						end
					end
				end},

				{306,function()

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:bob();--Scale effect magnitude. -Kid
							a:effectclock('bgm');
							a:effectperiod(0.1);
							a:effectmagnitude(0,10*ten_height_ratio,0);
						end
					end
				end},

				{307,function()

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:stopeffect();
						end
					end
				end},

				{308,function()
					ten_red:decelerate(0.2)
					ten_red:x(SCREEN_CENTER_X)

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:bob();
							a:effectclock('bgm');
							a:effectperiod(0.1);--Scale effect magnitude. -Kid
							a:effectmagnitude(10*ten_height_ratio,0,0);
						end
					end
				end},

				{308.5,function()
					ten_green:decelerate(0.2)
					ten_green:x(SCREEN_CENTER_X)

					ten_blue:decelerate(0.2)
					ten_blue:x(SCREEN_CENTER_X)
				end},

				{309,function()
					ten_green:linear(0.3)
					ten_green:rotationx(0)
					ten_green:zoomy(2)
					ten_green:zoomx(0.5)
					ten_green:skewx(0)--Scale movement. -Kid
					ten_green:x(SCREEN_CENTER_X-100*ten_height_ratio)

					ten_blue:linear(0.3)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomy(2)
					ten_blue:zoomx(0.5)

					ten_red:linear(0.3)
					ten_red:rotationx(0)
					ten_red:skewx(0)
					ten_red:zoomy(2)
					ten_red:zoomx(0.5)
					ten_red:x(SCREEN_CENTER_X+100*ten_height_ratio)

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:stopeffect();
						end
					end

				end},

				{310,function()
					ten_green:spring(0.5)
					ten_green:rotationx(0)
					ten_green:zoomx(1)
					ten_green:zoomy(1)
					ten_green:skewx(0)--Scale movement. -Kid
					ten_green:y(SCREEN_CENTER_Y-3*ten_height_ratio)
					ten_green:x(SCREEN_CENTER_X)

					ten_blue:spring(0.6)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomx(1)
					ten_blue:zoomy(1)

					ten_red:spring(0.7)
					ten_red:rotationx(0)
					ten_red:skewx(0)
					ten_red:zoomx(1)
					ten_red:zoomy(1)
					ten_red:y(SCREEN_CENTER_Y+3*ten_height_ratio)
					ten_red:x(SCREEN_CENTER_X)

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:bob();
							a:effectclock('bgm');
							a:effectperiod(0.1);--Scale effect magnitude. -Kid
							a:effectmagnitude(0,10*ten_height_ratio,0);
						end
					end

				end},

				{311,function()

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:stopeffect();
						end
					end
				end},

				{312,function()
					ten_green:decelerate(0.2)--Scaled movement. -Kid
					ten_green:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio)+30*ten_height_ratio)

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:bob();
							a:effectclock('bgm');
							a:effectperiod(0.1);--Scale effect magnitude. -Kid
							a:effectmagnitude(10*ten_height_ratio,0,0);
						end
					end

				end},

				{312.5,function()
					ten_blue:decelerate(0.2)
					ten_blue:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio))
				end},

				{313,function()
					ten_red:decelerate(0.2)
					ten_red:x(SCREEN_CENTER_X+160*math.min(ten_height_ratio,ten_width_ratio)-30*ten_height_ratio)

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:stopeffect();
						end
					end
				end},

				{314,function()
					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:bob();
							a:effectclock('bgm');
							a:effectperiod(0.1);--Scale effect magnitude. -Kid
							a:effectmagnitude(0,10*ten_height_ratio,0);
						end
					end
				end},



				{315,function()

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:stopeffect();
						end
					end
				end},

				{316,function()
					ten_green:decelerate(0.2)
					ten_green:x(SCREEN_CENTER_X)

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:bob();
							a:effectclock('bgm');
							a:effectperiod(0.1);--Scale effect magnitude. -Kid
							a:effectmagnitude(10*ten_height_ratio,0,0);
						end
					end
				end},

				{316.5,function()
					ten_red:decelerate(0.2)
					ten_red:x(SCREEN_CENTER_X)

					ten_blue:decelerate(0.2)
					ten_blue:x(SCREEN_CENTER_X)
				end},

				{317,function()
					ten_red:linear(0.3)
					ten_red:rotationx(0)
					ten_red:zoomy(2)
					ten_red:zoomx(0.5)
					ten_red:skewx(0)--Scaled movement. -Kid
					ten_red:x(SCREEN_CENTER_X-100*ten_height_ratio)

					ten_green:linear(0.3)
					ten_green:rotationx(0)
					ten_green:skewx(0)
					ten_green:zoomy(2)
					ten_green:zoomx(0.5)

					ten_blue:linear(0.3)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomy(2)
					ten_blue:zoomx(0.5)
					ten_blue:x(SCREEN_CENTER_X+100*ten_height_ratio)

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:bob();
							a:effectclock('bgm');
							a:effectperiod(0.1);--Scaled effect magnitude. -Kid
							a:effectmagnitude(0,10*ten_height_ratio,0);
						end
					end

				end},

				{318,function()
					ten_red:spring(0.5)
					ten_red:rotationx(0)
					ten_red:zoomx(1)
					ten_red:zoomy(1)
					ten_red:skewx(0)--Scaled movement. -Kid
					ten_red:y(SCREEN_CENTER_Y-3*ten_height_ratio)
					ten_red:x(SCREEN_CENTER_X)

					ten_green:spring(0.6)
					ten_green:rotationx(0)
					ten_green:skewx(0)
					ten_green:zoomx(1)
					ten_green:zoomy(1)

					ten_blue:spring(0.7)
					ten_blue:rotationx(0)
					ten_blue:skewx(0)
					ten_blue:zoomx(1)
					ten_blue:zoomy(1)
					ten_blue:y(SCREEN_CENTER_Y+3*ten_height_ratio)
					ten_blue:x(SCREEN_CENTER_X)

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:bob();
							a:effectclock('bgm');
							a:effectperiod(0.1);--Scaled effect magnitude. -Kid
							a:effectmagnitude(10*ten_height_ratio,0,0);
						end
					end

				end},

				{319,function()

					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:stopeffect();
						end
					end

					ten_red:stoptweening()
					ten_red:linear(60/148)
					ten_red:x(0);
					ten_red:y(SCREEN_HEIGHT);
					ten_red:rotationz(-360);--Use negative rotation because the original had negate basezoomy. -Kid
					ten_red:zoom(0);
					ten_green:stoptweening();
					ten_green:linear(60/148)
					ten_green:x(SCREEN_CENTER_X);
					ten_green:y(0);
					ten_green:rotationz(-360);--Use negative rotation because the original had negate basezoomy. -Kid
					ten_green:zoom(0);
					ten_blue:stoptweening();
					ten_blue:linear(60/148)
					ten_blue:x(SCREEN_WIDTH);
					ten_blue:y(SCREEN_HEIGHT);
					ten_blue:rotationz(-360);--Use negative rotation because the original had negate basezoomy. -Kid
					ten_blue:zoom(0);

					ten_mario:linear(60/148);
					ten_mario:rotationz(360);
					ten_mario:zoom(ten_height_ratio):zoomx(ten_width_ratio)--Make it fill screen. -Kid

				end},


				{320,function() ten_gamestate=1 end},
				{341,function() ten_gamestate=0 end},

				{341,function()
					ten_mario:decelerate(140/148);
					ten_mario:addy(-SCREEN_HEIGHT);--Use SCREEN variables. -Kid
					ten_mario:sleep(0);
					ten_mario:zoom(0);

					ten_red:rotationz(0);
					ten_green:rotationz(0);
					ten_blue:rotationz(0);

					ten_red:x(SCREEN_CENTER_X);
					ten_red:y(SCREEN_CENTER_Y);
					ten_green:x(SCREEN_CENTER_X);
					ten_green:y(SCREEN_CENTER_Y);
					ten_blue:x(SCREEN_CENTER_X);
					ten_blue:y(SCREEN_CENTER_Y);

					ten_red:zoom(1);
					ten_green:zoom(1);
					ten_blue:zoom(1);

					ten_red:stopeffect();
					ten_green:stopeffect();
					ten_blue:stopeffect();

				end},

				{360,function()
					ten_red:decelerate(240/148);
					ten_green:decelerate(240/148);
					ten_blue:decelerate(240/148);
					ten_red:rotationz(-360)--Use negative rotation because the original had neagtive basezoomy. -Kid
					ten_green:rotationz(-2*360)
					ten_blue:rotationz(-3*360)
				end},


				{378.52,function()
					ten_freezef1:visible(false)

				end},

				{379.0,function()
					ten_freezef2:visible(false)

					for i=1,2 do
						for j=1,10 do
							_G['ten_frozen'..i]:visible(true)

							if i==2 and j==1 then
								_G['ten_frozen'..i]:sleep(0.01)
							end
							_G['ten_frozen'..i]:diffusealpha(1)
							_G['ten_frozen'..i]:sleep(0.02)
							_G['ten_frozen'..i]:diffusealpha(0)
							_G['ten_frozen'..i]:sleep(0.02)


						end
					end
				end},





				{362-.1,function()

					for pn=1,2 do
						if pn == 2 then d = -1 end
						local a = _G['P'..pn]
						if a then
							a:sleep(0);
							a:x(SCREEN_CENTER_X);
							a:y(SCREEN_CENTER_Y);
							a:sleep(0);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);--Scaled movement. -Kid
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
							a:linear(30/148);
							a:addy(64*ten_height_ratio);
							a:sleep(0);
							a:addy(-64*ten_height_ratio);
						end
					end

				end},

				{364,function()
					MESSAGEMAN:Broadcast("BeginShake")--This is what kicks off the joint movement. -Kid
					ten_rgbcont:visible(false);
					ten_shakecont:visible(true);
					ten_shake0:visible(true);
					ten_shake1:visible(true);
					ten_shake2:visible(true);

					--Positioning already done when setting up AMV and proxies. -Kid
					--ten_shake0:x(-SCREEN_CENTER_X)
					--ten_shake1:x(SCREEN_CENTER_X)
					--ten_shake2:x(SCREEN_CENTER_X*3)

					--ten_wacky0:x(-SCREEN_CENTER_X)
					--ten_wacky1:x(SCREEN_CENTER_X)
					--ten_wacky2:x(SCREEN_CENTER_X*3)

					ten_fgCover:diffusealpha(1)
					ten_fgCover:linear(0.5)
					ten_fgCover:diffusealpha(0)
					ten_bgCover:diffusealpha(0)



				end},

				{393,function()
					ten_shakecont:decelerate(3);
					ten_shakecont:x(-200*ten_height_ratio);--Scale movement. -Kid
					ten_shakecont:accelerate(3);
					ten_shakecont:x(300*ten_height_ratio);
					ten_shakecont:spring(4);
					ten_shakecont:x(0);
				end},

				{396,function()
					ten_tilesa:visible(true);
					ten_tilesaprox:visible(true);--Include proxy. -Kid
				end},


				{424.2,function()
					--ten_wacky0:playanimation('default',0.03);
					--ten_wacky1:playanimation('default',0.03);
					--ten_wacky2:playanimation('default',0.03);
					MESSAGEMAN:Broadcast("BeginWacky")
					ten_stopjoints('ten_shake_j')
					ten_wacky0:visible(true);
					ten_wacky1:visible(true);
					ten_wacky2:visible(true);
					ten_shake0:visible(false);
					ten_shake1:visible(false);
					ten_shake2:visible(false);
					ten_shakecont:visible(true);
					ten_bgCover:diffusealpha(0.5)

					MESSAGEMAN:Broadcast('WhiteFlash');

					ten_helperq:queuecommand('StartWacky')

					ten_tilesa:visible(true);
					ten_tilesaprox:visible(true);--Include proxy. -Kid

				end},

				{460,function()
					ten_wacky0:visible(false);
					ten_wacky1:visible(false);
					ten_wacky2:visible(false);

					ten_tilesa:visible(false);
					ten_tilesaprox:visible(false);--Include proxy. -Kid

					MESSAGEMAN:Broadcast('RedFlash');
					MESSAGEMAN:Broadcast('EndText');
				end},

				{467,function()
					--ten_wacky0:playanimation('default',0);
					--ten_wacky1:playanimation('default',0);
					--ten_wacky2:playanimation('default',0);
					ten_stopjoints('ten_wacky_j')

				end},



				------------------------------------------------
				----------------shit about to get tiled---------
				------------------------------------------------

				{156,function()
					ten_tilesa:visible(true);
					ten_tilesaprox:visible(true);--Include proxy. -Kid



				end,true},

				{156,function()
					ten_bye(ten_wa_tiles2d[ten_pos[1] ][ten_pos[2] ]);
					ten_bye(ten_wa_tiles2d[ten_pos[1] ][ten_pos[2]+(ten_wa_hstrips/2) ]);
					ten_bye(ten_wa_tiles2d[ten_pos[3] ][ten_pos[4] ]);
					ten_bye(ten_wa_tiles2d[ten_pos[3] ][ten_pos[4]+(ten_wa_hstrips/2) ]);

					shame_head1:x((ten_pos[2]*(sw/(ten_wa_hstrips)))-(sw/(ten_wa_hstrips*2)))
					shame_head1:y((ten_pos[1]*(sh/(ten_wa_vstrips)))-(sh/(ten_wa_vstrips*2)))
					shame_head2:x(((ten_pos[2]+ten_wa_hstrips/2)*(sw/(ten_wa_hstrips)))-(sw/(ten_wa_hstrips*2)))
					shame_head2:y((ten_pos[1]*(sh/(ten_wa_vstrips)))-(sh/(ten_wa_vstrips*2)))

					--[[
					shame_head3:x((ten_pos[4]*(sw/(ten_wa_hstrips)))-(sw/(ten_wa_hstrips*2)))
					shame_head3:y((ten_pos[3]*(sh/(ten_wa_vstrips)))-(sh/(ten_wa_vstrips*2)))
					shame_head4:x(((ten_pos[4]+ten_wa_hstrips/2)*(sw/(ten_wa_hstrips)))-(sw/(ten_wa_hstrips*2)))
					shame_head4:y((ten_pos[3]*(sh/(ten_wa_vstrips)))-(sh/(ten_wa_vstrips*2)))
					]]

					for pn=1,2 do
						_G['shame_head'..pn]:zoom(0)--Scale zooms. -Kid
						_G['shame_head'..pn]:diffusealpha(0);
						_G['shame_head'..pn]:linear(120/148);
						_G['shame_head'..pn]:diffusealpha(1);
						_G['shame_head'..pn]:zoom(0.2*ten_height_ratio);
						_G['shame_head'..pn]:rotationz(360);
						_G['shame_head'..pn]:sleep(0);
						_G['shame_head'..pn]:rotationz(0);
					end
				end},

				{174,function()

					ten_pos = {5,1,4,(ten_wa_hstrips/2)}

					ten_bye(ten_wa_tiles2d[ten_pos[1] ][ten_pos[2] ],2);
					ten_bye(ten_wa_tiles2d[ten_pos[1] ][ten_pos[2]+(ten_wa_hstrips/2) ],2);
					ten_bye(ten_wa_tiles2d[ten_pos[3] ][ten_pos[4] ],2);
					ten_bye(ten_wa_tiles2d[ten_pos[3] ][ten_pos[4]+(ten_wa_hstrips/2) ],2);

					--[[
					shame_head1:x((ten_pos[2]*(sw/(ten_wa_hstrips)))-(sw/(ten_wa_hstrips*2)))
					shame_head1:y((ten_pos[1]*(sh/(ten_wa_vstrips)))-(sh/(ten_wa_vstrips*2)))
					shame_head2:x(((ten_pos[2]+ten_wa_hstrips/2)*(sw/(ten_wa_hstrips)))-(sw/(ten_wa_hstrips*2)))
					shame_head2:y((ten_pos[1]*(sh/(ten_wa_vstrips)))-(sh/(ten_wa_vstrips*2)))
					]]

					shame_head3:x((ten_pos[4]*(sw/(ten_wa_hstrips)))-(sw/(ten_wa_hstrips*2)))
					shame_head3:y((ten_pos[3]*(sh/(ten_wa_vstrips)))-(sh/(ten_wa_vstrips*2)))
					shame_head4:x(((ten_pos[4]+ten_wa_hstrips/2)*(sw/(ten_wa_hstrips)))-(sw/(ten_wa_hstrips*2)))
					shame_head4:y((ten_pos[3]*(sh/(ten_wa_vstrips)))-(sh/(ten_wa_vstrips*2)))

					for pn=3,4 do
						_G['shame_head'..pn]:zoom(0)--Scaled zooms. -Kid
						_G['shame_head'..pn]:diffusealpha(0);
						_G['shame_head'..pn]:linear(120/148);
						_G['shame_head'..pn]:diffusealpha(1);
						_G['shame_head'..pn]:zoom(0.2*ten_height_ratio);
						_G['shame_head'..pn]:rotationz(360);
						_G['shame_head'..pn]:sleep(0);
						_G['shame_head'..pn]:rotationz(0);
					end

				end},

				{160,function()
					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:pulse();
							a:effectclock('bgm');
							a:effectperiod(1);
							a:effectmagnitude(1,1.2,0);
							a:effectcolor1(1.3,0.7,1,1);
							a:effectcolor2(0.8,1.1,1,1);
						end
					end
				end},
				{192,function()
					for pn=1,2 do
						local a = _G['P'..pn]
						if a then
							a:stopeffect();
						end
					end
				end},

			}

			ten_pos = {ten_wa_vstrips-3,1,ten_wa_vstrips-4,ten_wa_hstrips/2}

			ten_shame_cmove1 = 1;
			ten_shame_moves1 = {
				{160,3,1},
				{162,3,1},
				{164,3,1},
				{166,3,1},
				{168,3,1},
				{170,2,1},
				{172,-2,1},
				{174,-1,1},
				--[[
				{176,3,1},
				{178,3,1},
				{180,3,1},
				{182,3,1},
				{184,3,1},
				{186,2,1},
				{188,-2,1},
				{190,-2,1},
				]]
			}
			ten_shame_cmove2 = 1;
			ten_shame_moves2 = {
				--[[
				{160,0,1},
				{162,0,1},
				{164,0,1},
				{166,0,1},
				{168,0,1},
				{170,1,1},
				{172,-2,1},
				{174,-1,1},
				]]
				{176,0,1},
				{178,0,1},
				{180,0,1},
				{182,0,1},
				{184,0,1},
				{186,1,1},
				{188,-2,1},
				{190,-2,1},
			}

			mod_insert(224,255.5,'*.2 1000 attenuatex','end')
			mod_insert(255.5,260,'*3 no attenuatex','end')

			mod_message(15-.05,function()
				ten_shame_march:basezoomx(.8);
				ten_shame_march:basezoomy(.8);
				ten_shame_march:linear(60/148)
				ten_shame_march:rotationz(360);
				ten_shame_march:zoom(ten_height_ratio);--Scale zoom. -Kid
				ten_shame_march:sleep(0);
				ten_shame_march:rotationz(0);
			end)

			for i=16,29,2 do
				mod_message(i-.05,function()
					ten_shame_march:setstate(1)--Scale zooms and movement. -Kid
					ten_shame_march:zoom(1.04*ten_height_ratio);
					ten_shame_march:addy(-3*ten_height_ratio);
					ten_shame_march:linear(0.1);
					ten_shame_march:addy(3*ten_height_ratio);
					ten_shame_march:zoom(ten_height_ratio);
				end)
				mod_message(i+1-.05,function()
					ten_shame_march:setstate(0)
					ten_shame_march:zoom(1.04*ten_height_ratio);
					ten_shame_march:addy(-3*ten_height_ratio);
					ten_shame_march:linear(0.1);
					ten_shame_march:addy(3*ten_height_ratio);
					ten_shame_march:zoom(ten_height_ratio);
				end)
			end

			mod_message(30-.05,function()
				ten_shame_march:setstate(1)--Scale zooms and movement. -Kid
				ten_shame_march:zoom(1.04*ten_height_ratio);
				ten_shame_march:addy(-3*ten_height_ratio);
				ten_shame_march:linear(0.1);
				ten_shame_march:addy(3*ten_height_ratio);
				ten_shame_march:zoom(ten_height_ratio);
			end)

			mod_message(31,function()
				ten_shame_march:linear(60/148)
				ten_shame_march:rotationz(360);
				ten_shame_march:zoom(0);
				ten_shame_march:sleep(0);
				ten_shame_march:rotationz(0);
			end)

			function ten_bye(obj,dur)
				if not dur then dur = 4 end
				obj:linear(dur*60/148);
				obj:rotationx(360);
				obj:rotationy(360);
				obj:rotationz(360);
				obj:zoom(0);
			end

			function ten_swap(a,b,dur)
				if not a or not b or not dur or (dur and dur<0) then
					return false
				end
				local xs = {a:GetX(),b:GetX()};
				local ys = {a:GetY(),b:GetY()};

				a:linear(dur*60/148);
				a:x(xs[2]);
				a:y(ys[2]);
				b:linear(dur*60/148);
				b:x(xs[1]);
				b:y(ys[1]);

			end

			function mimi_shuffle(t)
				local n = table.getn(t)

				while n >= 2 do
					-- n is now the last pertinent index
					local k = math.random(n) -- 1 <= k <= n
					-- Quick swap
					t[n], t[k] = t[k], t[n]
					n = n - 1
				end

				return t
			end

			if not ten_wangus then
				ten_wangus = {}
				for i=1,120 do
					table.insert(ten_wangus,i)
				end
				mimi_shuffle(ten_wangus)
			end

			for i=428,459,2 do
				local p = i-427
				mod_message(i,function()
					ten_bye( ten_wa_tiles[ ten_wangus[p] ], 2 )
					ten_bye( ten_wa_tiles[ ten_wangus[p+1] ], 2 )
				end)
			end

			function ten_shame_jump(dir,dur,num)

				if not num then num = 1 end

				_G['shame_heads'..num]:decelerate(dur*0.5*60/148);
				_G['shame_heads'..num]:addy(-60*ten_height_ratio);--Scaled movement. -Kid
				_G['shame_heads'..num]:accelerate(dur*0.5*60/148);
				_G['shame_heads'..num]:addy(60*ten_height_ratio);

				local shn = (num-1)*2

				if ten_pos[shn+2] == 1 and dir == 0 then return false end
				if ten_pos[shn+2] == (ten_wa_hstrips/2) and dir == 3 then return false end
				if ten_pos[shn+1] == 1 and dir == 2 then return false end
				if ten_pos[shn+1] == (ten_wa_vstrips) and dir == 1 then return false end

				local a = ten_wa_tiles2ds[ten_pos[shn+1] ][ten_pos[shn+2] ]
				local c = ten_wa_tiles2ds[ten_pos[shn+1] ][ten_pos[shn+2]+ten_wa_hstrips/2 ]
				local sp1 = {ten_pos[shn+1],ten_pos[shn+2]}

				if dir == 0 then
					ten_pos[shn+2] = ten_pos[shn+2]-1;
				elseif dir == 3 then
					ten_pos[shn+2] = ten_pos[shn+2]+1;
				elseif dir == 1 then
					ten_pos[shn+1] = ten_pos[shn+1]+1;
				elseif dir == 2 then
					ten_pos[shn+1] = ten_pos[shn+1]-1;
				end

				local b = ten_wa_tiles2ds[ten_pos[shn+1] ][ten_pos[shn+2] ]
				local d = ten_wa_tiles2ds[ten_pos[shn+1] ][ten_pos[shn+2]+ten_wa_hstrips/2 ]
				local sp2 = {ten_pos[shn+1],ten_pos[shn+2]}

				ten_swap(a,b,dur);
				ten_swap(c,d,dur);

				local temp = ten_wa_tiles2ds[sp1[1] ][sp1[2] ];
				ten_wa_tiles2ds[sp1[1] ][sp1[2] ] = ten_wa_tiles2ds[sp2[1] ][sp2[2] ];
				ten_wa_tiles2ds[sp2[1] ][sp2[2] ] = temp;
				local temp2 = ten_wa_tiles2ds[sp1[1] ][sp1[2]+ten_wa_hstrips/2 ];
				ten_wa_tiles2ds[sp1[1] ][sp1[2]+ten_wa_hstrips/2 ] = ten_wa_tiles2ds[sp2[1] ][sp2[2]+ten_wa_hstrips/2 ];
				ten_wa_tiles2ds[sp2[1] ][sp2[2]+ten_wa_hstrips/2 ] = temp2;


				_G['shame_head'..(shn+1)]:finishtweening();
				_G['shame_head'..(shn+1)]:linear(dur*60/148);
				_G['shame_head'..(shn+1)]:x((ten_pos[shn+2]*(sw/(ten_wa_hstrips)))-(sw/(ten_wa_hstrips*2)))
				_G['shame_head'..(shn+1)]:y((ten_pos[shn+1]*(sh/(ten_wa_vstrips)))-(sh/(ten_wa_vstrips*2)))
				_G['shame_head'..(shn+2)]:finishtweening();
				_G['shame_head'..(shn+2)]:linear(dur*60/148);
				_G['shame_head'..(shn+2)]:x(((ten_pos[shn+2]+ten_wa_hstrips/2)*(sw/(ten_wa_hstrips)))-(sw/(ten_wa_hstrips*2)))
				_G['shame_head'..(shn+2)]:y((ten_pos[shn+1]*(sh/(ten_wa_vstrips)))-(sh/(ten_wa_vstrips*2)))
			end

			for i=96,155,4 do
				table.insert(mod_actions,{i,'ScreenRot'});
				table.insert(mod_actions,{i,'QDDrop'});
			end
			for i=100,155,4 do
				table.insert(mod_actions,{i-.3,'DoBumpy2'});--Simulates the simple_m0d2 of bumpy. -Kid
				table.insert(mod_actions,{i-.2,'NoteVib'});
			end
			for i=104,155,8 do
				if i~=112 then
					table.insert(mod_actions,{i-.4,'VibLeft'});
				end
				table.insert(mod_actions,{i+4-.4,'VibUp'});
			end

			ten_srd = 3;
			ten_srf = 1;

			for i=192,206,4 do
				mod_message(i,function()
					for t=49-12,60-12 do--Use SCREEN variables. -Kid
						ten_wa_tiles[t]:decelerate(60/140)
						ten_wa_tiles[t]:addx(-SCREEN_WIDTH/6);
						ten_wa_tiles[t]:sleep(60/140)
						ten_wa_tiles[t]:decelerate(60/140)
						ten_wa_tiles[t]:addx(SCREEN_WIDTH/6);
					end
					for t=85-12,96-12 do
						ten_wa_tiles[t]:decelerate(60/140)
						ten_wa_tiles[t]:addx(SCREEN_WIDTH/6);
						ten_wa_tiles[t]:sleep(60/140)
						ten_wa_tiles[t]:decelerate(60/140)
						ten_wa_tiles[t]:addx(-SCREEN_WIDTH/6);
					end
				end)
			end

			for i=208,223,2 do
				mod_message(i,function()
					for t=49-12,60-12 do--Use SCREEN variables. -Kid
						ten_wa_tiles[t]:accelerate(30/140)
						ten_wa_tiles[t]:addx(-SCREEN_WIDTH/12)
						ten_wa_tiles[t]:decelerate(30/140)
						ten_wa_tiles[t]:addx(-SCREEN_WIDTH/12)
						ten_wa_tiles[t]:accelerate(30/140)
						ten_wa_tiles[t]:addx(SCREEN_WIDTH/12);
						ten_wa_tiles[t]:decelerate(30/140)
						ten_wa_tiles[t]:addx(SCREEN_WIDTH/12);
					end
					for t=85-12,96-12 do
						ten_wa_tiles[t]:accelerate(30/140)
						ten_wa_tiles[t]:addx(SCREEN_WIDTH/12)
						ten_wa_tiles[t]:decelerate(30/140)
						ten_wa_tiles[t]:addx(SCREEN_WIDTH/12)
						ten_wa_tiles[t]:accelerate(30/140)
						ten_wa_tiles[t]:addx(-SCREEN_WIDTH/12);
						ten_wa_tiles[t]:decelerate(30/140)
						ten_wa_tiles[t]:addx(-SCREEN_WIDTH/12);
					end
				end)
			end

			mod_message(223,function()
				for t=1,table.getn(ten_wa_tiles) do
					ten_wa_tiles[t]:stoptweening();
					ten_wa_tiles[t]:rotationx(0);
					ten_wa_tiles[t]:rotationy(0);
					ten_wa_tiles[t]:rotationz(0);
					ten_wa_tiles[t]:y(ten_wa_tileObjects[t].OrigY);
					ten_wa_tiles[t]:decelerate(60/140)
					ten_wa_tiles[t]:x(ten_wa_tileObjects[t].OrigX);
					ten_wa_tiles[t]:zoom(1);
				end
			end)

			mod_message(396,function()
				--wenis
				local rng = {-.3,.1,-.2,.3,-.1,.2,-.1,.3,-.1,.2,-.1,.2}
				for j=1,10 do
					for i=1,12 do
						ten_wa_tiles2d[j][i]:linear(10)--Scale movement. -Kid
						ten_wa_tiles2d[j][i]:addy(rng[i]*120*ten_height_ratio)
					end
				end
			end)

			mod_message(424.2,function()
				for t=1,table.getn(ten_wa_tiles) do
					ten_wa_tiles[t]:stoptweening();
					ten_wa_tiles[t]:rotationx(0);
					ten_wa_tiles[t]:rotationy(0);
					ten_wa_tiles[t]:rotationz(0);
					ten_wa_tiles[t]:y(ten_wa_tileObjects[t].OrigY);
					ten_wa_tiles[t]:x(ten_wa_tileObjects[t].OrigX);
					ten_wa_tiles[t]:zoom(1);
				end
			end)

			--Used column-specific tiny and converted to SM5 equivalents. -Kid
			mod_insert(158,224,'*0.145 12.5 flip, *0.2736 23.45 tiny1, *0.2736 23.45 tiny2, *0.2736 23.45 tiny3, *0.2736 23.45 tiny4','end');
			mod_insert(223,225,'*0.29 no flip, *0.5472 no tiny1, *0.5472 no tiny2, *0.5472 no tiny3, *0.5472 no tiny4','end');

			--function switcheroo_add(beat,which,speed,len,pn)

			mod_insert(187,230,'*10000 60 suddenoffset','end');
			mod_insert(188.4,223,'*3 sudden','end');

			mod_insert(160,191,'*'..3.5*ten_sdwidth_ratio..' '..150*ten_sdwidth_ratio..' bumpy','end');--Scaled Bumpy. -Kid

			for i=0,7 do
				mod_insert(160+4*i,4,'*4 150 distant','len');
				mod_insert(161+4*i,4,'*2 no distant','len');
			end

			switcheroo_width = 0.75

			switcheroo_add(208-.1,'urld',2.35,2)
			switcheroo_add(209-.1,'rudl',2.35,2)
			switcheroo_add(210-.1,'dlru',2.35,2)
			switcheroo_add(211-.1,'ldur',2.35,2)
			switcheroo_add(212-.1,'dlru',2.35,2)
			switcheroo_add(213-.1,'rudl',2.35,2)
			switcheroo_add(214-.1,'urld',2.35,2)
			switcheroo_add(215-.1,'ldur',2.35,2)
			switcheroo_add(216-.1,'urld',2.35,2)
			switcheroo_add(217-.1,'rudl',2.35,2)
			switcheroo_add(218-.1,'dlru',2.35,2)
			switcheroo_add(219-.1,'ldur',2.35,2)

			switcheroo_add(220-.1,'urld',6,2)
			switcheroo_add(220.5-.1,'rudl',6,2)
			switcheroo_add(221-.1,'dlru',6,2)
			switcheroo_add(221.5-.1,'ldur',6,2)
			switcheroo_add(222-.1,'rudl',6,2)
			switcheroo_add(222.5-.1,'dlru',6,2)

			switcheroo_width = 1;
			switcheroo_add(223-.1,'ldur',2.35,2)

---------------------------------------------------------------------------------------
----------------------DON'T TOUCH IT KIDDO---------------------------------------------
---------------------------------------------------------------------------------------

			function modtable_compare(a,b)
				return a[1] < b[1]
			end

			if table.getn(mod_actions) > 1 then
				table.sort(mod_actions, modtable_compare)
			end

			self:queuecommand('Update');

---------------------------------------------------------------------------------------
----------------------END DON'T TOUCH IT KIDDO-----------------------------------------
---------------------------------------------------------------------------------------

		end,
      UpdateCommand= function(self)

			if GAMESTATE:GetSongBeat()>=0 and not checked then

				----------------------
				-- grab everything? --
				----------------------
				if SCREENMAN:GetTopScreen():GetChild('LifeP1') then LifeP1 = SCREENMAN:GetTopScreen():GetChild('LifeP1') end
				if SCREENMAN:GetTopScreen():GetChild('LifeP2') then LifeP2 = SCREENMAN:GetTopScreen():GetChild('LifeP2') end
				if SCREENMAN:GetTopScreen():GetChild('ScoreP1') then ScoreP1 = SCREENMAN:GetTopScreen():GetChild('ScoreP1') end
				if SCREENMAN:GetTopScreen():GetChild('ScoreP2') then ScoreP2 = SCREENMAN:GetTopScreen():GetChild('ScoreP2') end
				if SCREENMAN:GetTopScreen():GetChild('BPMDisplay') then BPMDisplay = SCREENMAN:GetTopScreen():GetChild('BPMDisplay') end
				if SCREENMAN:GetTopScreen():GetChild('LifeFrame') then LifeFrame = SCREENMAN:GetTopScreen():GetChild('LifeFrame') end
				if SCREENMAN:GetTopScreen():GetChild('ScoreFrame') then ScoreFrame = SCREENMAN:GetTopScreen():GetChild('ScoreFrame') end
				if SCREENMAN:GetTopScreen():GetChild('Lyrics') then Lyrics = SCREENMAN:GetTopScreen():GetChild('Lyrics') end
				if SCREENMAN:GetTopScreen():GetChild('SongForeground') then SongForeground = SCREENMAN:GetTopScreen():GetChild('SongForeground') end
				if SCREENMAN:GetTopScreen():GetChild('SongBackground') then SongBackground = SCREENMAN:GetTopScreen():GetChild('SongBackground') end
				if SCREENMAN:GetTopScreen():GetChild('Overlay') then Overlay = SCREENMAN:GetTopScreen():GetChild('Overlay') end
				if SCREENMAN:GetTopScreen():GetChild('Underlay') then Underlay = SCREENMAN:GetTopScreen():GetChild('Underlay') end

				--------------------------
				-- hide everything? y/n --
				--------------------------
				mod_hideall = true;
				if mod_hideall == true then
					if LifeFrame then LifeFrame:visible(false) end
					--I won't let this break if only one player exists.
					if SCREENMAN:GetTopScreen():GetChild('LifeP1') then SCREENMAN:GetTopScreen():GetChild('LifeP1'):visible(false) end
					if SCREENMAN:GetTopScreen():GetChild('LifeP2') then SCREENMAN:GetTopScreen():GetChild('LifeP2'):visible(false) end
					if SCREENMAN:GetTopScreen():GetChild('ScoreP1') then SCREENMAN:GetTopScreen():GetChild('ScoreP1'):visible(false) end
					if SCREENMAN:GetTopScreen():GetChild('ScoreP2') then SCREENMAN:GetTopScreen():GetChild('ScoreP2'):visible(false) end
					if SCREENMAN:GetTopScreen():GetChild('BPMDisplay') then SCREENMAN:GetTopScreen():GetChild('BPMDisplay'):visible(false) end
					if Overlay then Overlay:visible(false) end
					if Underlay then Underlay:visible(false) end
					if ScoreFrame then ScoreFrame:visible(false) end
					--Some times, we need extra precautions. Not every theme has these.
					if SCREENMAN:GetTopScreen():GetChild('SongMeterDisplayP1') then SCREENMAN:GetTopScreen():GetChild("SongMeterDisplayP1"):visible(false) end
					if SCREENMAN:GetTopScreen():GetChild('SongMeterDisplayP2') then SCREENMAN:GetTopScreen():GetChild("SongMeterDisplayP2"):visible(false) end
					if SCREENMAN:GetTopScreen():GetChild('StepsDisplayP1') then SCREENMAN:GetTopScreen():GetChild('StepsDisplayP1'):visible(false) end
					if SCREENMAN:GetTopScreen():GetChild('StepsDisplayP2') then SCREENMAN:GetTopScreen():GetChild('StepsDisplayP2'):visible(false) end
					if SCREENMAN:GetTopScreen():GetChild('StageDisplay') then
					SCREENMAN:GetTopScreen():GetChild('StageDisplay'):visible(false) end
					if SCREENMAN:GetTopScreen():GetChild('SongTitle') then
					SCREENMAN:GetTopScreen():GetChild('SongTitle'):visible(false) end
					--Old Lambda-specific things. -Kid
					if SCREENMAN:GetTopScreen():GetChild('LifeMeterBarP1') then
					SCREENMAN:GetTopScreen():GetChild('LifeMeterBarP1'):visible(false) end
					if SCREENMAN:GetTopScreen():GetChild('LifeMeterBarP2') then
					SCREENMAN:GetTopScreen():GetChild('LifeMeterBarP2'):visible(false) end
				end

				mod_plr[1] = SCREENMAN:GetTopScreen():GetChild('PlayerP1');
				mod_plr[2] = SCREENMAN:GetTopScreen():GetChild('PlayerP2');

				for i,v in pairs(mod_plr) do
					--Instead of doing nothing, I'll check for whether or not we're in 5.2. -Kid
					if not v:GetChild('NoteField').set_skin then
						--We're 5.1. Grab some metrics. -Kid
						ten_recepnorm = THEME:GetMetric("Player","ReceptorArrowsYStandard")
					end
				end

				P1 = SCREENMAN:GetTopScreen():GetChild('PlayerP1');
				P2 = SCREENMAN:GetTopScreen():GetChild('PlayerP2');
				if P1 then
					jud1 = P1:GetChild('Judgment');
					com1 = P1:GetChild('Combo');
					PWRAP1 = P1:AddWrapperState();--You had me at "zoomz". -Kid
				end
				if P2 then
					jud2 = P2:GetChild('Judgment');
					com2 = P2:GetChild('Combo');
					PWRAP2 = P2:AddWrapperState();
				end
				--aliases for old times sake

				screen = SCREENMAN:GetTopScreen();
				screen:AddInputCallback( InputHandler )--The fun begins... -Kid
				MESSAGEMAN:Broadcast("SetupLuafield")--Initialize things. -Kid
				checked = true;
			end

---------------------------------------------------------------------------------------
----------------------TOUCH THIS-------------------------------------------------------
---------------------------------------------------------------------------------------



			local beat = GAMESTATE:GetSongBeat()

			if beat > mod_firstSeenBeat and beat > warningbeat and beat < 80.5 then
				if beat < warningbeat+2 then
					ten_spawnwarn();
				end
				if beat < 64 then
					warningbeat = warningbeat+4;
				else
					warningbeat = warningbeat+2;
				end
			end

			if beat>mod_firstSeenBeat+1 then
				for shame=1,2 do
					if _G['ten_shame_cmove'..shame] <table.getn(_G['ten_shame_moves'..shame] )
						and beat > _G['ten_shame_moves'..shame] [_G['ten_shame_cmove'..shame] ][1] then
						if beat < _G['ten_shame_moves'..shame] [_G['ten_shame_cmove'..shame] ][1]+5 then
							if _G['ten_shame_moves'..shame][_G['ten_shame_cmove'..shame] ][2] > -1 then
								ten_shame_jump(_G['ten_shame_moves'..shame] [_G['ten_shame_cmove'..shame] ][2],
									_G['ten_shame_moves'..shame] [_G['ten_shame_cmove'..shame] ][3],shame)
							elseif _G['ten_shame_moves'..shame][_G['ten_shame_cmove'..shame] ][2] == -2 then
								for hd = 1,2 do
									local shn = (shame-1)*2
									_G['shame_head'..(shn+hd)]:linear(60/140);
									_G['shame_head'..(shn+hd)]:zoom(0);
									_G['shame_head'..(shn+hd)]:rotationz(360);
									_G['shame_head'..(shn+hd)]:sleep(0);
									_G['shame_head'..(shn+hd)]:rotationz(0);
								end
							end
						end
						_G['ten_shame_cmove'..shame]  = _G['ten_shame_cmove'..shame] +1;
					end
				end
			end

---------------------------------------------------------------------------------------
----------------------DON'T TOUCH IT KIDDO---------------------------------------------
---------------------------------------------------------------------------------------

			disable = false;
			if disable ~= true and checked then

				-----------------------
				-- Player mod resets --
				-----------------------
				if beat > mod_firstSeenBeat+1 then -- performance coding!! --
					for i=1,2 do
						--GAMESTATE:ApplyGameCommand('mod,clearall',i)
						poptions[i]:FromString('clearall')
						if _G['init_modsp'..i] then
							--GAMESTATE:ApplyGameCommand('mod,'.._G['init_modsp'..i],i)
							poptions[i]:FromString(_G['init_modsp'..i])
						end
					end
				end

				-----------------------
				-- PERFRAME --
				-----------------------

				if beat > mod_firstSeenBeat then -- performance coding!! --

					if ten_gamestate == 1 then
						for pn=1,2 do
							if ten_mario_active[pn] then
								ten_mario_movetimer[pn] = ten_mario_movetimer[pn]-.02

								if ten_mario_movetimer[pn] <= 0 then
									ten_mario_movetimer[pn] = ten_mario_movetimer[pn]+120/148
									_G['ten_mario_pill_p'..pn]:addy(17)
								end

								if _G['ten_mario_pill_p'..pn]:GetY() > 325+17 then
									ten_mario_active[pn] = false;
								end

							end
						end
					end


					if checked and beat<16 then
							local p = 0.25;
							for pn=1,2 do
								if pn == 2 then p = 0.75 end
								local a = _G['P'..pn]
								if a then--Scale positioning and positioning checks. -Kid
									a:y(ten_poswrap(ten_origpos)*ten_height_ratio+ten_jump:GetY()*ten_height_ratio)
									a:x((SCREEN_WIDTH*p)+ten_march:GetX()*ten_height_ratio);
								end
							end
							ten_blur:y(ten_poswrap(ten_origpos)*ten_height_ratio+ten_recepnorm*ten_height_ratio)
							ten_blur:x((SCREEN_WIDTH/2)+ten_march:GetX()*ten_height_ratio);
							--Unscale the zoom because the sprites are already zoomed. -Kid
							ten_blur:zoomy((((240-ten_origpos))/3000)+1);

							if ten_origpos > -20000 then
								ten_origpos = ten_origpos+((240-ten_origpos)/(((240-ten_origpos)/220)+30))
							else
								ten_origpos = ten_origpos+400;
							end

						end

					if beat > mod_firstSeenBeat+1 and checked then

						if beat>16 and beat<32.1 then--Go up to beat 32.2 instead. -Kid
							local p = 0.25
							for pn=1,2 do
								if pn == 2 then p = 0.75 end
								local a = _G['P'..pn]
								if a then--Scale movement. -Kid
									a:y(SCREEN_CENTER_Y+ten_jump:GetY()*ten_height_ratio);
									a:x((SCREEN_WIDTH*p)+ten_march:GetX()*ten_height_ratio);
									a:rotationz(ten_spin:GetX());
								end
							end
						end

						if beat < 158 then
							for pn=1,2 do--Use wrapperstate. -Kid
								local a = _G['PWRAP'..pn]
								if a then
									a:vibrate();
									a:effectmagnitude(ten_vpos:GetX(),ten_vpos:GetX(),ten_vpos:GetX());
								end
							end
							ten_blur:vibrate();
							ten_blur:effectmagnitude(ten_vpos:GetX(),ten_vpos:GetX(),ten_vpos:GetX());
						end

					end

					if beat > 96 and beat < 160 then
						if screen then
							screen:vibrate();
							screen:effectmagnitude(ten_svib:GetX(),ten_svib:GetY(),0);
						end
					end

					if checked and beat<10 then
						--[[if DIVINE_ENTITY then for i = 1,5 do
							DIVINE_ENTITY:GetTapNotes(nil, nil, 'Clone ' .. i):effectmagnitude(0,0,0);
						end end]]
						--Replaces DivinEntity stuff. -Kid
						for i = 1,5 do
							_G['ten_luafield_p'..i]:effectmagnitude(0,0,0);
						end
					end

					if beat > 96 and beat < 156 then

						--[[if DIVINE_ENTITY then for i = 1,5 do
							DIVINE_ENTITY:GetTapNotes(nil, nil, 'Clone ' .. i):effectmagnitude(ten_svib:GetX(),ten_svib:GetY(),0);
						end end]]
						--Replaces DivinEntity stuff. -Kid
						for i = 1,5 do
							_G['ten_luafield_p'..i]:effectmagnitude(ten_svib:GetX(),ten_svib:GetY(),0);
						end

						if beat < 111 or beat > 112 and beat < 143 or beat > 144 then

							for i,v in ipairs(ten_quads) do--Scale positioning. -Kid
								local y = i*128*ten_height_ratio+ten_auxvar:getaux()*ten_height_ratio;

								while y < 0 do
									y = y + 128*4*ten_height_ratio;
								end
								while y > SCREEN_HEIGHT do
									y = y - 128*4*ten_height_ratio;
								end
								v:y(y);
							end

							ten_bg:diffuseshift();
							ten_bg:effectperiod(0.25);
							ten_bg:effectcolor1(1,1,1,math.random(0,40)/100);
							ten_bg:effectcolor2(1,1,1,math.random(40,80)/100);

							--[[
							for i,v in pairs(ten_plr) do
								if v then
									local multi = -1; if i == 2 then multi = 1; end
									if math.mod(ten_inc,2) == 0 then
										v:GetChild('Judgment'):GetChild(''):cropleft(0);
										v:GetChild('Judgment'):GetChild(''):cropright(0);
										v:GetChild('Judgment'):GetChild(''):setstate(math.random(0,11));
										v:GetChild('Judgment'):x(160*multi);
									else
										v:GetChild('Judgment'):GetChild(''):cropleft(0);
										v:GetChild('Judgment'):GetChild(''):cropright(0);
										v:GetChild('Judgment'):GetChild(''):setstate(math.random(0,11));
										v:GetChild('Judgment'):x(160*multi);
									end

									local y = v:GetY() + 7.5;
									if i == 2 then y = y+SCREEN_HEIGHT; end

									--local y = SCREEN_CENTER_Y+i*SCREEN_HEIGHT+ten_auxvar:getaux();
									--while y < -SCREEN_HEIGHT*1.5 do
										--y = y + SCREEN_HEIGHT*2;
									--end
									while y > SCREEN_HEIGHT*1.5 do
										--SCREENMAN:SystemMessage('ass');
										y = y - SCREEN_HEIGHT*2;
									end
									v:y(y);
									v:x(SCREEN_CENTER_X);
								end
							end
							]]

						end

					end

				end

				if beat > 364 and beat < 424.2 then
					--Update ten_shake. -Kid
					ten_shake0:SetVertices(ten_GetVerts('ten_shake_j'))
				end

				if beat > 424.2 and beat < 460 then
					--Update ten_wacky. -Kid
					ten_wacky0:SetVertices(ten_GetVerts('ten_wacky_j'))
				end

				------------------------------------------------------------------------------
				-- custom mod reader by TaroNuke edited by WinDEU and re-stolen by TaroNuke --
				------------------------------------------------------------------------------
				if beat > mod_firstSeenBeat+0.1 then -- performance coding!! --
					for i,v in pairs(mods) do
						if v and table.getn(v) > 3 and v[1] and v[2] and v[3] and v[4] then
							if beat >=v[1] then
								if (v[4] == 'len' and beat <=v[1]+v[2]) or (v[4] == 'end' and beat <=v[2]) then
									if table.getn(v) == 5 then
										--GAMESTATE:ApplyGameCommand('mod,'..v[3],v[5]);
										poptions[v[5]]:FromString(v[3])
									else
										--GAMESTATE:ApplyGameCommand('mod,'..v[3]);
										for i=1,2 do
											poptions[i]:FromString(v[3])
										end
									end
								end
							end
						else
							v[1] = 0;
							v[2] = 0;
							v[3] = '';
							v[4] = 'error';
							SCREENMAN:SystemMessage('Bad mod in beat-based table (line '..i..')');
						end
					end
				end

				-----------------------------------------------------------------------------------------------------
				-- WinDEU's time-based len/end version of the #swag custom mod reader #teamproofofconcept (c) 2015 --
				-----------------------------------------------------------------------------------------------------
				if beat > mod_firstSeenBeat+0.1 then -- performance coding!! --
					for i,v in pairs(mods2) do
						if v and table.getn(v) > 3 and v[1] and v[2] and v[3] and v[4] then
							if mod_time >=v[1] then
								if (v[4] == 'len' and mod_time <=v[1]+v[2]) or (v[4] == 'end' and mod_time <=v[2]) then
									if table.getn(v) == 5 then
										--GAMESTATE:ApplyGameCommand('mod,'..v[3],v[5]);
										poptions[v[5]]:FromString(v[3])
									else
										--GAMESTATE:ApplyGameCommand('mod,'..v[3]);
										for i=1,2 do
											poptions[i]:FromString(v[3])
										end
									end
								end
							end
						else
							v[1] = 0;
							v[2] = 0;
							v[3] = 'error';
							v[4] = 'error';
							SCREENMAN:SystemMessage('Bad mod in time-based table (line '..i..')');
						end
					end
				end

				---------------------------------------
				-- ACTION RPGS AINT GOT SHIT ON THIS --
				---------------------------------------
				if beat > mod_firstSeenBeat+0.1 then -- performance coding!! --
					while curaction<=table.getn(mod_actions) and GAMESTATE:GetSongBeat()>=mod_actions[curaction][1] do
						if mod_actions[curaction][3] or GAMESTATE:GetSongBeat() < mod_actions[curaction][1]+2 then
							if type(mod_actions[curaction][2]) == 'function' then
								mod_actions[curaction][2]()
							elseif type(mod_actions[curaction][2]) == 'string' then
								MESSAGEMAN:Broadcast(mod_actions[curaction][2]);
							end
						end
						curaction = curaction+1;
					end
				end

			--Places the luafield notes. -Kid
			if beat > mod_firstSeenBeat+1 then
				while m_curnote<=table.getn(ten_luafield_notes) and beat>ten_luafield_notes[m_curnote][1]-ten_luafield_drawdistance do
					for i = 1,5 do
						ten_luafield_placenote(i,ten_luafield_notes[m_curnote][1],ten_luafield_notes[m_curnote][2])
					end
					m_curnote = m_curnote+1;
				end
			end

			end

			self:sleep(0.02);
			self:queuecommand('Update');

---------------------------------------------------------------------------------------
----------------------END DON'T TOUCH IT KIDDO-----------------------------------------
---------------------------------------------------------------------------------------

		end,
    },
    Def.ActorFrame{
      Name= "xtl_actor_y",
      InitCommand= function(self) ten_blur = self end,--Scaled position. -Kid
      OnCommand= cmd(x,SCREEN_CENTER_X;y,SCREEN_HEIGHT/2-128*ten_height_ratio),
      optional_actor(IsP1There,
      Def.Sprite{
        Name= "xtl_actor_z",
        Frames= {
          {Frame= 0, Delay= 1},
          {Frame= 1, Delay= 1},
          {Frame= 2, Delay= 1},
          {Frame= 3, Delay= 1},
      },
        NoBlurFastMessageCommand= cmd(diffusealpha,0),
        NoBlurMessageCommand= cmd(linear,1.6;diffusealpha,0),
        OnCommand= cmd(x,-SCREEN_WIDTH*0.25;zoom,ten_height_ratio),--Added zoom. -Kid
        Texture= "./blurtarg2 1x4.png",
      }),
      optional_actor(IsP2There,
      Def.Sprite{
        Name= "xtl_actor_ab",
        Frames= {
          {Frame= 0, Delay= 1},
          {Frame= 1, Delay= 1},
          {Frame= 2, Delay= 1},
          {Frame= 3, Delay= 1},
      },
        NoBlurFastMessageCommand= cmd(diffusealpha,0),
        NoBlurMessageCommand= cmd(linear,1.6;diffusealpha,0),
        OnCommand= cmd(x,SCREEN_WIDTH*0.25;zoom,ten_height_ratio),--Added zoom. -Kid
        Texture= "./blurtarg2 1x4.png",
      }),
    },
    Def.Quad{
      Name= "xtl_actor_bb",
      InitCommand= function(self) ten_vpos = self end,
      OnCommand= cmd(visible,false),
    },
    Def.Quad{
      Name= "xtl_actor_cb",
      InitCommand= function(self) ten_march = self end,
      MarchingCommand= function(self)
		local beat = GAMESTATE:GetSongBeat()
		if beat<31 then

			self:linear(60/148);
			self:addx(ten_march_dist*2);
			self:linear(60/148);
			self:addx(ten_march_dist*-2);
			--self:linear(30/148);
			--self:addx(ten_march_dist);

			self:queuecommand('Marching');
		end
	end,
      OnCommand= cmd(visible,false),
      StartMarchMessageCommand= cmd(queuecommand,"Marching"),
    },
    Def.Quad{
      Name= "xtl_actor_db",
      InitCommand= function(self) ten_jump = self end,
      JumpingCommand= function(self)
		local beat = GAMESTATE:GetSongBeat()
		if beat<31 then
			self:decelerate(30/148);
			self:addy(ten_jump_height*-1);
			self:accelerate(30/148);
			self:addy(ten_jump_height*1);
			self:queuecommand('Jumping');
		end
	end,
      OnCommand= cmd(visible,false),
      StartMarchMessageCommand= cmd(queuecommand,"Jumping"),
    },
    Def.Quad{
      Name= "xtl_actor_eb",
      InitCommand= function(self) ten_auxvar = self; self:visible(false) end,
      OnCommand= cmd(),--enclose queuemessage argument. -Kid
      VHSMessageCommand= cmd(finishtweening;queuemessage,'Static';aux,0;accelerate,1.621;aux,320;decelerate,1.621;aux,640;accelerate,1.621;aux,0;
		decelerate,1.621;aux,-640;accelerate,1.621;aux,320*2;decelerate,1.621;aux,640*2;accelerate,1.621;aux,0;
		decelerate,1.621;aux,-640*2;accelerate,1.621*2;aux,1500;decelerate,1.621*2;aux,3000;accelerate,1.621*2;aux,1500;decelerate,1.621*2;aux,0),
    },
    Def.Quad{
      Name= "xtl_actor_fb",
      OnCommand= cmd(visible,false),
      QDDropMessageCommand= function(self)
			--[[
			for pn=1,2 do
				local a = _G['P'..pn]
				if a then
					a:linear(60/148);
					a:addy(128);
					a:bounceend(30/148);
					a:addy(-128);
				end
			end
			]]
		end,
      ScreenRotMessageCommand= function()
			--screen:finishtweening();
			--[[
			screen:addx((-100+(ten_srd*10))*ten_srf)
			screen:spring(120/148);
			screen:rotationz(ten_srd*ten_srf);
			screen:addx((100+(ten_srd*10))*ten_srf)
			screen:skewx(0);
			]]
			screen:linear(0.1);
			screen:zoom(0.4);
			screen:skewx(ten_srd*0.01*ten_srf);
			screen:spring(120/148 - 0.1);
			screen:rotationz(ten_srd*ten_srf);
			screen:zoom(1)
			screen:skewx(0);
			ten_srd = ten_srd+1;
			ten_srf = ten_srf*-1;
		end,
      StaticMessageCommand= function() ten_static:linear(0.25); ten_static:diffusealpha(0.4); end,
      StaticOffMessageCommand= function() ten_static:diffusealpha(0); end,
    },
    Def.Quad{
      Name= "xtl_actor_gb",--Unconverted positions. -Kid
      InitCommand= function(self) ten_notevpos = self end,
      NoteVib1MessageCommand= cmd(x,100;sleep,0.2;linear,(240/148)-0.2;x,0),
      NoteVibMessageCommand= cmd(linear,0.2;x,100;sleep,0.2;linear,(240/148)-0.4;x,0),
      OnCommand= cmd(visible,false),
    },
    Def.ActorFrame{
      Name= "xtl_actor_hb",
      HideQuads2MessageCommand= cmd(visible,false),
      ShowQuads2MessageCommand= cmd(visible,true),
      Def.Quad{
        Name= "xtl_actor_ib",
        HideQuadsMessageCommand= cmd(visible,false),
        OnCommand= cmd(visible,false),
        ShowQuadsMessageCommand= cmd(visible,true),
        StoreQuadsMessageCommand= ten_StoreQuads,
      },
      Def.Quad{
        Name= "xtl_actor_jb",
        HideQuadsMessageCommand= cmd(visible,false),
        OnCommand= cmd(visible,false),
        ShowQuadsMessageCommand= cmd(visible,true),
        StoreQuadsMessageCommand= ten_StoreQuads,
      },
      Def.Quad{
        Name= "xtl_actor_kb",
        HideQuadsMessageCommand= cmd(visible,false),
        OnCommand= cmd(visible,false),
        ShowQuadsMessageCommand= cmd(visible,true),
        StoreQuadsMessageCommand= ten_StoreQuads,
      },
      Def.Quad{
        Name= "xtl_actor_lb",
        HideQuadsMessageCommand= cmd(visible,false),
        OnCommand= cmd(visible,false),
        ShowQuadsMessageCommand= cmd(visible,true),
        StoreQuadsMessageCommand= ten_StoreQuads,
      },
      Def.Quad{
        Name= "xtl_actor_mb",
        HideQuadsMessageCommand= cmd(visible,false),
        OnCommand= cmd(visible,false),
        ShowQuadsMessageCommand= cmd(visible,true),
        StoreQuadsMessageCommand= ten_StoreQuads,
      },
    },
    Def.Quad{
      Name= "xtl_actor_nb",
      InitCommand= function(self) ten_spin = self end,
      OnCommand= cmd(visible,false),
    },
    Def.Quad{
      Name= "xtl_actor_ob",
      InitCommand= function(self) ten_svib = self end,
      OnCommand= cmd(visible,false),--Unconverted positions. -Kid
      VibLeft1MessageCommand= cmd(x,100;sleep,0.2;linear,(240/148)-0.2;x,0),
      VibLeft2MessageCommand= cmd(linear,0.2;y,0;x,100;sleep,0.2;linear,(240/148)-0.4;x,0),
      VibLeftMessageCommand= cmd(linear,0.2;x,100;sleep,0.2;linear,(240/148)-0.4;x,0),
      VibUpMessageCommand= cmd(linear,0.2;y,100;sleep,0.2;linear,(240/148)-0.4;y,0),
    },
    LoadActor('tilesa.lua') .. {
      Name= "xtl_actor_pb",
      File= "tilesa.lua",
      InitCommand= function(self) ten_tilesa = self end,
      OnCommand= cmd(visible,false),
    },
	--Somehow, these aren't even used? -Kid
    --[[LoadActor('tilesb.lua') .. {
      Name= "xtl_actor_qb",
      File= "tilesb.lua",
      InitCommand= function(self) ten_tilesb = self end,
      OnCommand= cmd(visible,false),
    },
    LoadActor('tilesc.lua') .. {
      Name= "xtl_actor_rb",
      File= "tilesc.lua",
      InitCommand= function(self) ten_tilesc = self end,
      OnCommand= cmd(visible,false),
    },]]
    LoadActor('afts.lua') .. {
      Name= "xtl_actor_sb",
      File= "afts.lua",
      InitCommand= function(self)

	ten_rgbcont = self
	self:fov(100)
	end,
      OnCommand= cmd(visible,false),
    },
    LoadActor('shake.lua') .. {
      Name= "xtl_actor_tb",
      File= "shake.lua",
      InitCommand= function(self)

	ten_shakecont = self
	self:fov(100)
	end,
      OnCommand= cmd(visible,false),
    },
    Def.ActorFrame{
      Name= "xtl_actor_ub",
      InitCommand= function(self) shame_heads1 = self end,
      Def.Sprite{
        Name= "xtl_actor_vb",
        InitCommand= function(self) shame_head1 = self end,
        OnCommand= cmd(diffusealpha,0;zoom,0.3*ten_height_ratio),--Scaled zoom. -Kid
        Texture= "head.png",
      },
      Def.Sprite{
        Name= "xtl_actor_wb",
        InitCommand= function(self) shame_head2 = self end,
        OnCommand= cmd(diffusealpha,0;zoom,0.3*ten_height_ratio),--Scaled zoom. -Kid
        Texture= "head.png",
      },
    },
    Def.ActorFrame{
      Name= "xtl_actor_xb",
      InitCommand= function(self) shame_heads2 = self end,
      Def.Sprite{
        Name= "xtl_actor_yb",
        InitCommand= function(self) shame_head3 = self end,
        OnCommand= cmd(diffusealpha,0;zoom,0.3*ten_height_ratio),--Scaled zoom. -Kid
        Texture= "head.png",
      },
      Def.Sprite{
        Name= "xtl_actor_zb",
        InitCommand= function(self) shame_head4 = self end,
        OnCommand= cmd(diffusealpha,0;zoom,0.3*ten_height_ratio),--Scaled zoom. -Kid
        Texture= "head.png",
      },
    },
    Def.ActorFrame{
      Name= "xtl_actor_ac",
      InitCommand= function(self) shame_heads3 = self end,
      Def.Sprite{
        Name= "xtl_actor_bc",
        InitCommand= function(self) shame_head5 = self end,
        OnCommand= cmd(diffusealpha,0;zoom,0.3*ten_height_ratio),--Scaled zoom. -Kid
        Texture= "head.png",
      },
      Def.Sprite{
        Name= "xtl_actor_cc",
        InitCommand= function(self) shame_head6 = self end,
        OnCommand= cmd(diffusealpha,0;zoom,0.3*ten_height_ratio),--Scaled zoom. -Kid
        Texture= "head.png",
      },
    },
    Def.ActorFrame{
      Name= "xtl_actor_dc",--Scale movement. -Kid
      DoMarchMessageCommand= cmd(decelerate,30/148;addy,-60*ten_height_ratio;accelerate,30/140;addy,60*ten_height_ratio),
      Def.Sprite{
        Name= "xtl_actor_ec",
        InitCommand= function(self) ten_shame_march=self end,
        OnCommand= cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;animate,0;zoom,0),
        Texture= "shame 2x1.png",
      },
    },
    Def.ActorFrame{
      Name= "xtl_actor_fc",
      InitCommand= function(self) ten_mario = self end,
      OnCommand= cmd(zoom,0;x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y),
      Def.ActorFrame{
        Name= "xtl_actor_gc",--Unconverted positions. -Kid
        OnCommand= cmd(x,-320;y,-240),
        Def.Sprite{
          Name= "xtl_actor_hc",
          OnCommand= cmd(x,320;y,240),
          Texture= "mario.png",
        },
        Def.Sprite{
          Name= "xtl_actor_ic",--Putting the effectcolor argument inside a color('') function breaks the intended effect. -Kid
          OnCommand= cmd(zoom,.2;x,108;y,308;pulse;effectperiod,.8;effectoffset,math.random(1,800)/1000;
		effectmagnitude,1,1,1;effectcolor1,.95,1.05,1,1;effectcolor2,1.05,.95,1,1),
          Texture= "head.png",
        },
        Def.Sprite{
          Name= "xtl_actor_jc",--Putting the effectcolor argument inside a color('') function breaks the intended effect. -Kid
          OnCommand= cmd(zoom,.2;x,150;y,359;pulse;effectperiod,.8;effectoffset,math.random(1,800)/1000;
		effectmagnitude,1,1,1;effectcolor1,.95,1.05,1,1;effectcolor2,1.05,.95,1,1),
          Texture= "head.png",
        },
        Def.Sprite{
          Name= "xtl_actor_kc",--Putting the effectcolor argument inside a color('') function breaks the intended effect. -Kid
          OnCommand= cmd(zoom,.2;x,77;y,368;pulse;effectperiod,.8;effectoffset,math.random(1,800)/1000;
		effectmagnitude,1,1,1;effectcolor1,.95,1.05,1,1;effectcolor2,1.05,.95,1,1),
          Texture= "head.png",
        },
        Def.Sprite{
          Name= "xtl_actor_lc",
          InitCommand= function(self) ten_mario_pill_p1=self end,
          OnCommand= cmd(x,290;y,162;animate,0;setstate,0),
          Texture= "vitamin 1x2.png",
        },
        Def.Sprite{
          Name= "xtl_actor_mc",
          InitCommand= function(self) ten_mario_pill_p2=self end,
          OnCommand= cmd(x,350;y,162;animate,0;setstate,1),
          Texture= "vitamin 1x2.png",
        },
      },
    },
    Def.Sprite{
      Name= "xtl_actor_nc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_oc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_pc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_qc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_rc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_sc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_tc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_uc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_vc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_wc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_xc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_yc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_zc",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ad",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_bd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_cd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_dd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ed",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_fd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_gd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_hd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_id",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_jd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_kd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ld",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_md",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_nd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_od",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_pd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_qd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_rd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_sd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_td",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ud",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_vd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_wd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_xd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_yd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_zd",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ae",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_be",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ce",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_de",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ee",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_fe",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ge",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_he",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ie",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_je",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ke",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_le",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_me",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ne",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_oe",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_pe",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_qe",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_re",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_se",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_te",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ue",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ve",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_we",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_xe",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ye",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ze",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_af",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_bf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_cf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_df",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ef",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ff",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_gf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_hf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_if",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_jf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_kf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_lf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_mf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_nf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_of",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_pf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_qf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_rf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_sf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_tf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_uf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_vf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_wf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_xf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_yf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_zf",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ag",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_bg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_cg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_dg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_eg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_fg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_gg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_hg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ig",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_jg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_kg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_lg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_mg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ng",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_og",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_pg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_qg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_rg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_sg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_tg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ug",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_vg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_wg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_xg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_yg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_zg",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ah",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_bh",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ch",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_dh",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_eh",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_fh",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_gh",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_hh",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_ih",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_jh",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.Sprite{
      Name= "xtl_actor_kh",
      HideCommand= cmd(visible,false),
      OnCommand= cmd(visible,false;animate,0;sleep,0.05;queuecommand,"SetMe"),
      RemoveWarningsMessageCommand= cmd(stoptweening;linear,.3;diffusealpha,0;queuecommand,"Hide"),
      SetMeCommand= function(self) table.insert(ten_warns,self) end,
      Texture= "warnings 2x2.png",
    },
    Def.BitmapText{
      Name= "xtl_actor_lh",
      Font= "Common Normal",
      OnCommand= cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;effectclock,"music";playcommand,"SetTime";visible,false),
      SetTimeCommand= function(self) self:settext(self:GetSecsIntoEffect()); mod_time = tonumber(self:GetText()); self:sleep(0.02); self:queuecommand('SetTime'); end,
      Text= "test",
    },
    Def.Quad{
      Name= "xtl_actor_mh",
      OnCommand= cmd(diffuse,color('1,1,1,0');zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y),
      RedFlashMessageCommand= cmd(diffuse,color('1,0,0,1');linear,1;diffuse,color('1,1,1,0')),
      WhiteFlashMessageCommand= cmd(diffuse,color('1,1,1,1');linear,1;diffuse,color('1,1,1,0')),
    },
    Def.BitmapText{
      Name= "xtl_actor_nh",
      EndTextMessageCommand= cmd(sleep,60/148;linear,6*60/148;cropright,0),
      Font= "_eurostile outline",--Scaled position and zoom, '::' -> '\n'. -Kid
      OnCommand= cmd(x,SCREEN_CENTER_X + 0;y,SCREEN_CENTER_Y + 120*ten_height_ratio;cropright,1;diffuse,color('.3,.7,.1,1');shadowlength,0;zoom,.8*ten_height_ratio),
      Text= "H-hey, wait a minute!\nYou think you could be a bit more gentle??",
    },
    Def.Quad{
      Name= "xtl_actor_oh",
      OnCommand= function(self)
	ten_fgCover=self
	self:x(SCREEN_CENTER_X)
	self:y(SCREEN_CENTER_Y)
	self:diffuse(0,0,0,0)
	self:zoomx(SCREEN_WIDTH)
	self:zoomy(SCREEN_HEIGHT)
	end,
    },
    --Control Quad replaced by InputHandler. -Kid
  },
}
