Content contribution

If you need help or have any question related to content contribution please contact me via Discord !
Quality Assurance

Github repository and Pull Requests (PR)

  • register at Github and create an account
  • log into your account and visit Github repository. Create a fork of the Holocore – “master” branch
  • [optional] in case you have SourceTree installed you can download your repo to your local PC and run it afterwards as a local server
  • via menu option “Source” you can browse through the file system of the repo and open folders/files in it. In your own repo you have admin rights and can change files and their content as you want but remember that you can only change 1 file at a time and each one will be a commit then
  • we are using “master” branch as our main working place !
  • nearly all content related data is stored in the “serverdata” folder
  • after you have changed a file(s) you can upload them to PSWG holocore’s repo simply select the files you want to add to your commit
  • please try to use similar naming style like we did in the past: Added … / Changed … / Removed … / Fixed …
  • you can put in more information by using the description text window in the Pull Request window
  • as soon as your PR is sent our team and other contributors will be auto informed about it
  • after being reviewed by leading content contributors and our developers the PR will be merged or rejected or put on hold in case you have to fix/edit some entries in it

Important info

  • when you copy/paste the content of our google tables or the existing .sdb tables into your own google table or excel file please remember to set ALL cells before to “text” format. This is important to avoid digits getting converted into time dates ! All our .sdb files can be opened with the standard Windows Editor or best import it into Excel or Google Drive tables.

How to change and store values (in case you dont have write access to our google tables)

  • to avoid merge conflicts/problems or interference of other ppls work you should concentrate on a planet that is not assigned to someone else if possible
  • in case you dont have write access to our google drive tables … it is best if you use google tables too. check your google drive account for it
  • create a new table in your drive account and copy/paste the content of our table to yours
  • now you can add/edit values like you want
  • once your work is done copy/paste your google table content to your holocore fork in your bitbucket account
  • therefore click “Source” top left side and move into the folder and file you want to change
  • once you have opened the file click “Edit” on right hand side and copy/paste your new content into the file
  • when done press “Commit” and enter a commit description like posted in #1 here

NPC tables

  • NPC name
  • Location (indoor or outdoor)
  • NPC database
  • creature_kimogila_dune
  • droid_protocol_3po
  • humanoid_bothan_diplomat
  • vehicle_imperial_gcw_city_atst

Existing buildings

  • Heading: goes from -179 to 179
  • XYZ: coordinates of the NPC or your location. Outside cells/buildings you get the world coordinates. Inside buildings you get relative coordinates to the 0 0 0 of the building
  • Cell: in the screenshot the cell is tagged as “r2”. Once you have access to admin commands on the TC or on your local repository/server you can use the command /dumpz to show you information about your current cell

Static planetary spawns

  • spawn_id: ongoing number. automated
  • terrain: planet/terrain name
  • building_id: this string/value is taken from our buildings datatable
  • spawner_type: AREA or PATROL
  • cell_id: on QA server you can use /dumpz to get the current cell number/value
  • x / y / z: the exact value should be taken from the special window you can call (left ctrl + left alt + G). read the values from “Player Cell” line. first 3 values are xyz. 4th value is for heading. between -179 and 179
  • heading: heading of your character. only values between -179 and 179 are allowed
  • active: determines if a spawner is active at server start or not. standard is 1
  • npc_name: name of the npc. check “#3 NPC tables” to get more info about it. use the search function in google table if needed to find a specific npc.
  • npc_id: number of the npc. “#3 NPC tables” to get more info about it.
  • spawn_category: city / dungeon / poi / outback
  • spawn_area: describe the location as best as possible unless it is inside a town. then just the town name
  • amount: amount of npcs spawned from this spot
  • behaviour: IDLE / PATROL / GUARD / TURN
  • loiter_radius: radius NPCs are allowed to move around spawner location (meter)
  • patrol_id: unused atm. later on we can put in the linked string/value for patrol routes
  • patrol_formation: unused atm
  • mood: sitting, drinking, and other animations (loop) => list here. standard value is “idle”
  • equipment_id: unused atm. this will define which non-weapon-item(s) the NPC will hold in its hand
  • loot_id: unused atm
  • quest_id: unused atm
  • max_spawn_time: maximum spawning time in seconds (standard 300)
  • min_spawn_time: minimum spawning time in seconds (standard 120)


  • IDLE: NPC stands still facing the set direction. This means you HAVE to set a heading between -179 and 179 otherwise he will look straight to north (0)
  • PATROL: NPC will start from here and follow a given patrol route (to be implemented)
  • GUARD: NPC will wander around the spawn spot within loiter_radius range
  • TURN: NPC will turn to a random direction every 15 secs about. No need to set a heading.

Loot tables

Dynamic spawn groups

Patrol routes

  • LOOP => NPC will walk along the waypoints and then start at beginning again (1… 2 … 3 … 4 … 5 … 1 … 2 … 3 … )
  • FLIP => NPC will move the route backwards again after it reached the end ( 1 … 2 … 3 … 4 … 5 … 4 … 3 … 2 … 1 … )

In this example the small hill in front might be blocking the LOS (Line Of Sight). Try to avoid paths who “go through” the ground/hills.