Skip to content

Latest commit

 

History

History
267 lines (230 loc) · 11.4 KB

README.md

File metadata and controls

267 lines (230 loc) · 11.4 KB

Global Rules

NOTE: The following rules may be overwritten by specific category rules

If you have any questions, the answer may be in our FAQ Back

General Rules

  • The use of external tools that modify the game in any way, shape, or form are forbidden.
  • The as of now Android-exclusive 1.2.6.* duping glitch is banned from all categories unless explicitely stated otherwise.
  • In-game commands must not be executed during the run.
    • This includes glitch runs, where runners often attempt to use the command glitch. The command glitch is forbidden as it violates this rule.
  • The editing of any world settings after world creation is strictly forbidden.
    • This includes changing gamemodes.
  • Reloading the world (quitting and loading the same world again) always puts the run into the glitched category.
  • While we do promote ingenuity and creativity from runners, do not attempt to be cheeky in regards to the rules. Exploiting loopholes in the rules that were clearly not intended to be exploited may result in your run being rejected.
    • If you do find a loophole, we ask you point it out to a moderator instead.

Submission Rules

  • Runners are permitted to run on any version of the game that they would like.
    • Certain Individual Level categories may require that you run on a specific version or range of versions.
    • Full game runs performed on beta versions of the game must be submit to the beta category on our category extensions.
    • Beta versions of the game are not permitted for individual level runs.
  • If you submit a video significantly longer than the duration of the run, specify timestamps of the runs beginning and end in the submission description.
    • This is not a required rule, however it is strongly recommend as it saves the moderators a lot of time when verifying.
    • If the queue is long enough your run may be rejected with a message requesting you resubmit with timestamps.
  • Top runners must be prepared to send extra evidence for their runs, which may include:
    • A full raw recording of the session
    • Recordings of past attempts
    • The world folder of the run (limited to PC runs)
    • The world seed (for random seed runs) - it is encouraged to send the world seed for every submission, but not mandatory
  • Other runners should also be ready to send this extra evidence if required (though it will not be required in most cases)

Game Modification Rules

  • Any sort of texture pack or other visual modification that gives the runner an advantage is banned.
  • All runs must be performed on a vanilla client.
    • There is an exception to this rule for runners playing on Linux.
  • Runners are allowed to edit game options in the options.txt file of the game
    • This allows the changes of any visual settings (e.g. vsync to decrease lag)
    • Any changes that may be used to provide an advantage to the runner (e.g. gamma) are not allowed
  • Any other form of game modification / data pack is forbidden.
  • Any form of external game assistance (Macros, scripts etc.) is forbidden.
    • Macros for resetting worlds are allowed.
    • A key mapper is allowed on mobile for dropping and changing changing perspective.

Proof Rules

  • All runs require proof to be entered on the leaderboards.
    • By submitting to the leaderboards, you are giving the moderation team permission to download your run for retiming and archival purposes.
  • Proof must be given in the form of a viewable video.
    • In the case of cooperative runs, only the host is required to provide proof.
    • Any video hosting service is allowed, and the video does not need to be public. It is however strongly recommend that you submit public videos on YouTube.
      • If a video is not public, it must either be unlisted, or be shared with a moderator in another form.
    • There are no minimum quality settings, however at a minimum we recommend 480p video at 30fps.
    • A run may be rejected if there are too many dropped frames as it makes accurate retiming impossible.
    • Audio is not required.
  • It is not required to have a timer.
  • Editing the video in any way, shape, or form that affects the resulting time of the run is strictly against the rules.
    • Examples of banned edits are splices and changing the video speed.
    • Examples of legal edits are putting music over your run and adding a custom video intro.
      • You may use whatever music you would like.
  • All videos must show the world creation process and the runner entering the newly created world.
  • On Playstation 4/5 for runs in the top 5 of a full game or world record runs of an individual level category at the time of verification you should clip the entire run using the console's clipping feature, and keep the entire raw video saved in your console, as we may ask you for further proof. Once the run is verified, you may delete the video. This doesn't apply for runs over an hour long (Max clip length)
  • On windows for runs in the top 5 of a full game or world record runs of an individual level category at the time of verification the following script MUST be ran at the START or END of a run in the same video in a new powershell window:
param (
	[Parameter(Mandatory=$false)] [string] $installationDir,
	[Parameter(Mandatory=$false)] [string] $outputFile,
	[Parameter(Mandatory=$false)] [bool] $Check = $false
)
$outputFile = if ([string]::IsNullOrEmpty($outputFile)) {
	[string] $currentTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
	[string] $desktopFolder = [Environment]::GetFolderPath([Environment+SpecialFolder]::Desktop);
	[string] $outFolderName = "mcbe-speedrunning";
	[string] $outFolder = Join-Path `
		-Path $desktopFolder `
		-ChildPath $outFolderName
	if (-not (Test-Path $outFolder)) {
		New-Item -Path $desktopFolder -Name $outFolderName -ItemType "directory" | Out-Null
	}
	Join-Path -Path $outFolder -ChildPath "Hashes_$currentTime.txt"
} else {
	$outputFile
}

if ([string]::IsNullOrEmpty($outputFile)) {
	throw [System.IO.FileNotFoundException] "Couldn't find the output file. Please report this issue"
}

