Giter Site home page Giter Site logo

pzns's Introduction

PZNS - Project Zomboid NPC Spawning Framework

A new Lua based framework for managing, spawning, and directing NPCs in Project Zomboid

This is an effort to standardize NPC management and spawning while offering the flexibility to all modders the ability to create and modify NPCs to their content without worry about all the complicated issues such as AI behaviors, data management, and decompiling PZ source code.

All functions in PZNS will have working examples for modders to follow so that they create and spawn their own npc creations in-game.

HELP WANTED AND NEEDED

  • UI Window for inspecting NPCs.
  • UI Window for group management (currently it is all done via context menu).
  • Main Menu Options or Sandbox Options (Debug Mode Toggle and key bindings).
  • More NPC Actions
  • More NPC Orders
  • More NPC Jobs
  • UI Window for inventory transfers (Mostly done, needs more polish and testing).
  • Preset Speech texts for NPCs (Low priority)
  • Resolving more issues as they become known... (too much unknown at this point).

HOW IS THIS DIFFERENT FROM SS AND OTHER NPC MODS?

  • Rewrote the entire data management process; the overall performance improved in the current state (as of July 4th, 2023) is about 10x-30x better than SS.
    • This is a rough estimate, simply because SS had too much shi* going on in the background that so NPCs attack at every 2-3 ticks feels "normal".
    • If the same attack action is called in PZNS, the attack action will be queued about 10-25 times (Yeah, I got shot about 20 times during testing).
  • There will be NO loose files in the mod folder; all NPC data are saved in the Saves/Sandbox folder or saved as ModData
    • Also the debug context menu has a WIPE ALL DATA command, meaning all loose files and data will be cleared from the save... which should mean the mod will be safe to deactivate and/or remove afterward.
  • There won't be a massive project full of broken things that are tightly coupled and can't be untangled.
  • Subsequent NPC mods can simply reference the framework as a requirement and load after it without needing to write data management code.

ALL WORK WILL BE CREDITED ACCORDING TO THE PULL REQUESTS ON GITHUB.

  • I have zero intention of taking credit for work that is not mine.
    • The PR process also creates a track record of who has done what.
  • After working on SSC, I have no intention of working alone on something of this scale.
  • If you want something done, do it yourself; the PR reviews are to ensure the code is at least readable and under the assumption it is tested to some extent.
  • Squashed Commits on the main branch will no longer be permitted once the repo goes public

Credits:

This Project was created using Project Zomboid Studio by Konjima (Discord: Konijima#9279)

Candle by Jab (jabdoesthings)

Umbrella by Jab (jabdoesthings)

The NPC outfits featured in the screenshots and videos are all outfits made by Satispie

Other NPC Mods - Aiteron NPC and SS/SSC GitHub

Special Thanks - Consultations (Discord)

  • Aiteron (aiteron)
  • Chuck (chuck)
  • Jab (jabdoesthings)
  • Notloc (notloc) - For a workaround on getting NPCs to run with B41 API.
  • Poltergeist (poltergeist_ix)

Support me on ko-fi!

ko-fi

pzns's People

Contributors

shadowhunter100 avatar eyo-07 avatar lanceris avatar edwordy avatar nightscale5755 avatar poltergeist-ix avatar katupia 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.