diff --git a/discord/index.html b/discord/index.html index 34da2c9..691f67b 100644 --- a/discord/index.html +++ b/discord/index.html @@ -15,8 +15,8 @@ - + diff --git a/faq/index.html b/faq/index.html index 6fec322..2cb8e6d 100644 --- a/faq/index.html +++ b/faq/index.html @@ -4,8 +4,8 @@ RLBot - + @@ -83,7 +83,7 @@
Can RLBot be used online?
Can I use RLBot with friends?
-

You can! It requires setting up a LAN/VLAN connection. Here is a guide.

+

You can! It requires setting up a LAN/VLAN connection. Here is a guide.

It is not possible to play with friends cross platform.

@@ -96,7 +96,7 @@
Are the bots using machine learning

Most are hardcoded and do not use machine learning. However, since the release of RLGym the machine learning are progressing faster than ever. If you are interesting in making a ML bot yourself, start by reading the - ML FAQ.

+ ML FAQ.

Some ML projects to check out are:

Addition resources, documentation, and examples can be found on the - RLBot wiki. Feel free to ask for help in the + RLBot wiki. Feel free to ask for help in the Discord server in the appropriate language channel or in the #strategy or #mathematics channels.

@@ -149,7 +149,7 @@
What is in the GameT location and size of boost pads and the location of goals.

More information about the GameTickPacket, FieldInfo, and even the ControllerState can be - on the RLBot wiki.

+ on the RLBot wiki.

@@ -157,11 +157,11 @@
What is in the GameT
What is the dimensions of the field? Gravity? Ball radius? Max speed? Boost? Kickoff locations? etc?
-

All of these values can be found on RLBot wiki.

+

All of these values can be found on RLBot wiki.

-

To learn more about the physics of Rocket League, see chip's notes.

+

To learn more about the physics of Rocket League, see chip's notes.

-

We also have a note on jumping physics.

+

We also have a note on jumping physics.

game field dimensions
@@ -173,10 +173,10 @@
What is the dimensions of the fie
How do I use debug rendering/game state setting/ball prediction/RLBotTraining?

The RLBot framework comes with a set of useful features. Learn more about these here:

diff --git a/index.html b/index.html index 3899bcc..41587e7 100644 --- a/index.html +++ b/index.html @@ -4,8 +4,8 @@ RLBot - + @@ -48,15 +48,15 @@
What is RLBot?
Download RLBot for Windows or - see our OS support. + see our OS support.

-

We also have LAN/VLAN match support, if you want to play with your friends!

+

We also have LAN/VLAN match support, if you want to play with your friends!

Join our Discord chat server to participate in the community. - If you're ready to get started, you can read more on our wiki + If you're ready to get started, you can read more on our wiki or click your favourite language below!

@@ -177,6 +177,15 @@
Tournaments
+ +
+
+
Wiki
+

Everything to know about RLBot