if ($Check) {
	[string[]] $hashStrings = Get-Content -Path "$outputFile"
	[string] $mainHash = $hashStrings -join ''
	$(Get-FileHash -InputStream ([IO.MemoryStream]::new([char[]]$mainHash))).Hash
} else {
	[Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage] $mcbeAppx = Get-AppxPackage -Name Microsoft.MinecraftUWP
	$installationDir = if ([string]::IsNullOrEmpty($installationDir)) {
		$mcbeAppx.InstallLocation
	} else {
		$installationDir
	}

	if ([string]::IsNullOrEmpty($installationDir)) {
		throw [System.IO.FileNotFoundException] "Couldn't find the minecraft installation. Please report this issue"
	}

	[string] $mcbeStateFolder = Join-Path -Path $env:LOCALAPPDATA -ChildPath "Packages\$($mcbeAppx.Name)_$($mcbeAppx.PublisherId)\LocalState\games\com.mojang"
	[string] $globalResourcePacksFile = $(Join-Path -Path $mcbeStateFolder -ChildPath "minecraftpe\global_resource_packs.json")
	if ([System.IO.File]::Exists($globalResourcePacksFile)) {
		[PSCustomObject] $globalResourcePacks = Get-Content -Path $globalResourcePacksFile | ConvertFrom-Json
		echo "Activated global resource packs are 0? $($globalResourcePacks.Count -eq 0)"
	} else {
		echo "No global resources file found"
	}
	[System.IO.DirectoryInfo] $lastWorld = Get-ChildItem $(Join-Path -Path $mcbeStateFolder -ChildPath "minecraftWorlds") -Directory | Sort-Object LastWriteTime -Descending | Select-Object -First 1
	if ($lastWorld) {
		[string] $worldResourcePacksFile = $(Join-Path -Path $lastWorld.FullName -ChildPath "world_resource_packs.json")
		if ([System.IO.File]::Exists($worldResourcePacksFile)) {
			[PSCustomObject] $worldResourcePacks = Get-Content -Path $worldResourcePacksFile | ConvertFrom-Json
			echo "Activated latest world resource packs are 0? $($worldResourcePacks.Count -eq 0)"
		} else {
			echo "No world resource pack file found"
		}
		[string] $worldBehaviorPacksFile = $(Join-Path -Path $lastWorld.FullName -ChildPath "world_behavior_packs.json")
		if ([System.IO.File]::Exists($worldBehaviorPacksFile)) {
			[PSCustomObject] $worldBehaviorPacks = Get-Content -Path $worldBehaviorPacksFile | ConvertFrom-Json
			echo "Activated latest world behaviour packs are 0? $($worldBehaviorPacks.Count -eq 0)"
		} else {
			echo "No world behaviour pack file found"
		}
	} else {
		echo "No last world found"
	}

	[int] $totalFiles = (Get-ChildItem -Path $installationDir -Recurse -File).Count
	[int] $progress = 0
	[int] $updateInterval = [Math]::Ceiling($totalFiles / 100)

	[string[]] $hashStrings = Get-ChildItem -Path $installationDir -Recurse -File | ForEach-Object {
		$hash = Get-FileHash -Path "$($_.FullName)"
		"$($_.Name)=$($hash.Hash)"

		if (++$progress % $updateInterval -eq 0) {
			$percentComplete = [Math]::Floor(($progress / $totalFiles) * 100)
			Write-Progress -Activity "Calculating Hashes" -Status "Progress: $percentComplete%" -PercentComplete $percentComplete
		}
	}
	$hashStrings | Out-File -FilePath $outputFile
	[string] $mainHash = $hashStrings -join ''
	$(Get-FileHash -InputStream ([IO.MemoryStream]::new([char[]]$mainHash))).Hash
}

This script MUST be ran at the START or END of random seed runs in the same video, and it is highly recommended to run it on set seed runs as well.

To open a powershell window press the windows button and "R", then type "powershell" and press enter. After pasting the script above remember to show the whole output to the end and close the window at the end before running the script again.

Some runners may prefer to hide their username from the powershell window. This can be done by editing the profile file by running notepad $PROFILE and adding the following line:

function prompt {"PS: >"}

Timing Rules

  • Timing starts on the first frame of movement after world creation.
    • The pause menu and changing perspectives do not count as movement.
    • For cooperative runs, timing starts when the first player moves.
    • Opening your inventory, punching, and mining all count as movement.
  • You may wait for a reasonable amount of time at the start of your run for the world to load.
  • Full game runs time with full second precision. Milliseconds will be used however in the case of a tie.
  • Individual level runs are timed with millisecond precision.

World Creation Rules

NOTE: All videos must display the world creation settings

  • Gamemode: Survival
  • Difficulty: Easy, Normal, or Hard
    • Peaceful is allowed for peaceful specific categories.
  • Starting Map: OFF
  • Bonus Chest: OFF
  • Default Player Permissions: Member
  • World Type: Infinite
  • Friendly Fire: ON
  • Fire Spreads: ON
  • TNT Explodes: ON
  • Mob Loot: ON
  • Tile Drops: ON
  • Respawn Radius: Default
  • Use Experimental Gameplay: OFF
  • Activate Cheats: OFF

Texture Packs

It is always a good idea to ask a moderator about a texture packs validity as certain exceptions may be made.

Illegal Resource Packs

WARNING: Resource Packs are forbidden for random seed categories

If a resource pack has any of the following it's a safe bet that it is illegal:

  • Transparent inventory
  • Fullbright
  • X-Ray
  • Outlined Ores (or other special blocks)
  • Transparent water
  • No Fog
  • No Particles

Legal Resource Packs

All official resource packs, such as Plastic or Natural texture packs, are allowed, and so are any other resource packs that change the textures in a purely cosmetic way without giving an unfair advantage to the player.