You can press e to pull it or just push it.
Settings can be friction,tile/sprite, and size.
General
CS2D Max Suggestions V2
mp_wpndmg_z1 "m4a1" 1000000
CS2D needs temporary bans, with selected delay and reason.
I.e.: tempban 1(id) 5(minutes) "watch your tone"(reason).
I.e.: shakeplayer 1(id) 3(seconds) 12(intensity)

//

//
that wuz totally random.

//
init_mod("shake")
shake.var("time",{})
shake.var("mag",{})
function shakes(p)
	local x = math.random(2*shake.mag[p] + 1) - (shake.mag[p] + 1)
	local y = math.random(2*shake.mag[p] + 1) - (shake.mag[p] + 1)
	setpos(p,player(p,"x") + x,player(p,"y") + y)
end
	
	
function adm_shake_admin(p, x, cmd)
	cmd = toTable(cmd)
	if cmd[2] == nil then
		cmd[2] = 0
	end
	if cmd[3] == nil then
		cmd[3] = 1
	end
	if not (tonumber(cmd[1])) then
		msg2(p, "incorrect parameters")
		return nil
	end
	shake.time[tonumber(cmd[1])] = shake.time[tonumber(cmd[1])] + tonumber(cmd[2])
	shake.mag[tonumber(cmd[1])] = tonumber(cmd[3])
	if tonumber(cmd[2]) == 0 then
		shake.time[tonumber(cmd[1])] = -1
	end
end
function adm_shakestop_amdin(p, x, cmd)
	cmd = tonumber(cmd)
	if not (cmd) then
		msg2(p, "incorrect parameters")
		return nil
	end
	shake.time[cmd] = 0
	shake.mag[cmd] = 0
end
function hook_init_shake()
	for i = 1,32 do
		shake.time[i] = 0
		shake.mag[i] = 0
	end
end
function hook_always_shake()
	for i = 1,32 do
		if shake.time[i] ~= 0 then
			shakes(i)
			if shake.time[i] > 0 then
				shake.time[i] = shake.time[i] - 1
			end
		end
	end
end
function hook_leave_shake(p,r)
	shake.time[p] = 0
	shake.mag[p] = 0
end
return shake.name