Script package for the Gothic video game series that enables free aiming for ranged weapons and spells.
Gothic Gothic Sequel Gothic II Gothic II: Night of the Raven
- Free aiming for ranged weapons (bows, crossbows) and spells
- Critical hit detection by body parts (e.g. head shots)
- Customizable collision and damage behaviors (e.g. instant knockout/kill)
- Shot projectiles (arrows, bolts) can be picked up and may be re-used
- True shooting accuracy by scattering
- Movement while aiming (animations are provided)
- Adjustable projectile trajectory, gravity and damage, as well as weapon recoil
- High customizability with easy to use configuration
Visit the wiki for all information on this script package, including requirements and installation steps, a complete list of features and elaborate information on configuration.
If you intend to use (portions of) GFA in your git repository, it is recommended to incorporate it using a git-submodule. This not only helps to maintain your scripts at the latest version, but also ensures proper licensing and directs users to the original source.
Since submodules do not allow directly referring to sub-directories of the target repository, implement the following procedure.
First add GFA as a submodule into a suitable sub-directory off to the side in your repository. Then refer to the relevant sub-directories using relative symlinks. Symlinks are supported in git (also in Windows) and will resolve the file paths as desired.
Tip
Have a look at the repository szapp/FreeAiming for an example of using submodules.
This can be achieved by entering the following code into the Windows Command Prompt with administrative privileges (for creating symlinks). Mind the use of forward slashes.
mkdir .github\submodules
git submodule add --name GothicFreeAim https://github.com/szapp/GothicFreeAim.git .github/submodules/GothicFreeAim
git config core.symlinks true
The file .gitmodules
should now look like this (compare the use of forward slashes):
[submodule "GothicFreeAim"]
path = .github/submodules/GothicFreeAim
url = https://github.com/szapp/GothicFreeAim.git
Now, you can add relevant symlinks to desired sub-directories within the GFA scripts.
For example, the internal content scripts (Content/GFA/_intern
) should never be modified and can be linked to the submodule.
cd path\to\Scripts\Content\GFA
mklink /d _intern ..\..\..\..\..\.github\submodules\GothicFreeAim\_work\data\Scripts\Content\GFA\_intern
The configuration (Content/GFA/config
), on the other hand, will not be linked to be modified by you. Likewise, most of the system scripts do not need adjustment and can be linked as well.
cd path\to\Scripts\System
mklink /d GFA ..\..\..\..\.github\submodules\GothicFreeAim\_work\data\Scripts\System\GFA
The menu scripts, however, can be copied and placed in a separate file to adjust the menu positioning and language following the documentation.
The directory tree would like something like this:
.
├── .gitmodules
├── .github/
│ └── submodules/
│ └── GothicFreeAim/
│ └── ..
└── path/
└── to/
└── Scripts/
├── Content/
│ └── GFA/
│ ├── [_intern/] <- symlink
│ ├── config/
│ │ └── ...
│ └── GFA_*.src
└── System/
├── [GFA/] <- symlink
└── Menu_Opt_GFA.d
When following these steps, this setup
-
prevents you from accidentally modifying the internal scripts which should never be altered
-
allows you to easily update the GFA core scripts in the event of an update with
git submodule update --remote git add .github\submodules\GothicFreeAim git commit -m "Update GFA core"