+
+
+
+
diff --git a/schemas/agent.json b/schemas/agent.json new file mode 100644 index 0000000..699bdd0 --- /dev/null +++ b/schemas/agent.json @@ -0,0 +1,98 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://rlbot.org/schemas/agent.json", + "title": "RLBot agent", + "description": "A bot or script for RLBot", + "type": "object", + "properties": { + "settings": { + "type": "object", + "description": "The in-game applicable settings for the bot", + "properties": { + "agent_id": { + "type": "string", + "description": "The static, unique id that is associated with this bot. Preferred format is 'author/bot-name'." + }, + "name": { + "type": "string", + "description": "The name of the bot/script" + }, + "loadout_file": { + "type": "string", + "description": "The path to the loadout file for the bot. Ignored for scripts." + }, + "root_dir": { + "type": "string", + "description": "A path to the root directory of the bot, e.g. './bin/'. The run_command will be run from the root directory.", + "default": "" + }, + "run_command": { + "type": "string", + "description": "Command RLBot can use to start the bot" + }, + "run_command_linux": { + "type": "string", + "description": "Specialized command RLBot can use to start the bot on Linux" + }, + "logo_file": { + "type": "string", + "description": "Relative path to logo image", + "default": "logo.png" + }, + "hivemind": { + "type": "boolean", + "description": "Whether all bot team mates with this agent id is controlled by the same process. Ignored for scripts." + } + }, + "required": ["agent_id", "name", "run_command"] + }, + "details": { + "type": "object", + "description": "Optional details that will appear in RLBot's GUI", + "properties": { + "description": { + "type": "string", + "description": "A description of the bot/script" + }, + "fun_fact": { + "type": "string", + "description": "A fun fact about the bot/script" + }, + "source_link": { + "type": "string", + "format": "uri", + "description": "A link to the source code of the bot/script" + }, + "developer": { + "type": "string", + "description": "The developer(s) of the bot/script" + }, + "language": { + "type": "string", + "description": "The language the bot/script is written in" + }, + "tags": { + "type": "array", + "description": "A list of tags that describe the bot/script", + "items": { + "type": "string", + "enum": [ + "1v1", + "teamplay", + "goalie", + "hoops", + "dropshot", + "snow-day", + "rumble", + "spike-rush", + "heatseeker", + "memebot" + ] + }, + "uniqueItems": true + } + } + } + }, + "required": ["settings"] +} diff --git a/schemas/match.json b/schemas/match.json new file mode 100644 index 0000000..84a2604 --- /dev/null +++ b/schemas/match.json @@ -0,0 +1,433 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://rlbot.org/schemas/match.json", + "title": "RLBot agent", + "description": "A bot or script for RLBot", + "type": "object", + "properties": { + "rlbot": { + "type": "object", + "description": "Options for launching an RLBot match", + "properties": { + "launcher": { + "type": "string", + "description": "Indicates how Rocket League should be launched if it is not already running", + "default": "Steam", + "enum": ["Steam", "Epic", "Custom", "NoLaunch"] + }, + "launcher_arg": { + "type": "string", + "description": "Additional configuration for the launching method. \"legendary\" with the \"Custom\" launcher will use Legendary launcher, for example." + }, + "auto_start_agents": { + "type": "boolean", + "description": "If true, RLBot will start the bots and scripts that has a non-empty run command in their player/script configuration", + "default": true + }, + "wait_for_agents": { + "type": "boolean", + "description": "If true, RLBot will start the match only once all bots and script have connected and are ready. If false, the match will start as soon as the map loads.", + "default": true + } + }, + "required": ["launcher"] + }, + "match": { + "type": "object", + "description": "Options for launching an RLBot match", + "properties": { + "game_mode": { + "type": "string", + "description": "The game mode to use for the match", + "default": "Soccar", + "enum": [ + "Soccar", + "Hoops", + "Dropshot", + "Snowday", + "Rumble", + "Heatseeker", + "Gridiron", + "Knockout" + ] + }, + "game_map_upk": { + "type": "string", + "description": "The name of a upk file, like UtopiaStadium_P, which should be loaded. Ensure the map does NOT end in '.upk'. Available maps can be found here: https://github.com/RLBot/python-interface/blob/master/rlbot/utils/maps.py", + "pattern": "^(?!.*\\.upk$).+" + }, + "skip_replays": { + "type": "boolean", + "description": "Automatically skip replays after a goal. Also stops match replays from being saved." + }, + "start_without_countdown": { + "type": "boolean", + "description": "Skip the kickoff countdown" + }, + "existing_match_behavior": { + "type": "string", + "description": "How to handle any ongoing match", + "default": "Restart", + "enum": ["Restart", "RestartIfDifferent", "ContinueAndSpawn"] + }, + "enable_rendering": { + "type": ["string", "boolean"], + "description": "Whether debug rendering is displayed", + "default": "OffByDefault", + "enum": ["OffByDefault", "OnByDefault", "AlwaysOff", true, false] + }, + "enable_state_setting": { + "type": "boolean", + "description": "Whether clients are allowed to manipulate the game state, e.g. teleporting cars and ball", + "default": true + }, + "auto_save_replay": { + "type": "boolean", + "description": "Whether the match replay should be saved" + }, + "freeplay": { + "type": "boolean", + "description": "If set to true, a free play match is launched instead of an exhibition match" + } + } + }, + "mutators": { + "type": "object", + "description": "Mutators that should be applied for the match", + "properties": { + "match_length": { + "type": "string", + "description": "Duration of the match", + "default": "FiveMinutes", + "enum": ["FiveMinutes", "TenMinutes", "TwentyMinutes", "Unlimited"] + }, + "max_score": { + "type": "string", + "description": "Max score of match. If this score is reached, the team immediately wins.", + "default": "Unlimited", + "enum": [ + "Unlimited", + "OneGoal", + "ThreeGoals", + "FiveGoals", + "SevenGoals", + "TenGoals", + "TwentyGoals", + "ThirtyGoals", + "FortyGoals", + "FiftyGoals", + "SixtyGoals", + "SeventyGoals", + "EightyGoals", + "NinetyGoals", + "HundredGoals" + ] + }, + "multi_ball": { + "type": "string", + "description": "The number of balls", + "default": "One", + "enum": ["One", "Two", "Four", "Six"] + }, + "overtime": { + "type": "string", + "description": "The overtime rules and tiebreaker", + "default": "Unlimited", + "enum": [ + "Unlimited", + "FiveMaxFirstScore", + "FiveMaxRandomTeam", + "TenMaxFirstScore", + "TenMaxRandomTeam" + ] + }, + "series_length": { + "type": "string", + "description": "The series length", + "default": "Unlimited", + "enum": ["Unlimited", "ThreeGames", "FiveGames", "SevenGames"] + }, + "game_speed": { + "type": "string", + "description": "A game speed multiplier", + "default": "Default", + "enum": ["Default", "SloMo", "TimeWarp"] + }, + "ball_max_speed": { + "type": "string", + "description": "Ball max speed", + "default": "Default", + "enum": ["Default", "Slow", "Fast", "SuperFast"] + }, + "ball_type": { + "type": "string", + "description": "Ball type and shape", + "default": "Default", + "enum": [ + "Default", + "Cube", + "Puck", + "Basketball", + "Beachball", + "Anniversary", + "Haunted", + "Ekin", + "SpookyCube", + "Egg", + "PlayerSeeking", + "Dropshot", + "ScoreAbsorb" + ] + }, + "ball_weight": { + "type": "string", + "description": "Ball weight and how much is curves", + "default": "Default", + "enum": [ + "Default", + "Light", + "Heavy", + "SuperLight", + "CurveBall", + "BeachBallCurve", + "MagnusFutBall" + ] + }, + "ball_size": { + "type": "string", + "description": "Ball size", + "default": "Default", + "enum": ["Default", "Small", "Medium", "Large", "Gigantic"] + }, + "ball_bounciness": { + "type": "string", + "description": "Ball bounciness", + "default": "Default", + "enum": ["Default", "Low", "Lowish", "High", "SuperHigh"] + }, + "boost_amount": { + "type": "string", + "description": "Boost amount/recharge", + "default": "NormalBoost", + "enum": [ + "NormalBoost", + "UnlimitedBoost", + "SlowRecharge", + "RapidRecharge", + "NoBoost" + ] + }, + "rumble": { + "type": "string", + "description": "Rumble item rules", + "default": "Off", + "enum": [ + "Off", + "Default", + "Slow", + "Civilized", + "DestructionDerby", + "SpringLoaded", + "SpikesOnly", + "SpikeRush", + "HauntedBallBeam", + "Tactical", + "BatmanRumble", + "GrapplingOnly", + "HaymakerOnly" + ] + }, + "boost_strength": { + "type": "string", + "description": "Boost strength multiplier", + "default": "One", + "enum": ["One", "OneAndAHalf", "Two", "Five", "Ten"] + }, + "gravity": { + "type": "string", + "description": "Strength of gravity", + "default": "Default", + "enum": ["Default", "Low", "High", "SuperHigh", "Reverse"] + }, + "demolish": { + "type": "string", + "description": "Demolition conditions", + "default": "Default", + "enum": [ + "Default", + "Disabled", + "FriendlyFire", + "OnContact", + "OnContactFF", + "OnBallContact", + "OnBallContactFF" + ] + }, + "respawn_time": { + "type": "string", + "description": "Demolition respawn time", + "default": "ThreeSeconds", + "enum": [ + "ThreeSeconds", + "TwoSeconds", + "OneSecond", + "DisableGoalReset" + ] + }, + "max_time": { + "type": "string", + "description": "Max real-time duration of match including kickoff, replays, and more. If the score is tied upon time-out, the number of shots determine the winner.", + "default": "Unlimited", + "enum": ["Unlimited", "ElevenMinutes"] + }, + "game_event": { + "type": "string", + "description": "Additional game behaviour for custom modes", + "default": "Default", + "enum": ["Default", "Haunted", "Rugby"] + }, + "audio": { + "type": "string", + "description": "Additional audio options for custom modes", + "default": "Default", + "enum": ["Default", "Haunted"] + }, + "ball_gravity": { + "type": "string", + "description": "Ball gravity", + "default": "Default", + "enum": ["Default", "Low", "High", "SuperHigh"] + }, + "territory": { + "type": "string", + "description": "Territory mutator", + "default": "Off", + "enum": ["Off", "Territory"] + }, + "stale_ball": { + "type": "string", + "description": "Stable ball mutator", + "default": "Unlimited", + "enum": ["Unlimited", "ThirtySeconds"] + }, + "jump": { + "type": "string", + "description": "Jumps mutator", + "default": "Default", + "enum": [ + "Default", + "Grounded", + "Two", + "Three", + "Four", + "Unlimited", + "NoJumps" + ] + }, + "dodge_timer": { + "type": "string", + "description": "Dodge timer mutator", + "default": "OnePointTwentyFiveSeconds", + "enum": [ + "OnePointTwentyFiveSeconds", + "TwoSeconds", + "ThreeSeconds", + "Unlimited" + ] + }, + "possession_score": { + "type": "string", + "description": "Possession score mutator", + "default": "Off", + "enum": ["Off", "OneSecond", "TwoSeconds", "ThreeSeconds"] + }, + "demolish_score": { + "type": "string", + "description": "Demolish score mutator", + "default": "Zero", + "enum": ["Zero", "One", "Two", "Three"] + }, + "normal_goal_score": { + "type": "string", + "description": "Normal goal score mutator", + "default": "One", + "enum": ["One", "Zero", "Two", "Three", "Five", "Ten"] + }, + "aerial_goal_score": { + "type": "string", + "description": "Aerial goal score mutator", + "default": "One", + "enum": ["One", "Zero", "Two", "Three", "Five", "Ten"] + }, + "assist_goal_score": { + "type": "string", + "description": "Assist goal score mutator", + "default": "Zero", + "enum": ["Zero", "One", "Two", "Three"] + }, + "input_restriction": { + "type": "string", + "description": "Player input restriction mutator", + "default": "Default", + "enum": ["Default", "Backwards"] + } + } + }, + "cars": { + "type": "array", + "description": "A list of players in the match", + "items": { + "type": "object", + "properties": { + "team": { + "type": ["string", "integer"], + "description": "The team of the player", + "default": "Blue", + "enum": ["Blue", "Orange", 0, 1] + }, + "type": { + "type": "string", + "description": "Determines what controls the car", + "default": "RLBot", + "enum": ["RLBot", "Human", "Psyonix"] + }, + "skill": { + "type": "string", + "description": "Determines the skill level of a Psyonix bot", + "default": "Allstar", + "enum": ["Beginner", "Rookie", "Pro", "Allstar"] + }, + "config_file": { + "type": "string", + "description": "A path to a bot.toml config file" + }, + "name": { + "type": "string", + "description": "Overrides the name in config_file" + }, + "loadout_file": { + "type": "string", + "description": "Overrides the loadout in config_file" + } + }, + "required": ["team"] + } + }, + "scripts": { + "type": "array", + "description": "A list of scripts in the match", + "items": { + "type": "object", + "properties": { + "config_file": { + "type": "string", + "description": "A path to a script.toml config file" + } + }, + "required": ["config_file"] + }, + "uniqueItems": true + } + }, + "required": ["rlbot"] +} diff --git a/tournament/championship 2022 logo.png b/tournament/championship 2022 logo.png new file mode 100644 index 0000000..9d6dcff Binary files /dev/null and b/tournament/championship 2022 logo.png differ diff --git a/tournament/championship 2023 logo.png b/tournament/championship 2023 logo.png new file mode 100644 index 0000000..f3d2dcf Binary files /dev/null and b/tournament/championship 2023 logo.png differ diff --git a/tournament/championship 2024 logo.png b/tournament/championship 2024 logo.png new file mode 100644 index 0000000..1705041 Binary files /dev/null and b/tournament/championship 2024 logo.png differ diff --git a/tournament/championship 2025 logo.png b/tournament/championship 2025 logo.png new file mode 100644 index 0000000..7623804 Binary files /dev/null and b/tournament/championship 2025 logo.png differ diff --git a/tournament/index.html b/tournament/index.html index c12c254..3eaf78b 100644 --- a/tournament/index.html +++ b/tournament/index.html @@ -4,8 +4,8 @@ RLBot - + @@ -41,6 +41,106 @@
Tournaments
+ +
+
+ +
RLBot Championship 2025
+

