Skip to content

Commit dc5886e

Browse files
authored
Update to Alpha9
# New things - Deterministic RNG - New Desync Monitoring with Seeds - Command `/playuntil <ticks>` # Changes - New networking module by Pancake - New ticksync - Changed the file extension from `.tas` to `.mctas` - Merged Monitoring files (.mon) and TASfiles (.mctas). - Added tick 0 to the TASfile when recording # Fixes - Fixed playing time failing to save - Fixed "player moved to quickly" during a savestate - Removed "catchup ticks" when the server is lagging
2 parents 7b2ad79 + 2de188e commit dc5886e

File tree

185 files changed

+4417
-2762
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

185 files changed

+4417
-2762
lines changed

.github/workflows/build.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# This workflow will build a Java project with Gradle
2+
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
3+
4+
name: Build
5+
6+
on: [pull_request]
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/[email protected]
13+
- name: Set up JDK 8 for x64
14+
uses: actions/setup-java@v3
15+
with:
16+
java-version: '8'
17+
distribution: 'temurin'
18+
architecture: x64
19+
- name: Setup Gradle
20+
uses: gradle/[email protected]
21+
with:
22+
gradle-version: 4.10.3
23+
- name: Build TASmod with Gradle
24+
run: gradle shadowJar
25+
- name: Upload artifact
26+
uses: actions/upload-artifact@v3
27+
with:
28+
name: TASmod-Dev-Build
29+
path: build/libs
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# This workflow will build a Java project with Gradle
2+
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
3+
4+
name: Build and Upload to Discord
5+
6+
on: [push]
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
if: github.repository == 'MinecraftTAS/TASmod'
12+
steps:
13+
- uses: actions/[email protected]
14+
- name: Set up JDK 8 for x64
15+
uses: actions/setup-java@v3
16+
with:
17+
java-version: '8'
18+
distribution: 'temurin'
19+
architecture: x64
20+
- name: Setup Gradle
21+
uses: gradle/[email protected]
22+
with:
23+
gradle-version: 4.10.3
24+
- name: Build TASmod with Gradle
25+
run: gradle shadowJar
26+
- name: Upload artifact
27+
uses: actions/upload-artifact@v3
28+
with:
29+
name: TASmod-Dev-Build
30+
path: build/libs
31+
- name: Send file to discord channel
32+
uses: sinshutu/upload-to-discord@master
33+
env:
34+
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
35+
with:
36+
args: build/libs/TASmod-*.jar

.github/workflows/gradle.yml

Lines changed: 0 additions & 31 deletions
This file was deleted.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ build
1919

2020
# other
2121
eclipse
22-
run
22+
run/
2323
logs/

README.md

