1
mirror of https://github.com/R2Northstar/Northstar synced 2025-09-21 00:50:50 +02:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Barichello
791cc16060 v1.5.0 2022-02-12 16:17:21 -03:00
15 changed files with 92 additions and 455 deletions

View File

@@ -1,11 +0,0 @@
# Env file to use with https://github.com/nektos/act to run GitHub Actions locally when debugging
#
# Ex:
# act --env-file .env -j build-thunderstore-package
#
# Reference:
# https://github.com/thunderstore-io/thunderstore-cli/wiki
TCLI_AUTH_TOKEN=
TS_COMMUNITY=test
TS_REPO=https://thunderstore.dev/

View File

@@ -1,20 +0,0 @@
name: add-to-project
on:
issues:
types:
- opened
pull_request_target:
types:
- opened
jobs:
add-to-project:
name: Add to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.5.0
with:
project-url: "https://github.com/orgs/R2Northstar/projects/3"
github-token: "${{ secrets.PROJECT_BOARD_TOKEN }}"

81
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,81 @@
name: Build
on:
push:
tags:
- '*'
env:
NORTHSTAR_VERSION: ${{ github.ref_name }}
jobs:
build-launcher:
runs-on: windows-2022
steps:
- name: Checkout
uses: actions/checkout@v2
with:
repository: R2Northstar/NorthstarLauncher
ref: ${{ env.NORTHSTAR_VERSION }}
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v1.1
- name: Setup resource file version
shell: bash
run: |
sed -i 's/DEV/${{ env.NORTHSTAR_VERSION }}/g' LauncherInjector/resources.rc
FILEVERSION=$(echo ${{ env.NORTHSTAR_VERSION }} | tr '.' ',' | tr -d '[:alpha:]')
sed -i "s/0,0,0,0/${FILEVERSION}/g" LauncherInjector/resources.rc
- name: Build
run: msbuild /p:Configuration=Release
- name: Upload Build Artifact
uses: actions/upload-artifact@v2
with:
name: northstar-launcher
path: |
x64/Release/Northstar.dll
x64/Release/wsock32.dll
x64/Release/NorthstarLauncher.exe
x64/Release/*.txt
build-northstar:
needs: build-launcher
runs-on: ubuntu-20.04
steps:
- name: Download compiled launcher
uses: actions/download-artifact@v2
with:
name: northstar-launcher
path: northstar-launcher
- name: Checkout
uses: actions/checkout@v2
with:
ref: ${{ env.NORTHSTAR_VERSION }}
path: northstar
- name: Checkout
uses: actions/checkout@v2
with:
repository: R2Northstar/NorthstarMods
ref: ${{ env.NORTHSTAR_VERSION }}
path: northstar-mods
- name: Update mod version info
run: |
export MOD_VERSION=$(echo $NORTHSTAR_VERSION | tr -d 'v')
cat <<< $(jq ".Version = \"${MOD_VERSION}\"" northstar-mods/Northstar.Client/mod.json) > northstar-mods/Northstar.Client/mod.json
cat <<< $(jq ".Version = \"${MOD_VERSION}\"" northstar-mods/Northstar.Custom/mod.json) > northstar-mods/Northstar.Custom/mod.json
cat <<< $(jq ".Version = \"${MOD_VERSION}\"" northstar-mods/Northstar.CustomServers/mod.json) > northstar-mods/Northstar.CustomServers/mod.json
- name: Download repositories
run: |
mv northstar/release/* northstar/.
mkdir -p northstar/R2Northstar/mods
mkdir -p northstar/bin/x64_retail
mv northstar-launcher/wsock32.dll northstar/bin/x64_retail
mv northstar-launcher/* northstar
rsync -avr --exclude="Northstar.Coop" --exclude=".git*" northstar-mods/. northstar/R2Northstar/mods
- name: Cleanup
run: |
rm -rf northstar-launcher
cd northstar && rm -rf .git .github *.md LICENSE
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Northstar.release.${{ env.NORTHSTAR_VERSION }}
path: northstar

View File

@@ -1,17 +0,0 @@
name: Post-to-Mastodon
on:
release:
types: [published]
jobs:
toot:
runs-on: ubuntu-22.04
steps:
- name: Send toot to Mastodon
id: mastodon
uses: cbrgm/mastodon-github-action@v1
with:
message: "We just released Northstar ${{ github.event.release.tag_name }}\n\n${{ github.event.release.html_url }}"
env:
MASTODON_URL: ${{ secrets.MASTODON_URL }}
MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }}

View File

@@ -1,179 +0,0 @@
name: Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
job:
description: 'Job to run'
required: true
default: 'build-thunderstore-package'
permissions:
contents: write # Needed to write to GitHub draft release
env:
NORTHSTAR_VERSION: ${{ github.ref_name }}
jobs:
build-northstar:
runs-on: ubuntu-22.04
steps:
- name: Checkout release files
uses: actions/checkout@v4
with:
ref: ${{ env.NORTHSTAR_VERSION }}
path: northstar
- name: Wait for launcher release build to be ready
timeout-minutes: 30 # Only wait for 30 minutes. If we take longer, something probably broke
run:
bash northstar/wait_for_launcher_dl.sh $NORTHSTAR_VERSION
- name: Download compiled launcher
run:
wget "https://github.com/R2Northstar/NorthstarLauncher/releases/download/${{ env.NORTHSTAR_VERSION }}/northstar-launcher.zip"
- name: Download DiscordRPC plugin
run:
wget "https://github.com/R2Northstar/NorthstarDiscordRPC/releases/download/v9/northstar-discord-rpc.zip"
- name: Download compiled stubs
run:
wget "https://github.com/R2Northstar/NorthstarStubs/releases/download/v1/NorthstarStubs.zip"
- name: Checkout core mods
uses: actions/checkout@v4
with:
repository: R2Northstar/NorthstarMods
ref: ${{ env.NORTHSTAR_VERSION }}
path: northstar-mods
- name: Update mod version info
run: |
export MOD_VERSION=$(echo $NORTHSTAR_VERSION | tr -d 'v')
cat <<< $(jq ".Version = \"${MOD_VERSION}\"" northstar-mods/Northstar.Client/mod.json) > northstar-mods/Northstar.Client/mod.json
cat <<< $(jq ".Version = \"${MOD_VERSION}\"" northstar-mods/Northstar.Custom/mod.json) > northstar-mods/Northstar.Custom/mod.json
cat <<< $(jq ".Version = \"${MOD_VERSION}\"" northstar-mods/Northstar.CustomServers/mod.json) > northstar-mods/Northstar.CustomServers/mod.json
- name: Generate md5sum file
working-directory: northstar-mods
run: |
echo -e "# Check with 'md5sum -c md5sum.txt' at the root of mods folder\n" > md5sum.txt
git ls-tree -r $NORTHSTAR_VERSION --name-only | xargs -L1 md5sum >> md5sum.txt
- name: Make folder structure
run: |
mv --verbose northstar/release/* northstar/.
rm --dir northstar/release
mkdir --parents northstar/R2Northstar/mods
mkdir --parents northstar/R2Northstar/plugins
mkdir --parents northstar/bin/x64_dedi
unzip northstar-discord-rpc.zip -d northstar/R2Northstar/plugins
unzip NorthstarStubs.zip -d northstar/bin/x64_dedi
unzip northstar-launcher.zip -d northstar
rsync -avr --exclude="Northstar.Coop" --exclude=".git*" northstar-mods/. northstar/R2Northstar/mods
- name: Checkout Navmesh repository
uses: actions/checkout@v4
with:
repository: R2Northstar/NorthstarNavs
ref: 'v3'
path: northstar-navs
- name: Navmeshes setup
run: |
mkdir --parents northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
mv --verbose northstar-navs/graphs northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
mv --verbose northstar-navs/navmesh northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
- name: Cleanup root Northstar repository files
working-directory: northstar
run: |
rm -rf .git .github .gitignore *.md LICENSE thunderstore .ci.env.example *.sh
- name: Upload
uses: actions/upload-artifact@v3
with:
name: Northstar.release.${{ env.NORTHSTAR_VERSION }}
path: northstar
- name: Create zip to upload
run: |
cd northstar/
zip --recurse-paths --quiet Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip .
mv Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip ../
- name: Compute SHA-512 checksum
run: |
sha512sum Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
sha512sum Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
- name: Upload zip to release draft
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/v') && !contains(env.NORTHSTAR_VERSION, '-rc')
with:
draft: true
files: Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip
build-thunderstore-package:
needs: build-northstar # comment out when running locally
env:
# Release envs, comment this out when running locally
TCLI_AUTH_TOKEN: ${{ secrets.THUNDERSTORE_TOKEN }}
TS_REPO: https://thunderstore.io/
TS_COMMUNITY: northstar
# Uncomment when testing locally, must be unique
# NORTHSTAR_VERSION: 0.1.8
# Thunderstore info and descriptions
TS_NAMESPACE: northstar
TS_MOD_NAME: Northstar
TS_MOD_DESCRIPTION: Titanfall 2 modding and custom server framework.
runs-on: ubuntu-22.04
steps:
- name: Setup tcli
run: |
wget --output-document tcli.tar.gz https://github.com/thunderstore-io/thunderstore-cli/releases/download/0.1.4/tcli-0.1.4-linux-x64.tar.gz
tar xvf tcli.tar.gz
sudo mv --verbose tcli-0.1.4-linux-x64/tcli /bin
- name: (DEBUG) Download Northstar package
if: ${{ env.ACT }} # Download Northstar package from releases when running locally instead of relying on previous jobs
run: |
wget --output-document northstar.zip https://github.com/R2Northstar/Northstar/releases/download/v1.6.3/Northstar.release.v1.6.3.zip
unzip northstar.zip -d northstar
- name: Download Northstar package
if: ${{ !env.ACT }} # Download artifacts from previous jobs when running on GitHub's infrastructure
uses: actions/download-artifact@v3
with:
name: Northstar.release.${{ env.NORTHSTAR_VERSION }}
path: northstar
- name: Make package structure
run: |
mkdir --parents thunderstore/dist/Northstar
mv --verbose northstar/* thunderstore/dist/Northstar
wget --output-document thunderstore/icon.png https://raw.githubusercontent.com/R2Northstar/Northstar/main/thunderstore/icon.png
wget --output-document thunderstore/README.md https://raw.githubusercontent.com/R2Northstar/Northstar/main/thunderstore/README.md
- name: Setup environment variables
run: |
# Strip leading `v` and if exists replace `-rc` with `0` and strip leading zeroes from last semver digit if necessary
echo "MOD_VERSION=$(echo $NORTHSTAR_VERSION | tr -d 'v'| sed --expression 's/-rc/0/' | sed -E 's/([0-9]+)\.([0-9]+)\.(0*)([0-9])/\1.\2.\4/;')" >> $GITHUB_ENV
# If it's a release candidate we also want to change a few things
if [[ $NORTHSTAR_VERSION == *"-rc"* ]]; then
# We want to push to a different package
# i.e. `NorthstarReleaseCandidate` vs `Northstar`
echo "TS_MOD_NAME=NorthstarReleaseCandidate" >> $GITHUB_ENV
# And update mod description
echo "TS_MOD_DESCRIPTION=Release candidate for next Northstar release." >> $GITHUB_ENV
# Add disclaimer add the top of README
echo -e '> ⚠️ This is a release candidate. Please report bugs or other issues on GitHub ⚠️\n' | cat - thunderstore/README.md > temp && mv temp thunderstore/README.md
fi
- name: Publish package to Thunderstore
working-directory: thunderstore
run: |
tcli init --package-name=$TS_MOD_NAME --package-namespace=$TS_NAMESPACE --package-version $MOD_VERSION
sed --in-place "s/communities = \[\]/communities = [\"$TS_COMMUNITY\"]/g" thunderstore.toml
sed --in-place "s/Example-Dependency = \"1.0.0\"//g" thunderstore.toml
sed --in-place "s/description = \"Example mod description\"/description = \"$TS_MOD_DESCRIPTION\"/g" thunderstore.toml
cat thunderstore.toml
tcli build
tcli publish --repository "$TS_REPO" --file build/*.zip

1
.gitignore vendored
View File

@@ -1 +0,0 @@
.env

View File

@@ -1,7 +1,6 @@
# Northstar
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/R2Northstar/Northstar)](https://github.com/R2Northstar/Northstar/releases)
![GitHub release downloads (latest by date)](https://img.shields.io/github/downloads/R2Northstar/Northstar/latest/total)
[![Join the chat at Discord](https://img.shields.io/badge/chat-on%20discord-7289DA.svg)](https://northstar.tf/discord)
[![Read the wiki](https://img.shields.io/badge/wiki-GitBook-important)](https://r2northstar.gitbook.io)
@@ -13,25 +12,18 @@ Northstar is a modding framework client that allows users to host their own Tita
## Development
Northstar's development is split into 6 repositories:
Northstar's development is split into 4 repositories:
1. [NorthstarLauncher](https://github.com/R2Northstar/NorthstarLauncher) (Code for the C++ hook DLL)
1. [NorthstarMods](https://github.com/R2Northstar/NorthstarMods) (Code for the squirrel mods responsible for server gamelogic recreation and custom content)
1. [NorthstarStubs](https://github.com/R2Northstar/NorthstarStubs) (D3D11 and GFSDK stubs for the Northstar dedicated server)
1. [NorthstarNavs](https://github.com/R2Northstar/NorthstarNavs) (Custom navmesh files used for AI navigation)
1. [NorthstarDiscordRPC](https://github.com/R2Northstar/NorthstarDiscordRPC) (Discord RPC plugin)
1. [Atlas](https://github.com/R2Northstar/Atlas) (Backend API for server browser, player authentication, and persistence)
The documentation is split into three repositories:
1. [NorthstarTF](https://github.com/R2Northstar/NorthstarTF) (Main website)
1. [NorthstarWiki](https://github.com/R2Northstar/NorthstarWiki) (Wiki covering installation, hosting and configuration of Northstar)
1. [ModdingDocs](https://github.com/R2Northstar/ModdingDocs) (Guides and tutorials on how to mod using Northstar)
2. [NorthstarMods](https://github.com/R2Northstar/NorthstarMods) (Code for the squirrel mods responsible for server gamelogic recreation and custom content)
3. [NorthstarMasterServer](https://github.com/R2Northstar/NorthstarMasterServer) (Responsible for server browser, authentication and persistence)
4. [NorthstarWiki](https://github.com/R2Northstar/NorthstarWiki) (Documentation for Northstar)
## Special Thanks
Thanks to everyone that's put up with me and helped out with this project, it's been a fun passion project I've had throughout 2021 so releasing it is pretty cathartic. Specifically:
- Thanks to the Icepick developers for making the Icepick, I initially forked it for earlier versions of Northstar and it was a great base to experiment with stuff on before moving to the custom launcher.
- Thanks to everyone on R5R team for giving me advice on some later parts of development.
- Thanks to everyone in the testing server for putting up with me and helping find bugs.
- Thanks to everyone else that's helped, gave advice, all that.
- Thanks to everyone on R5R team for giving me advice on some later parts of development
- Thanks to everyone in the testing server for putting up with me and helping find bugs
- Thanks to everyone else that's helped, gave advice, all that

File diff suppressed because one or more lines are too long

BIN
release/MinHook.x64.dll Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
-multiple

View File

@@ -0,0 +1 @@
+setplaylist private_match

View File

@@ -1,29 +0,0 @@
# Northstar
Northstar is a modding framework client that allows users to host their own Titanfall 2 servers using custom scripts and assets to create custom content, as well as being able to host vanilla content.
# Manual Install
Firstly, note that the Northstar client is only available on PC and
requires you to **both own the game and have it installed.**
1. Download the zip with the "Manual Download" button
2. Copy the files from inside the "Northstar" folder from the zip to your game folder. This can vary depending on whether you purchased the game off Steam or Origin, and if you set a custom folder for game installs.
- **For Steam** - Right click _Titanfall 2 \> Properties \> Local Files \> Browse_
Usually: `C:\Program Files (x86)\Steam\steamapps\common\Titanfall2`
- **For Origin** - To find the location of your Origin library go to _Origin -\> Application Setting -\> Installs & Saves -\> On your Computer -\> Game Library Location_
Go to the directory mentioned there using File Explorer and open the `Titanfall2` folder.
Usually: `C:\Program Files (x86)\Origin Games\Titanfall2`
- **For EA App** - To find the location of your EA library go to _Settings -\> Download_
Go to the directory under "Install location" using File Explorer and open the `Titanfall2` folder.
Usually: `C:\Program Files\EA Games\Titanfall2`
3. Launch `NorthstarLauncher.exe` to start Northstar
- After launching for the first time, you'll be greeted with a popup requesting to authenticate to the master server. Click Yes (This can be changed in the mods menu later if desired)
4. Select _Launch Northstar_
5. From the multiplayer menu, you can use the server browser to select and join any of the public community hosted servers.
# Links
[Discord](https://northstar.tf/discord)
[GitHub](https://northstar.tf/github)
[Wiki](https://northstar.tf/wiki)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -1,26 +0,0 @@
#!/bin/bash
# Check if contains command line arg
if [ -z "$1" ]; then
echo "Missing command-line argument."
exit 1
fi
url="https://github.com/R2Northstar/NorthstarLauncher/releases/download/$1/northstar-launcher.zip"
wait_time_seconds=60
# Loop until the response code changes
while true; do
response=$(curl --silent --output /dev/null --write-out "%{http_code}" $url)
if [ $response -eq 404 ]; then
echo "Response is 404. Retrying in $wait_time_seconds seconds."
sleep $wait_time_seconds
else
echo "Site is accessible with response code $response."
break
fi
done
# 10 second sleep just in case we hit some weird race condition
# where files are still being uploaded but release is done
sleep 10