Hardcoded and ML 2v2 double elimination brackets. + Info document +

+ Dates: + +

+

+ Winners +     Hardcoded: TBD
+     Machine learning: TBD
+
+

+ +
+
+ + +
+
+ +
RLBot Championship 2024
+

Hardcoded and ML double elimination brackets with random game modes each match. + Info document +

+ Dates: + +

+

+ Winners +     Hardcoded: DoshyJev (Cheese) by JoshyDev
+     Machine learning: LeBot+ by UltrawideGC
+
+

+ VODs | Highlights +
+
+ + +
+
+ +
RLBot Championship 2023
+

2v2 hardcoded bracket and 2v2 ML bracket. + Info document +

+ Dates: + +

+

+ Winners +     Hardcoded: king. by CodeRed
+     Machine learning: Seer by UltrawideGC
+
+

+ VODs +
+
+ + +
+
+ +
RLBot Championship 2022
+

1v1 bracket with a bubble-sort and a double-elimination stage. + Info document +

+ Dates: + +

+

+ Winner + Necto by Rolv and Soren
+
+

+ VOD +
+
+
@@ -57,12 +157,14 @@
RLBot Championship 2020
  • 2v2 elimination stage: October 31st
  • 1v1 elimination stage: November 1st
  • -
    - Winners -     1v1: Kamael by Impossibum
    -     2v2: Prime Time - Botimus Prime by Darxeal and WildFire r0bbi3
    -
    - Footage and VODs +

    +

    + Winners +     1v1: Kamael by Impossibum
    +     2v2: Prime Time - Botimus Prime by Darxeal and WildFire r0bbi3
    +
    +

    + VODs
    @@ -80,11 +182,13 @@
    Triple Threat 2020
  • Submission Deadline: Friday July 31st
  • Game Day: Sunday August 2nd
  • -
    - Winner -     Codename Cryo by B1ue_F1re -
    - Footage +

    +

    + Winner +     Codename Cryo by B1ue_F1re +
    +

    + VOD @@ -102,11 +206,13 @@
    Jeroen and East's Ultimate Battle League
  • League: Every sunday from May 3rd to June 14th
  • Finals: June 21st, Trailer
  • -
    - Winner -     Beehive (3x Bumblebee), by Darxeal and Will -
    - Footage and VODs +

    +

    + Winner +     Beehive (3x Bumblebee), by Darxeal and Will +
    +

    + VODs @@ -127,17 +233,17 @@
    RLBot 2019 Lightfall
    Day 0: Qualifiers
    Day 1: Group Stage
    Day 2: Elimination Stage
    Winner @@ -159,14 +265,16 @@
    RLBot 2019 Triple Threat
    Day 1:
    -
    - Winner -     ReliefBot (team captain), by tarehart, noodle beard, and NeverCast
    -     Diablo, by The Beard
    -     PenguinBot, by _DaCoolOne_ -
    +

    +

    + Winner +     ReliefBot (team captain), by tarehart, noodle beard, and NeverCast
    +     Diablo, by The Beard
    +     PenguinBot, by _DaCoolOne_ +
    +

    Highlights @@ -184,20 +292,22 @@
    RLBot 2019 Wintertide Tournament
    Day 1:
    Day 2:
    -
    - Winners -     1v1: Self-driving Car, by whatisaphone.
    -     2v2: Team W
    -         Self-driving Car by whatisaphone
    -         ReliefBot by tarehart, noodle beard, and NeverCast -
    +

    +

    + Winners +     1v1: Self-driving Car, by whatisaphone.
    +     2v2: Team W
    +         Self-driving Car by whatisaphone
    +         ReliefBot by tarehart, noodle beard, and NeverCast +
    +

    Highlights
    @@ -216,12 +326,12 @@
    RLBot 2018 Hoopshot
    Day 2:
    Winners @@ -253,12 +363,14 @@
    RLBot 2018 Official August Tournament
  • 2v2 Soccer, pre-selected teams
  • Footage
  • -
    - Winners -     1v1: Leaf, by Marvin
    -     2v2, random teams: Skybot, by Skyborg
    -     2v2, pre-selected teams: ReliefBot, by tarehart, noodle beard, and NeverCast -
    +

    +

    + Winners +     1v1: Leaf, by Marvin
    +     2v2, random teams: Skybot, by Skyborg
    +     2v2, pre-selected teams: ReliefBot, by tarehart, noodle beard, and NeverCast +
    +

    Charity: We raised money for directrelief.org! @@ -284,11 +396,13 @@
    RLBot 2018 Rocket Bot Championship
  • 1v1 Soccer
  • Footage
  • -
    - Winners -     2v2: ReliefBot, by tarehart and noodle beard
    -     1v1: rashBot, by Marvin -
    +

    +

    + Winners +     2v2: ReliefBot, by tarehart and noodle beard
    +     1v1: rashBot, by Marvin +
    +

    Charity: ReliefBot and Skybot raised money for directrelief.org! @@ -309,10 +423,12 @@
    RLBot 2017 AI Competition
  • Footage Day 1, Footage Day 2
  • -
    - Winner -     ReliefBot, by tarehart -
    +

    +

    + Winner +     ReliefBot, by tarehart +
    +

    Charity: ReliefBot raised money for directrelief.org! diff --git a/v5/index.html b/v5/index.html new file mode 100644 index 0000000..73aaba4 --- /dev/null +++ b/v5/index.html @@ -0,0 +1,257 @@ + + + + + + RLBot + + + + + + + + + + + + + + + + + +
    +
    +

    RLBot

    +

    Create and share + Rocket League + bots for offline play.

    +
    +
    + +
    + +
    +
    + +
    + This is a WIP front page for the upcoming major version V5 - + read more about it here. +
    + The front page for V4 is available here. +
    + +
    +
    +
    What is RLBot?
    +

    + RLBot enables custom bots in Rocket League. Using RLBot you can download and play with community-made bots, + play our challenging RLBot story mode, or make your own bots! +

    + + Quick Start Video + + Download + RLBotServer + & RLBotGUI +

    + +

    We also have LAN/VLAN match support, if you want to play with your friends!

    + +

    + Join our Discord chat server to participate in the community. + If you're ready to get started, you can read more on our wiki + or click your favourite language below! +

    +
    +
    + + + +
    + +
    + + +
    +
    +
    FAQ
    +

    Frequently asked questions

    +
    +
    +
    + + +
    +
    +
    Tournaments
    +

    Upcoming and previous tournaments

    +
    +
    +
    + + +
    +
    +
    Wiki
    +

    Everything to know about RLBot

    +
    +
    +
    + +
    +
    + + Upcoming Events + + + Subscribe + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + + + +
    +
    + +
    + + + + + + +