Lines changed: 72 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
# TASmod
2-
Lets you record and play back tickperfect inputs.
3-
2+
A Tool-Assisted Speedrun-Mod for Minecraft 1.12.2.
3+
Is able to capture inputs and play them back, by pretending to be a keyboard.
4+
5+
To reduce complexity, all aspects of RNG-Manipulation have been externalized to a repository called [KillTheRNG](https://github.com/MinecraftTAS/KillTheRNG). It is now available as an optional dependency and a [standalone mod](https://maven.mgnet.work/#/main/com/minecrafttas/killtherng-full)
6+
47
This mod is currently only for Forge 1.12.2 and will update/downgrade once 1.12.2 works properly
58

6-
## Credits
7-
Author of the original mod: tr7zw
8-
Main Author: Scribble
9+
> **New:** There are plans now to switch to Legacy-fabric, for downgrading, see [#101](https://github.com/MinecraftTAS/TASmod/issues/101).
10+
11+
# Credits
12+
Author of the original mod: [tr7zw](https://github.com/tr7zw/MC-TASmod)
13+
Main Mod Author: Scribble
914

1015
Contributions by: famous1622, Pancake
1116

@@ -14,14 +19,65 @@ Tickrate 0 idea: [Cubitect](https://github.com/Cubitect/Cubitick)
1419
Savestate idea: [bspkrs, MightyPork](https://github.com/bspkrs-mods/WorldStateCheckpoints), although implementation is totally different now
1520

1621
Special thanks: Darkmoon, The Minecraft TAS Community
17-
## Commands
18-
`/record` Starts to record your input, hit the same command again to stop recording
19-
`/play` Starts to play back a the stored inputs
20-
`/save <filename>` Saves stored inputs to a file
21-
`/load <filename>` Load inputs from file
22-
`/clearinputs` Delete all stored inputs, use this before starting a brand new recording. `/record` will resume the recording and not clear the inputs first.
23-
24-
## Development
25-
To load mixins in eclipse use `--mixin mixins.tasmod.json --tweakClass org.spongepowered.asm.launch.MixinTweaker` in program arguments
26-
27-
You will also find a KillTheRNG.jar (not with -deobf at the end!) in the libs folder. Copy that into `run/mods` to trick Minecraft into loading a second mod.
22+
# Features
23+
## Playback
24+
This mod can record and play back
25+
- The entire keyboard, minus TASmod keybinds (see below).
26+
- Gui-Screens like crafting, the pause menu and the main menu! (Except the keybinding screen)
27+
- Any screen size and window size (No warranties here...)
28+
29+
### Commands
30+
`/record` - Start a recording. This will record inputs to RAM. Closing the game will empty these inputs.
31+
`/play` - Start to play back the stored inputs.
32+
`/save <filename>` - Save stored inputs to a file.
33+
`/load <filename>` - Load inputs from file.
34+
`/clearinputs` - Delete all stored inputs, use this before starting a brand new recording.
35+
`/record` - will resume the recording and not clear the inputs first.
36+
`/playuntil <tickCount>` - Stops the next playback at the specified tick number, then switches to a recording. Run this command then start a playback via `/play`.
37+
38+
`/fullrecord, /fullplay` - Same as record/play however it will quit to the main menu first.
39+
`/restartandplay <filename>` - Quits Minecraft completely. When restarting, the specified file will be loaded and played back, when the menu appears.
40+
### Keybinds
41+
<kbd>F10</kbd> - Stops either a playback or a recording.
42+
43+
## Savestate
44+
### Commands
45+
`/savestate` - Prints a full guide to the savestate command in chat.
46+
### Keybinds
47+
<kbd>J</kbd> - Make a new savestate.
48+
<kbd>K</kbd> - Load the most recent savestate.
49+
50+
## Tickratechanger (Slowdown)
51+
### Commands
52+
`/tickrate <ticks/second>` - Changes the game speed. Default is 20, anthing below will slow the game down, anything above will speed it up.
53+
### Keybinds
54+
<kbd>F8</kbd> - Enter "Tickrate 0". The game is paused but you can still look around.
55+
<kbd>F9</kbd> - While in tickrate 0, advance the tick by 1. By holding keyboardkeys, you can make inputs while tickadvancing.
56+
57+
## Multiplayer support
58+
**Important:** This is **NOT** a clientside mod, a server side installation is required a.k.a This doesn't work on Hypixel, 2b2t etc. These servers will **NEVER** be supported.
59+
60+
Record TASes with friends! Needs operator permissions to run tasmod related commands.
61+
/savestate can be used to manage savestates.
62+
63+
> **Note:** /fullrecord, /fullplay and /restartandplay are not guaranteed to work in multiplayer at this time.
64+
65+
## HUD
66+
When ingame, hitting <kbd>F6</kbd> will show you options for customising your HUD, with monitoring options and more. Even more options are available when KillTheRNG is installed.
67+
68+
# Development
69+
## Setup
70+
1. Clone this repository and put it in your workspace directory (where you open eclipse or idea)
71+
2. Import gradle project
72+
- Use gradle version 4.10.3
73+
- Use [JDK 8](https://adoptium.net/en/temurin/releases/?version=8)
74+
3. Run gradle tasks `setupDecompWorkspace` then `eclipse`.
75+
4. *Optional but recommended:* Run gradle task `downloadKTRNG` (in the "tasmod" category) to download KillTheRNG to the run/mods folder.
76+
77+
## Running
78+
The task `eclipse` should've generated to launch configs: `TASmod_Client.launch` and `TASmod_Server.launch`. Select it, then click the run or debug button in your IDE.
79+
80+
> **Note:** Additional setup is required for the server to actually start, like changing the eula.txt and setting `online-mode` to false in server.properties.
81+
82+
## Building
83+
Build the mod using the gradle task `build` (or alternatively `shadowJar`).

TASFile_Dark_Npp_language.xml

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<NotepadPlus>
2-
<UserLang name="TASLang" ext=".tas" udlVersion="2.1">
2+
<UserLang name="TASFile" ext="mctas" udlVersion="2.1">
33
<Settings>
44
<Global caseIgnored="no" allowFoldOfComments="no" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
55
<Prefix Keywords1="yes" Keywords2="yes" Keywords3="yes" Keywords4="yes" Keywords5="yes" Keywords6="yes" Keywords7="yes" Keywords8="yes" />
66
</Settings>
77
<KeywordLists>
8-
<Keywords name="Comments">00# 01 02 03 04</Keywords>
8+
<Keywords name="Comments">00# 00// 00$ 01 02 03 04</Keywords>
99
<Keywords name="Numbers, prefix1"></Keywords>
1010
<Keywords name="Numbers, prefix2"></Keywords>
1111
<Keywords name="Numbers, extras1"></Keywords>
@@ -35,30 +35,30 @@
3535
<Keywords name="Delimiters">00[ 01 02] 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23</Keywords>
3636
</KeywordLists>
3737
<Styles>
38-
<WordsStyle name="DEFAULT" fgColor="FFFFFF" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
39-
<WordsStyle name="COMMENTS" fgColor="00FFFF" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
40-
<WordsStyle name="LINE COMMENTS" fgColor="808080" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
41-
<WordsStyle name="NUMBERS" fgColor="00FFFF" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
42-
<WordsStyle name="KEYWORDS1" fgColor="FF8000" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
43-
<WordsStyle name="KEYWORDS2" fgColor="FF0000" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
44-
<WordsStyle name="KEYWORDS3" fgColor="008040" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
45-
<WordsStyle name="KEYWORDS4" fgColor="FF0000" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
46-
<WordsStyle name="KEYWORDS5" fgColor="0080FF" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
47-
<WordsStyle name="KEYWORDS6" fgColor="008000" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
48-
<WordsStyle name="KEYWORDS7" fgColor="8080FF" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
49-
<WordsStyle name="KEYWORDS8" fgColor="FF8080" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
50-
<WordsStyle name="OPERATORS" fgColor="004080" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
51-
<WordsStyle name="FOLDER IN CODE1" fgColor="00FF00" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
52-
<WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
53-
<WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
54-
<WordsStyle name="DELIMITERS1" fgColor="8080FF" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
55-
<WordsStyle name="DELIMITERS2" fgColor="00FF00" bgColor="FFFFFF" colorStyle="1" fontName="" fontStyle="0" nesting="0" />
56-
<WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
57-
<WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
58-
<WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
59-
<WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
60-
<WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
61-
<WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
38+
<WordsStyle name="DEFAULT" fgColor="FFFFFF" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
39+
<WordsStyle name="COMMENTS" fgColor="00FFFF" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
40+
<WordsStyle name="LINE COMMENTS" fgColor="808080" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
41+
<WordsStyle name="NUMBERS" fgColor="00FFFF" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
42+
<WordsStyle name="KEYWORDS1" fgColor="FF8000" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
43+
<WordsStyle name="KEYWORDS2" fgColor="FF0000" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
44+
<WordsStyle name="KEYWORDS3" fgColor="008040" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
45+
<WordsStyle name="KEYWORDS4" fgColor="FF0000" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
46+
<WordsStyle name="KEYWORDS5" fgColor="0080FF" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
47+
<WordsStyle name="KEYWORDS6" fgColor="008000" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
48+
<WordsStyle name="KEYWORDS7" fgColor="8080FF" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
49+
<WordsStyle name="KEYWORDS8" fgColor="FF8080" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
50+
<WordsStyle name="OPERATORS" fgColor="004080" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
51+
<WordsStyle name="FOLDER IN CODE1" fgColor="00FF00" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
52+
<WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
53+
<WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
54+
<WordsStyle name="DELIMITERS1" fgColor="8080FF" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
55+
<WordsStyle name="DELIMITERS2" fgColor="00FF00" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
56+
<WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
57+
<WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
58+
<WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
59+
<WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
60+
<WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
61+
<WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
6262
</Styles>
6363
</UserLang>
6464
</NotepadPlus>

0 commit comments

Comments
 (0)