1
mirror of https://github.com/R2Northstar/Northstar synced 2025-09-16 14:10:48 +02:00

Compare commits

...

34 Commits

Author SHA1 Message Date
pg9182
39ac00c374 Remove placeholder_playerdata.pdata (#459)
Not needed since v1.10 (R2Northstar/NorthstarLauncher@841881af9e).
2023-04-29 18:34:56 +02:00
pg9182
0e68be66f7 Update README project list (#464)
Update README project list to mention Atlas, DiscordRPC, and web page as well.
2023-04-23 13:40:22 +02:00
pg9182
6132fc2c7d Fix typo in 7a7ca84bd2 (#461) (#465) 2023-04-22 23:18:09 +02:00
pg9182
7a7ca84bd2 Remove stray release dir from release zip (#461)
For some reason there's a stray empty `release` folder inside the release zip that shouldn't be there.
2023-04-22 22:58:14 +02:00
pg9182
7db68d5169 Show SHA-512 checksum of release zip (#462)
This will print SHA-512 checksum of release zip
2023-04-22 22:55:59 +02:00
pg9182
aa4d230051 Update DiscordRPC to v4 (#460)
Requires plugins v2.
2023-04-22 03:11:46 +02:00
GeckoEidechse
aeb3e5ee17 Bump download-artifact action to v3 (#447)
v2 is being deprecated
2023-04-07 17:34:36 +02:00
GeckoEidechse
20ae5c9786 Grab pre-compiled DiscordRPC plugin (#437)
Instead of recompiling on each release
2023-03-13 20:31:01 +01:00
GeckoEidechse
8d7b5e4515 Add step to create release draft and upload zip (#432)
* Add step to create release draft and upload zip

* Skip draft creation for release candidates

* Zip folder before upload and give permission

The action we use can only deal with single files, not folders

* Use `env.NORTHSTAR_VERSION`

* Check if tags start with `v`
2023-03-07 21:34:17 +01:00
GeckoEidechse
c6c55ff014 Use tagged version of Navmeshes (#380)
This allows for explicit updates of NorthstarNavs
2022-12-03 01:31:24 +01:00
GeckoEidechse
fd1c3d98ea Use tagged version of DiscordRPC (#379)
This way builds are more reproducible as specific versions of
NorthstarDiscordRPC can be set.
2022-12-02 23:16:23 +01:00
GeckoEidechse
28b5f4f99f Update actions to newest version (#371)
Version bump as v2 used NodeJS 12 which is being deprecated on runners.
2022-11-27 14:02:16 +01:00
F1F7Y
0ac4a964f3 Add NorthstarNavs link (#348) 2022-10-18 14:13:28 +02:00
GeckoEidechse
f015f27561 Fix regex breaking on multi-digit version numbers (#350)
Resolves issue with rc version number not having leading zeroes stripped
2022-10-18 02:05:48 +02:00
GeckoEidechse
bfd587df40 Delete startup args txt files (#267)
* Delete startup args txt files

As per https://github.com/R2Northstar/NorthstarLauncher/pull/99 we no longer need them.
NorthstarLauncher should just auto-create them when missing.

* Strip deleting `ns_startup*.txt`

Files were deleted with previous commit so deleting them is no longer needed.
2022-09-14 13:11:12 +02:00
GeckoEidechse
91da7d7d1b Update paths in CI config (#332)
Some directories got changed as part of refactor
2022-09-01 01:24:27 +02:00
GeckoEidechse
dc05ebfa9c Enforce tags start with v for CI to run (#331)
Basically just a small safeguard to prevent running CI on accidentally
pushed invalid tag.
2022-09-01 01:17:23 +02:00
Kyle Gospodnetich
a66132db28 Add licenses for Lato and Northstar Mono (Modified Fira Mono Regular) fonts (#314) 2022-07-22 00:38:49 +02:00
GeckoEidechse
88673385a0 Publish release-candidates to Thunderstore (#313)
* Publish release-candidates to Thunderstore

under different package name
instead of not publishing at all

* Strip leading zeroes from last semver digit

* Use alternative description for rc package

NorthstarReleaseCandidate should have a mention in there that it's a
release candidate

* Add additional comments

* Add disclaimer add the top of README for rc
2022-07-19 00:58:20 +02:00
GeckoEidechse
f28b0b21a7 Add badge for downloads of current version (#277) 2022-07-09 01:18:16 +02:00
GeckoEidechse
d8ad8f12f8 Strip rc suffix from version number properly (#268)
Previously the digit of the rc as well as the dash would remain
E.g.: `-rc2` -> `-2`
This resulted in it being subtracted from the patch version digit
E.g.: `v1.7.0-rc1` turns into `1,7,0-1`.

This commit strips the whole `-rcX` part of the version number in CI

Closes #265
2022-05-13 02:12:53 +02:00
Barichello
59d0566b37 Add missing sudo 2022-04-28 17:39:13 -03:00
GeckoEidechse
cc1ec86138 Fix trying to move tcli from wrong location
The extract tar still contains the version number in the name
2022-04-28 17:39:13 -03:00
F1F7Y
d93d51cf73 Add back r2ds.bat (#264) 2022-04-28 20:35:13 +02:00
Barichello
4bd0a75b82 Add navmesh repository to release jobs 2022-04-28 12:46:43 -03:00
Barichello
a52f2a193f Remove thunderstore files from release zip 2022-04-28 12:46:43 -03:00
Barichello
61dbcbd3f8 Update tcli download name 2022-04-28 12:46:37 -03:00
GeckoEidechse
763ae0328c Set hardcoded version number on release build (#262)
* Set hardcoded version number on release build
* Update version number in new header file
2022-04-28 00:46:50 +02:00
Barichello
41be6f5b25 Add manual workflow trigger 2022-04-23 12:43:38 -03:00
Barichello
ac5614e56b Skip thunderstore upload on release candidates 2022-04-23 12:43:38 -03:00
Barichello
833dbf8ad3 Update thunderstore mod description and icon 2022-04-23 12:43:38 -03:00
Barichello
45d4bc13e2 Add "build-thunderstore-package" job 2022-04-23 12:43:38 -03:00
Barichello
253d60a578 Add CI environment example file 2022-04-23 12:43:38 -03:00
Barichello
d7f06ccee8 Add thunderstore release files 2022-04-17 15:03:27 -03:00
11 changed files with 337 additions and 34 deletions

11
.ci.env.example Normal file
View File

@@ -0,0 +1,11 @@
# 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

@@ -2,7 +2,16 @@ name: Build
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 }}
@@ -11,13 +20,8 @@ jobs:
build-launcher:
runs-on: windows-2022
steps:
- name: Setup bundled plugins
uses: actions/checkout@v2
with:
repository: R2Northstar/NorthstarDiscordRPC
path: discord-plugin
- name: Checkout launcher repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
repository: R2Northstar/NorthstarLauncher
ref: ${{ env.NORTHSTAR_VERSION }}
@@ -28,28 +32,24 @@ jobs:
shell: bash
working-directory: northstar-launcher
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,1/${FILEVERSION}/g" LauncherInjector/resources.rc
- name: Build
working-directory: northstar-launcher
sed -i 's/DEV/${{ env.NORTHSTAR_VERSION }}/g' NorthstarLauncher/resources.rc
FILEVERSION=$(echo ${{ env.NORTHSTAR_VERSION }} | tr '.' ',' | sed -E 's/-rc[0-9]+//' | tr -d '[:alpha:]')
sed -i "s/0,0,0,1/${FILEVERSION}/g" NorthstarDLL/ns_version.h
- name: Build Launcher
working-directory: northstar-launcher
run: |
cp -r ../discord-plugin/*Discord* .
msbuild /p:Configuration=Release R2Northstar.sln
msbuild /p:Configuration=Release NorthstarDiscordRPC.sln
- name: Upload launcher build as artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: northstar-launcher
path: |
northstar-launcher/x64/Release/Northstar.dll
northstar-launcher/x64/Release/wsock32.dll
northstar-launcher/x64/Release/NorthstarLauncher.exe
northstar-launcher/x64/Release/discord_game_sdk.dll
northstar-launcher/x64/Release/DiscordRPC.dll
northstar-launcher/x64/Release/*.txt
- name: Upload debug build artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: launcher-debug-files
path: |
@@ -60,20 +60,23 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Download compiled launcher
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: northstar-launcher
path: northstar-launcher
- name: Download DiscordRPC plugin
run:
wget "https://github.com/R2Northstar/NorthstarDiscordRPC/releases/download/v4/northstar-discord-rpc.zip"
- name: Download compiled stubs
run:
wget "https://github.com/R2Northstar/NorthstarStubs/releases/download/v1/NorthstarStubs.zip"
- name: Checkout release files
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
ref: ${{ env.NORTHSTAR_VERSION }}
path: northstar
- name: Checkout core mods
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
repository: R2Northstar/NorthstarMods
ref: ${{ env.NORTHSTAR_VERSION }}
@@ -92,21 +95,122 @@ jobs:
- name: Make folder structure
run: |
mv -v northstar/release/* northstar/.
rm -d northstar/release
mkdir -p northstar/R2Northstar/mods
mkdir -p northstar/R2Northstar/plugins
mkdir -p northstar/bin/x64_retail
mv -v northstar-launcher/DiscordRPC.dll northstar/R2Northstar/plugins
mv -v northstar-launcher/discord_game_sdk.dll northstar
unzip northstar-discord-rpc.zip
mv -v DiscordRPC.dll northstar/R2Northstar/plugins
mv -v northstar-launcher/wsock32.dll northstar/bin/x64_retail
unzip NorthstarStubs.zip -d northstar/bin/x64_dedi
mv -v northstar-launcher/* northstar
rsync -avr --exclude="Northstar.Coop" --exclude=".git*" northstar-mods/. northstar/R2Northstar/mods
- name: Cleanup
- name: Checkout Navmesh repository
uses: actions/checkout@v3
with:
repository: R2Northstar/NorthstarNavs
ref: 'v1'
path: northstar-navs
- name: Navmeshes setup
run: |
rm -rf northstar-launcher
cd northstar && rm -rf .git .github *.md LICENSE
mkdir -p northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
mv -v northstar-navs/graphs northstar/R2Northstar/mods/Northstar.CustomServers/mod/maps
mv -v 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
- name: Upload
uses: actions/upload-artifact@v2
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
- 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-20.04
steps:
- name: Setup tcli
run: |
wget -O 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 -v 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 -O 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 -p thunderstore/dist/Northstar
mv -v northstar/* thunderstore/dist/Northstar
wget -O thunderstore/icon.png https://raw.githubusercontent.com/R2Northstar/Northstar/main/thunderstore/icon.png
wget -O 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 -i "s/communities = \[\]/communities = [\"$TS_COMMUNITY\"]/g" thunderstore.toml
sed -i "s/Example-Dependency = \"1.0.0\"//g" thunderstore.toml
sed -i "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 Normal file
View File

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

View File

@@ -1,6 +1,7 @@
# 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)
@@ -12,19 +13,22 @@ Northstar is a modding framework client that allows users to host their own Tita
## Development
Northstar's development is split into 4 repositories:
Northstar's development is split into 6 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. [NorthstarMasterServer](https://github.com/R2Northstar/NorthstarMasterServer) (Responsible for server browser, authentication and persistence)
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 two repositories:
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)
## 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.

File diff suppressed because one or more lines are too long

View File

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

View File

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

1
release/r2ds.bat Normal file
View File

@@ -0,0 +1 @@
NorthstarLauncher.exe -dedicated -multiple

29
thunderstore/README.md Normal file
View File

@@ -0,0 +1,29 @@
# 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)

BIN
thunderstore/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB