Giter Club home page Giter Club logo

undaunted's Introduction

Size Limit CLI

SkyrimSE Mod for Dynamic Quest/bounties. Inspired by the ESO Guild The Undaunted and the Diablo 3 Adventure mode.

Nexus: https://www.nexusmods.com/skyrimspecialedition/mods/35532

v0.5 Gameplay Demo: Microdungeon https://www.youtube.com/watch?v=VvVT04Nxe3Y

v0.4 Gameplay Demo https://www.youtube.com/watch?v=Kl8bDEZH1Ms

v0.2 Oblivion Gate Demo https://youtu.be/3igoZVReoZE

Requirements

  • SKSE SE build 2.0.17

How to play

  1. Visit the Undaunted Camp northwest of Windhelm.
  2. Speak to Vigrod and accept the Undaunted Invocation.
  3. Anywhere you want use the Undaunted Invocation.
  4. A Quest will start called Undaunted.
  5. Somewhere nearby a quest marker will appear pointing to where the bounty starts.
  6. Go to the marker, once you are in range the event will begin.
  7. Complete the event and another event will appear nearby.
  8. Complete 3 events to be rewarded an Undaunted Key.
  9. Cast the Undaunted Invocation again or return to the Undaunted Camp and trade your Keys for scaled weapons, armour, scrolls or potions from any loaded mod.

How it works

I wanted to see if I could dynamically create quest content without having to place thousand of markers over skyrim. When the bounty is started the SKSE Plugin loads the Region data and grabs all the worldspaces and the unk088 cells which appears to contain all the persistant references in the worldspace.

It then filters these down by Worldspace name as most of the worldspaces are one off quest spaces.

Next it selects a random persistant reference and moves an XMarker to that location. The XMarker is the objective of the Quest and it's used as the target of the placeatme calls.

Finally any of the enemies created are stored in memory in the plugin and checked every 20 seconds to see if they are dead. If they are the objective is marked as completed.

As the mod is using the Region data from memory any mods which add these would also be accessable from this mod. Currently the code checks what worldspace you are in when you start a bounty and spawns it there.

What the mod can do

  • Dynamically place forms in any Cell in any Worldspace. Skyrim's main world has roughly 18,000 different places this mod can spawn.
  • Code for placing in Interior cells also exists, but currently isn't used to stop bandit raids of Belethor's General Goods.
  • Json Configuration for bounty groups. References via mod name and base formid meaning any mod is supported.
  • Quest tracking for dynamically placed enemies with dynamic objective text.
  • Script based objectives allowing custom objectives.
  • Very mod compatible, currently only adds 4 items to the world. (2 markers, 2 activators)
  • Support for Mod created enemies that aren't placed into the default leveled lists via a Mod name + base form lookup.
  • Currently supports 7 Spawn types: Enemy, BountyDecoration, SpawnEffect, EndEffect,PhysicsScripted,Scripted and Ally
  • Rewards bounties with a random piece of Armour or Weapon from any loaded mod. Checks gameplay values against current level to balance this so level 10 players will get up to level 10 gear etc

Known issues/WIP

  • Bounty tracking doesn't persist between sessions. Meaning you can only complete a bounty in the session you started it.
  • More advanced encounters. This system is able to spawn objects with scripts attached to them.

Credits

undaunted's People

Contributors

kaosnyrb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.